Youtube API暂停时,我按下播放在一些移动浏览器

Youtube API pause when i press play in some mobile browser

本文关键字:播放 浏览器 移动 暂停 API Youtube      更新时间:2023-09-26

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

好的,我找到了问题的原因。我在Android的火狐浏览器和三星Galaxy S3的标准浏览器上都遇到了问题。我的设置是youtube播放器有control=0所以所有的播放和暂停交互都是通过按iframe/video image

来完成的

在firefox中,问题是如果我播放视频,暂停并再次播放它,它会播放几帧并无故暂停。问题的原因是这一行:

标记。SRC = "http://www.youtube.com/iframe_api";

如果我改变http到https它工作。如果不使用https链接到视频,使用常规嵌入时也会出现同样的问题。

然而,这意味着用户必须在视频可见之前激活插件,而且它似乎是另一个更延迟的播放器出现…当在论坛上阅读时,似乎很多人都对youtube嵌入android的firefox有问题。

对于三星s3浏览器,问题正好相反。当播放视频并暂停时,它会无缘无故地倒带几帧并再次播放。我发现问题出在"control=0"参数上。如果我将其更改为"control=2",它就可以工作了,所以如果我想支持这个浏览器,我需要重新考虑我的设计。