我已通过此代码在我的网页上添加了YouTube视频。
<div id="ytplayer"></div>
<script>
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'o9UQSUHHdtA',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
</script>
我在用户点击按钮时播放视频。通过删除display:none可以看到它。现在它在Firefox中不起作用,在chrome中运行良好。有人可以帮助我。
谢谢:直播是here。
它告诉我TypeError: player.seekTo is not a function
有人知道如何等待加载播放器。如果我做了player.seekTo手动在firebug然后它工作。
答案 0 :(得分:0)
YouTube iFrame API .seekTo() not a method?
确保满足以下条件:
- 定义了具有ID播放器的容器:
<div id="ytplayer"></div>.
- 代码不会延期。即,不在onload事件,$(document).ready,setTimeout等内。否则,IFrame API无法加载,代码将无法工作。
- jQuery已加载。
醇>
答案 1 :(得分:0)
你应该使用
window.onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '390',
width: '640',
videoId: 'o9UQSUHHdtA',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
答案 2 :(得分:0)
var _isPlayerReady= false;
function _playVideo(){
setTimeout(function(){
if (_isPlayerReady) {
player.seekTo(0);
}
else{
_playVideo();
}
},1000);
}
function onPlayerReady(event){
isPlayerReady = true;
}
由于Ciack404告诉他们在YT API中有2个事件可用。这是我如何做到的。
我在就绪事件上调用onPlayerReady。因为它是隐藏的然后这不能使它在Firefox中可用(如果你没有尝试使用Show()回调那么这个技巧很有用)。
这个代码调用检查播放器存在并在下一秒播放视频时它正常工作。这在每个浏览器中都可以正常工作。
注意: - 我已经看到隐藏的div视频可以在Chrome中播放但在Firefox 17中无效(目前为止)。这就是我设置TimeTime功能的原因,因为我的视频从隐藏状态变为可见状态。