【发布时间】:2013-11-28 21:20:50
【问题描述】:
我想做的是获取当前正在播放的 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);
到目前为止一切顺利,它正确显示了我的第一个 videoID。
现在第一个视频结束后,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中?
【问题讨论】:
-
你什么时候打电话给
$('#currentVideoDiv').html('Currently Playing:' + currentVideoId);?在swapVideo()之后? -
我在最后和 getId() 函数内部尝试过
标签: javascript jquery youtube-api youtube-javascript-api