Ukryj/pokaż w JavaScript-przestań odtwarzać wideo YouTube iframe [zamknięte]

Użyłem funkcji iframe do osadzania filmów i ukrywam / pokazuję zawartość i filmy za pomocą JavaScript.

Mam Jeden problem. Kiedy naciskam play na pierwszym filmie, a następnie klikam na następnym bez zatrzymywania pierwszego, pierwszy po prostu kontynuuje odtwarzanie.

Co mogę zrobić, aby zatrzymać film w "tle", podczas wyświetlania nowej zawartości?

$(function(){
    $("#link1").click(show1);
});

function show1(){
    $("#pic1").fadeIn();
    $("#pic2").hide();
}

Używam tylko tej prostej funkcji JavaScript, gdzie id "pic1" i "pic2" jest id div, wideo są osadzone w.

Po prostu nie mogę tego zrobić. Próbowałem umieścić usunąć, ale wtedy nie można zobaczyć filmu ponownie, jeśli chcesz.
Author: Peter Mortensen, 2012-01-19

1 answers

Jest to implementacja interfejsu API YouTube player, bez ładowania dodatkowych plików. Aby uzyskać tę pracę, musisz przyrostkować wszystkie atrybuty <iframe> src z ?enablejsapi=1.

Przykład (złamałem kod w kilku linijkach dla czytelności, można bezpiecznie pominąć linijki):

<div id="pic3">
    <iframe width="640" height="390"
            src="http://www.youtube.com/embed/Xub4grFLbQM?enablejsapi=1"
            frameborder="0" allowfullscreen></iframe>
</div>

<div id="tS2" class="jThumbnailScroller">
.. Removed your code for readability....
    <a href="#vid3" id="link3"><img src="images/thumbs/player2.jpg" height="85"/></a>
    ....

Kod JavaScript + jQuery:

$(function() {
    /* elt: Optionally, a HTMLIFrameElement. This frame's video will be played,
     *       if possible. Other videos will be paused*/
    function playVideoAndPauseOthers(frame) {
        $('iframe[src*="http://www.youtube.com/embed/"]').each(function(i) {
            var func = this === frame ? 'playVideo' : 'pauseVideo';
            this.contentWindow.postMessage('{"event":"command","func":"' + func + '","args":""}', '*');
        });
    }
    $('#tS2 a[href^="#vid"]').click(function() {
        var frameId = /#vid(\d+)/.exec($(this).attr('href'));
        if (frameId !== null) {
            frameId = frameId[1]; // Get frameId
            playVideoAndPauseOthers($('#pic' + frameId + ' iframe')[0]);
        }
    });
});
 27
Author: Rob W,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 07:31:58