2014-04-23 22 views
13

我想檢測手機/平板電腦是否可以播放HTTP實時流式傳輸(m3u8)。手機上的HTTP實時流式傳輸檢測

我目前這個測試腳本:

function isHLSEnabled() { 
    var videoElement = document.createElement('video'), 
     canPlayAppMpeg = videoElement.canPlayType('application/x-mpegURL'), 
     canPlayAppleMpeg = videoElement.canPlayType('vnd.apple.mpegURL'); 

    return (
     (canPlayAppMpeg == 'probably' || canPlayAppMpeg == 'maybe') 
     || (canPlayAppleMpeg == 'probably' || canPlayAppleMpeg == 'maybe') 
    ); 
} 

但它並不能在一些三星瀏覽器(股票,海豚等)很好地工作 - 它返回false(因爲canPlayTypes是空的字符串)但是它可以播放視頻。

是否有任何防彈(ISH)解決方案來檢測這種流支持?

+0

這仍與股票的瀏覽器在Android 5.0和Android 5.1中的問題。 Chrome可以播放。 – easwee

+0

我沒有嘗試過,但是如果您將視頻元素的src設置爲流src並檢查視頻是否正在播放,它會工作嗎? – Nimmi

回答

1

我不知道現在是否有防彈解決方案可用。

使用視頻元素的canPlayType方法是唯一真正「有效」的方法。大約有+/- 5/6種媒體格式,它們支持現代瀏覽器的oo

因此,基本上你可以創建一個你想要支持的格式列表,並從中進行測試。 canPlayType方法允許您指定哪個編解碼器。你應該做的,因爲只是測試WebM可能不會導致所需的結果,例如:

element.canPlayType('video/webm; codecs="vp9"')

當你這樣做後,你應該應該通常會得到三個不同的迴應:「可能」,「mabye」或「」(空字符串含義:不支持)。

有些資源可能對您有用:

的Mozilla提供了主流格式/編解碼器的列表:

Mozilla Media Format List

Modernizr的是框架,這將考驗,爲廣大的HTML5視頻格式的支持。您可能還想看看他們的html5視頻檢測源代碼。

Modernizr HTML video detect

相關問題