2014-09-23 67 views
3

我已经使用Youtube API自动播放视频,但我发现它只适用于个人电脑,但不适用于移动设备。我做了一些谷歌搜索,发现在移动设备上禁用了自动播放功能。Youtube API检测自动播放功能是否被禁用

没有问题,我可以检测自动播放是否被禁用??。或者,如果vidio处于状态-1,至少强制视频显示您播放按钮。

if(event.data == -1) { 
    // show play button 
} 

回答

0

看来,有没有得到这个信息,而与你的视频测试和检查已​​加载之后该视频的当前时间是否拥有先进的方式。

它被要求作为modernizr中的一项功能,但您可以从Paul Irish的this comment中看到,您必须有视频才能查看。看起来他们正试图将其添加到modernizr的v3中。

所以基本上这是可行的,他的伪代码应该让你开始。基本上前四点已经完成。你只需要实现最后两个。

create a video element 
set video element src to something 
add autoplay attribute to it 
add element to the dom 
bind to that event (something metadata soemthing) that fires when its buffered some 
setTimeout after it fires and see if currentTime is > 0 
+0

嗯,我希望能有是一个简单的/内置的解决方案 – 2014-09-23 12:19:57

+0

恐怕不是。否则,您可以在该处播放播放按钮,然后在视频开始播放时将其删除。使用'onPlayerStateChange'回调。然后处理所有的播放事件 - 无论是否自动播放。见http://stackoverflow.com/questions/8950146/check-if-youtube-video-is-playing-and-run-script – RichieAHB 2014-09-23 12:24:08

0

样本自动播放而不使用arg autoplay。我只测试PC上的这个解决方案不是移动的,但你可以试试这个代码:

LIVE EXAMPLE

HTML

<div id="player"></div> 

JS

var tag = document.createElement('script'); 

tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 


    var tag = document.createElement('script'); 

    tag.src = "https://www.youtube.com/iframe_api"; 
      var firstScriptTag = document.getElementsByTagName('script')[0]; 
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 


    var player; 
      function onYouTubeIframeAPIReady() { 
      player = new YT.Player('player', { 
       height: '390', 
       width: '640', 
       videoId: 'M7lc1UVf-VE', 
       events: { 
       'onReady': onPlayerReady, 
       'onStateChange': onPlayerStateChange 
       } 
      }); 
      } 


      function onPlayerReady(event) { 
      event.target.playVideo(); 
      } 

      function onPlayerStateChange(event) { 
      if (event.data == YT.PlayerState.PLAYING) { 

      } else { 

      } 
      } 
    function stopVideo() { 
      player.stopVideo(); 
      } 
相关问题