获取返回随机值的函数的当前值
我想要做的是获取当前正在播放的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); }