簡體   English   中英

HLS Stream Android 4.4.2 Samsung Galaxy S5上沒有視頻

[英]No Video on HLS Stream Android 4.4.2 Samsung Galaxy S5

HLS流不會播放視頻,但是會播放音頻。

設備信息:

三星Galaxy S5

Android 4.4.2 / Build KOT49H

鉻36.0.1985.131

在其他Android版本和設備上播放的HLS流:

使用三星S5上的瀏覽器應用程序“ Internet”,它將播放HLS流的視頻,這使我認為Chrome可能是一個問題,但是,當在具有完全相同的Chrome版本的Nexus 5設備上進行測試時(Android 4.4.4除外),並且視頻可以正常播放。

Android Issue Queue的問題為63810:HLS上沒有視頻在Android KitKat上進行實時流傳輸 ,我已盡力而為

我該怎么做才能獲得有關問題性質的更多信息?

這是Android 4.4.2 Samsung S5的合法錯誤嗎?

我注意到此行為在4.4.2的其他問題中,其問題似乎因設備和制造商而異。 通過實驗,我注意到了以下幾點:

  1. 進入退出全屏似乎重置了渲染器。 我懷疑這會迫使瀏覽器創建新的視圖或其他內容
  2. 重新加載視頻似乎對渲染器有所幫助
  3. 改變來源似乎會使情況更糟

我們的產品主要適用於播放列表-當ended事件的一個視頻觸發我們改變了視頻src和調用.load().play()去下一個。 在某些設備上,如果第一個src是HLS,則視頻可以正常播放,但是如果第一個src是mp4或webm,則切換到HLS會使您丟失視頻。 在其他設備上,這是相反的行為-在HLS中啟動失敗,但切換成功。 在某些設備上,如果你進入全屏開始播放之前,對別人,如果你進入全屏開始播放后,它不僅具有視頻HLS具有視頻。 在某些設備上,開始播放后,全屏按鈕消失

這不是理想的,而且老實說很hacky,但是我想出了一個丑陋的解決方案:

// 1.
video.addEventListener('click', requestFullScreen);
// 2.
function requestFullScreen() {
    video.removeEventListener('click', requestFullScreen);
    video.webkitRequestFullScreen();
}
// 3.
function reloadVideo() {
    var ext = video.src.substr( video.src.lastIndexOf('.') ).toLowerCase();
    if( ext == '.m3u8' ) {
        video.load();
        video.play();
    }
}
// 4.
video.addEventListener('webkitbeginfullscreen', reloadVideo, false);
video.addEventListener('webkitendfullscreen', reloadVideo, false);
// 5.
video.addEventListener('webkitfullscreenchange', reloadVideo, false);
  1. 這是修復“在某些設備上開始播放后全屏按鈕消失的錯誤”的錯誤
  2. 我們給該函數起一個名字,以便以后刪除。 如果他們要求退出全屏播放,那么如果全屏顯示按鈕消失,他們將不會怪罪您的播放器。 此時,他們將責備手機,並刷新頁面。 這樣,如果人們在嘗試滾動時再次意外全屏顯示,便不會生氣
  3. 輔助功能。 全屏播放時,我們不想重啟視頻,除非我們必須
  4. 股票的Internet瀏覽器引發這兩個事件
  5. Chrome引發此事件

我還必須實現許多其他技巧。 例如,當到達視頻結尾時,Galaxy S4上的常規Internet瀏覽器並不總是引發ended事件。 因此,我每隔1秒進行一次setInterval檢查。 如果視頻在過去1秒鍾內移動的時間少於0.5秒鍾, 並且從未暫停過(我在“ resume和“ pause事件中設置了一個標志),則假定您已經結束了。

我已經成功使用preload="none" 切換到auto只能播放音頻,使用none將播放視頻和音頻正常。 已在Samsung S3 Android 4.4.2上進行了測試。

編輯: autoplay也會導致該問題。 刪除它似乎很有必要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM