2013-07-02 76 views
0

我尝试使用5个以上的YouTube视频播放器,但在创建第二个视频播放器后,我遇到了一些问题。 当我创建第二个时,第一个消失,并且无法弄清楚什么是错的。拥有多个youtube API播放器?

会真的很感谢一些帮助 谢谢!

//slide 2 

var tag = document.createElement('script'); 


    tag.src = "https://www.youtube.com/iframe_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    // 3. This function creates an <iframe> (and YouTube player) 
    // after the API code downloads. 



    var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
    height: '820', 
    width: '707', 
    videoId: 'NTq1WLKuOI4', 
    events: { 
    'onReady': onPlayerReady, 
    'onStateChange': onPlayerStateChange 
     } 
    }); 
    }  

    function onPlayerReady(event) { 
    setTimeout(function(){player.playVideo(); },8000); 
    } 

    // 5. The API calls this function when the player's state changes. 
    // The function indicates that when playing a video (state=1), 
    // the player should play for six seconds and then stop. 
    var done = false; 
    function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING && !done) { 
    setTimeout(stopVideo, 29000); 
    done = true; 
    } 
    } 

    function stopVideo() { 
    player.stopVideo(); 
    slide2(); 
    move(); 
    } 


var slide2 = function(){   
    setTimeout(function(){  
    slide3(); 
    move(); 
    },9000); 

} 


    //slide3 

    var player; 
    function onYouTubeIframeAPIReady() { 
    player2 = new YT.Player('player2', { 
    height: '820', 
    width: '707', 
    videoId: 'AQx1UjLv3Ps', 
    events: { 
    'onReady': onPlayerReady, 
    'onStateChange': onPlayerStateChange 
     } 
    }); 
    }  

    function onPlayerReady(event) { 
    setTimeout(function(){player2.playVideo(); },8000); 
    } 

    // 5. The API calls this function when the player's state changes. 
    var done = false; 
    function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING && !done) { 
    setTimeout(stopVideo2, 29000); 
    done = true; 
    } 
    } 

    function stopVideo2() { 
    player2.stopVideo(); 

    } 
+0

我无法弄清楚这一点。任何人? –

+0

想出来 - [解决方案](http://stackoverflow.com/questions/17012886/loading-multiple-video-players-with-youtube-api) –

+0

可能重复的[第二个视频保持循环,被调用后第一个结束 - youtube API?](http://stackoverflow.com/questions/17441532/second-video-keeps-looping-after-is-being-called-on-the-firsts-end-youtube-ap) –

回答

1

您不能多次调用onYouTubeIframeAPIReady()。您需要在一个onYouTubeIframeAPIReady呼叫中初始化所有玩家。尝试将onYouTubeIframeAPIReady的内容封装到新的命名函数中,然后在onYouTubeIframeAPIReady中调用它们。

相关问题