2014-09-23 80 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(); 
      } 
相關問題