4

我正在爲客戶開發一個網站,並且一直停留在這一點,因爲我們兩個都能夠在Android上的Chrome中重新創建此問題。YouTube視頻(使用最新的API)無法在Android上的Chrome上播放?

無論出於何種原因,當我們在Android版Chrome加載這個頁面:

http://miso.gostppro.com

視頻裝載機只是不斷旋轉和紡紗和視頻從來不玩。

然後點擊它也不會做任何事情(不開始播放,不在YouTube應用程序中打開它,沒有任何東西)。

它在其他瀏覽器(Firefox for Android加載它並播放它就好)中工作得很好,所以我很困惑,爲什麼會發生這種情況。

我缺少什麼?

這是API中的一些調用還是什麼?

我迷路了。

回答

5

總之,它不會工作。引述documentation

The HTML5 element, in certain mobile browsers (such as Chrome and Safari), only allows playback to take place if it's initiated by a user interaction (such as tapping on the player). (...) Due to this restriction, functions and parameters such as autoplay, playVideo(), loadVideoById() won't work in all mobile environments.

你在你的onPlayerReady處理,未在移動環境允許並拋出控制檯的警告呼籲event.target.playVideo();(以供將來參考 - 我強烈建議在Chrome中使用Remote Debugging)。

所以,回到你的問題 - 我只是擺脫onPlayerReady處理程序,並使用autoplay球員變量。它應該在桌面上工作,而不是在移動設備上破壞玩家。

0

我測試了我的Nexus 5運行的是Android 5.1.1您的網頁,發現了一些問題:

首先我得到這個錯誤:

Failed to execute 'postMessage' on 'DOMWindow': https://www.youtube.com !== http://miso.gostppro.com

,我認爲是一個http和https錯誤,但我刷新後,錯誤的頁面走了,我看到了一個新的警告:

Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.

正如jkondratowicz的答覆中指出,這是移動瀏覽器不允許自動播放的副產品在HTML5視頻上。唯一能想到的是刪除與播放器相關的任何JavaScript和自動播放參數,並允許用戶在準備好時手動啓動視頻播放。

我也越來越結果好壞參半的結果與添加監聽到的iframe會調用play()頁面加載事件:

function callback() { 
    document.querySelector('ytplayer').play(); 
} 

window.addEventListener("load", callback, false); 
相關問題