我有一个使用HLS传输的视频。现在我想在JavaScript中测试设备是否能够以HTML5播放HLS视频。
通常在JavaScript中我会这样做:document.createElement('video').canPlayType('video/mp4')
。但是我无法确定HLS的正确“type”是什么。
苹果的Safari HTML5音频和视频指南似乎建议使用“vnd.apple.mpegURL”(“列表1-7回退到IE插件”)。
<video controls>
<source src="HttpLiveStream.m3u8" type="vnd.apple.mpegURL">
<source src="ProgressiveDowload.mp4" type="video/mp4">
....
即使在能够完美播放实际的HLS流的iOS设备上,canPlayType("vnd.apple.mpegURL")
仍然会返回一个空字符串。
有没有办法在没有"外部知识"的情况下检查播放能力(例如,"检查iOS用户代理并假设它可以播放HLS")?
我知道我可以在<video>
元素中指定多个源,浏览器将使用第一个可播放的源。但是,在我的情况下,我需要向JW Player提供单个URL,而我无法修改它。因此,我需要从一组视频编码中找到"最佳可播放URL"。(处理源选择的开源JS库将是一个不错的解决方法。)