我一直在使用youtubes javascript api获取网页,一切都运行良好。今天我发现了一个以前没有出现的问题。在某些移动浏览器上,例如Android上的firefox,youtube播放器只能运行。如果我按播放(在视频上)它开始播放,如果按暂停它停止。但是,如果我再次按下播放,它会播放几帧并再次暂停。我认为这是一个新问题,因为我在过去几周里做了很多测试。这是我创建玩家的代码。
//Start Youtube API
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var youtubeReady = false;
//Variable for the dynamically created youtube players
var players= new Array();
var isPlaying = false;
function onYouTubeIframeAPIReady(){
youtubeReady = true;
//The id of the iframe and is the same as the videoId
jQuery(".video").each(function(i, obj) {
players[obj.id] = new YT.Player(obj.id, {
videoId: obj.id,
playerVars: {
controls: 0,
showinfo: 0 ,
modestbranding: 1,
wmode: "transparent",
html5: 1
},
events: {
'onStateChange': onPlayerStateChange
}
});
});
}

答案 0 :(得分:0)
好的,我找到了问题的原因。我在Firefox for Android和三星Galaxy S3上的标准浏览器中遇到了问题。我的设置是youtube播放器控制= 0所以通过按iframe /视频图像完成所有播放和暂停交互
在Firefox中,问题在于,如果我播放视频,暂停并再次播放,它将暂停播放几帧,无缘无故。问题的原因是这一行:
tag.src =" http://www.youtube.com/iframe_api";
如果我将http更改为https,则可以正常工作。如果您没有使用https链接到视频,使用常规嵌入时会出现同样的问题。
然而,这意味着用户必须在视频可见之前激活插件,而且它似乎是另一个更加迟钝的玩家出现...在论坛中阅读时,似乎很多人都有youtube嵌入的问题用firefox for android。
对于三星s3浏览器,问题恰恰相反。在播放视频并暂停时,它会回放几帧并无缘无故再次播放。我发现问题出在" control = 0"参数。如果我将其更改为" control = 2"它有效,所以如果我想支持这个浏览器,我需要重新考虑我的设计。它似乎不起作用......