获取返回随机值的函数的当前值

我想要做的是获取当前正在播放的YouTubevideo的当前videoID,并将其显示在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, }, }); } 

正如您所看到的,VideoId(它将播放的第一个video)由一个名为“currentVideoId”的变量设置,该变量之前设置如下:

 var currentVideoId = '9z4Kft47kBM' 

我想在div中显示当前ID

 

为此,我使用了以下代码:

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

到目前为止一切顺利,它正确地显示了我的第一个videoID。

现在,在第一个video结束后,onStateChange事件将调用此函数:

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

“swapVideo”函数将调用函数getId();

  function swapVideo() { player.stopVideo(); player.loadVideoById(getId()); } 

getId()函数将从xml文件中获取随机videoID,不必担心这一点。

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

所以现在播放一个带有新videoId的新video,但是currentVideoDiv中的值仍然是相同的,因为没有任何改变它。

问题是,我如何获得新的当前id,它是由getId函数随机设置并在currentVideoDiv中显示的?

这是基于您在loadVideoById之后更新显示ID的假设

 function swapVideo() { var currentVideoId = getId(); player.stopVideo(); player.loadVideoById(currentVideoId); $('#currentVideoDiv').html('Currently Playing:' + currentVideoId); }