我检查了Youtube API v3 iframe嵌入文档,并试图将player.clearVideo[()函数应用于我的按钮,如下所示(省略号替换代码):
...
function onPlayerReady(event) {
var zapButton = document.getElementById('zapvideo');
zapButton.addEventListener("click", function() {
player.clearVideo(); // NOT WORKING
});
}
...
$(function(){
$('#zapvideo').on('click', function(){ ... });
});
什么都没发生(没有错误)。player.stopVideo()和其他控件工作。如何从Youtube播放器中清除视频?我使用的是Youtube的HTML5播放器,但即使Youtube在某些视频中切换到Flash播放器,我仍然无法清除播放器中的视频(最糟糕的是,当随后选择兼容HTML5的视频并在我的应用程序中播放时,Youtube不会恢复到HTML5播放器,无论我是否选择了HTML5或添加了相关的HTML5 playerVars,这意味着当基于Flash的播放器控件处于焦点时,我都无法退出它们。"无聊键"导航到此为止!)。我使用的是Firefox 36.0.1.
我可以使用任何合适的解决方法来清除视频,同时保持播放器可用。
找到了一个解决方法,代码如下:
...
function onPlayerReady(event) {
...
$('#zapvideo').on('click', function(){
$('#player').hide();
event.target.loadVideoById('',0);
event.target.seekTo(0); // iOS
event.target.stopVideo();
return false;
});
}
#zapvideo
按钮隐藏iframe播放器,因为我们不想在通过event.target.loadVideoById()
提交空或伪视频id后在播放器中看到任何错误消息。播放新视频之前,请记住显示播放器。相关代码封装在onPlayerReady()
函数中,以确保播放器在执行代码之前始终做好准备。