2016-12-03 107 views
0

我正在使用Vimeo及其自動播放功能。問題是自動播放功能無法在移動設備上使用,而且我有一些計時器會假設視頻已經自動播放。我知道視頻播放時會觸發一個事件,但我似乎可以找到關於如何判斷自動播放是否正常工作的任何信息。有沒有辦法說明自動播放是否在編程上工作。我想要做的就是這樣..檢測Vimeo視頻是否會自動播放

自動播放在這個設備上工作或自動播放火嗎? 如果不忘記定時器並立即顯示所有內容。

回答

1

正如您所說,Vimeo Player的自動播放功能在移動設備上無法正常工作(這在this article中得到了通知),並且JavaScript API似乎在這些設備上被破壞。您仍然可以使用Vimeo's Player JavaScript API來操作非移動設備上的視頻,並推斷移動設備是否支持JavaScript API。

確定是否自動播放的工作在非移動設備

要檢查是否自動播放已經開始在這些設備上都VIMEO播放器的工作原理,你可以結合player.getPaused()準備在網頁上使用的play事件。

<html> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://player.vimeo.com/api/player.js"></script> 
 
    </head> 
 
<body> 
 
    
 
    <iframe id="player" src="https://player.vimeo.com/video/78716964?autoplay=1&title=0&byline=0&portrait=0" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> 
 
    
 
    
 
    <script> 
 
    var player = new Vimeo.Player($('#player')); 
 
    
 
    var state = { autoplaying : false }; 
 
    
 
    player.on('play',() => { 
 
     state.autoplaying = true; 
 
     player.off('play'); 
 
    }); 
 
    
 
    player.getPaused().then((paused) => { 
 
     var playing = !paused; 
 
     state.autoplaying = state.autoplaying || playing; 
 
    }); 
 
    </script> 
 
</body> 
 
</html>

確定是否自動播放的工作在移動設備上:

現在有沒有乾淨的方式來確定此移動設備上,因爲的JavaScript API是壞了。您可以嘗試通過調用任何API方法來檢測JavaScript API是否已啓用並等待承諾結果。如果結果沒有在短時間內出現,那麼你可以說API不起作用。所以,讓我們假設自動播放不起作用。

var player = new Vimeo.Player($('#player')); 
 

 
var state = { 
 
    autoplaying : false, 
 
    apiEnabled : null 
 
}; 
 

 
player.on('play',() => { 
 
    state.autoplaying = true; 
 
    player.off('play'); 
 
}); 
 
        
 
setTimeout(() => { 
 
    if (state.apiEnabled === null) { 
 
    state.apiEnabled = false; 
 
    // Do something 
 
    } 
 
}, 100); 
 
       
 
player.getPaused().then((paused) => { 
 
    state.apiEnabled = true; 
 
    // Do something 
 
});

你也可以使用一些像TECHNIC以detecting user agent確定,如果你是在移動設備,因此假設自動播放未執行。

我建議你不要破解Vimeo的iframe來確定自動播放狀態。公共API應該是爲了確保您的腳本將來能夠正常工作的方式。

相關問題