2013-11-28 49 views
0

我试图做的事情是获取当前正在播放的YouTube视频的当前视频ID并将其显示在div中。获取返回随机值的函数的当前值

这是我YT iframe API代码(如在对谷歌开发的网站基本的例子):

var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: currentVideoId, 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange, 
     'onError': onError, 
     }, 

    }); 
    } 

,你可以看到,该视频ID(第一视频将发挥)是由一组变量被称为 “currentVideoId”,其被设定之前是这样的:

var currentVideoId = '9z4Kft47kBM' 

我想在一个div来显示当前的ID

<div id="currentVideoDiv"></div> 

要做到这一点,我用这个代码:

$('#currentVideoDiv').html('Currently Playing:' + currentVideoId); 

到目前为止好,它正确地显示了我的第一个视频ID。

现在第一视频结束后,该onStateChange事件将调用这个函数:

function onPlayerStateChange(event) { 
if(event.data === 0) {    
    swapVideo();  
     } 
    } 

的“swapVideo”功能会调用该函数的getId();

function swapVideo() { 

player.stopVideo(); 
player.loadVideoById(getId()); 
} 

getId()函数将从xml文件中获取一个随机视频ID,不用担心这个问题。

function getId() { 
return videos[Math.floor(Math.random() * videos.length)]; 


} 

所以现在有一个新的视频ID的新的视频播放,但在currentVideoDiv值仍然是相同的,因为没有做改变。

问题是,我怎样才能得到新的当前ID,这是由getId函数随机设置并显示在当前视频分区?

+0

更新显示器ID时,你叫'$( '#currentVideoDiv')的假设HTML( '目前比赛:' + currentVideoId);'? 'swapVideo()'之后? – carmina

+0

我在最后和getId()函数里面试过了 –

回答

2

这是基于你以后loadVideoById

function swapVideo() { 

var currentVideoId = getId(); 

player.stopVideo(); 
player.loadVideoById(currentVideoId); 

$('#currentVideoDiv').html('Currently Playing:' + currentVideoId); 

} 
+0

谢谢sooooo了!你救了我的一天! –