Youtube API检测是否禁用自动播放

时间:2014-09-23 11:32:43

标签: javascript android ios youtube-api

我已经使用Youtube API自动播放视频,但我发现它只适用于PC而不是移动设备。我做了一些google-ing并发现在移动设备上禁用了自动播放功能。

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

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

2 个答案:

答案 0 :(得分:0)

似乎没有办法在没有测试视频的情况下获取此信息,并检查视频的当前时间是否已经加载。

它被要求作为modernizr中的一项功能,但正如您从Paul Irish的this comment所看到的那样,您必须要检查视频。看起来他们正试图将其添加到现代化的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

答案 1 :(得分: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();
          }