我想做的事情是获取当前正在播放的 YouTube 视频的当前视频 ID 并将其显示在 div 中。
这是我的 YT iframe
API 代码(如 Google 开发网站上的基本示例):
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 文件中获取随机 videoID,不必担心细节。
function getId() {
return videos[Math.floor(Math.random() * videos.length)];
}
现在正在播放具有新 videoId 的新视频,但 currentVideoDiv 中的值仍然相同,因为没有任何更改。
问题是,如何获取 getId 函数随机设置的新的当前 id 并将其显示在 currentVideoDiv 中?
最佳答案
这是基于您在 loadVideoById
之后更新显示 ID 的假设
function swapVideo() {
var currentVideoId = getId();
player.stopVideo();
player.loadVideoById(currentVideoId);
$('#currentVideoDiv').html('Currently Playing:' + currentVideoId);
}
关于javascript - 获取返回随机值的函数的当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274897/