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

时间:2013-11-28 21:20:50

标签: javascript jquery youtube-api youtube-javascript-api

我想要做的是获取当前正在播放的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,
      },

    });
  }

正如您所看到的,VideoId(它将播放的第一个视频)由一个名为“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)];


}

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

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

1 个答案:

答案 0 :(得分:2)

这是基于您在loadVideoById

之后更新显示ID的假设
function swapVideo() {

 var currentVideoId = getId();

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

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

}