【发布时间】:2014-06-03 00:07:05
【问题描述】:
在反复检查后,我注意到如果我加载一个播放列表:
player.loadPlaylist(videoCodeList, start);
然后我不会在播放列表中的每个视频结束后触发 ENDED 事件,而只会在播放列表本身的末尾触发。
在单个视频播放列表的情况下,ENDED 事件在视频结束时触发。
如果有人注意到这一点,为什么会这样?
我想要实现的是在视频结束时停止视频,如果用户要求仅播放
一首歌曲,即使它是播放列表的一部分。
<html>
<body>
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var videoCodeList = playlistObject.getCodeList();
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
playerVars:{rel:0, showinfo:0},
events: {
'onReady': onPlayerReady
,'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
var start = playlistObject.getStart();
player.loadPlaylist(videoCodeList, start);
}
function onPlayerStateChange(event) {
if (event.data == 0 && playSingle.findChecked()){
player.stopVideo();
}
}
</script>
</body>
</html>""")
【问题讨论】:
标签: javascript iframe pyqt youtube-javascript-api