当我在某些移动浏览器中按播放时,Youtube API暂停

时间:2015-05-15 13:36:54

标签: javascript youtube youtube-api

我一直在使用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
           }
        });
     });
  }




1 个答案:

答案 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"它有效,所以如果我想支持这个浏览器,我需要重新考虑我的设计。它似乎不起作用......