我想要做的是获取当前正在播放的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中显示的?
答案 0 :(得分:2)
这是基于您在loadVideoById
function swapVideo() {
var currentVideoId = getId();
player.stopVideo();
player.loadVideoById(currentVideoId);
$('#currentVideoDiv').html('Currently Playing:' + currentVideoId);
}