我有一些带有index.m3u8的TS文件,可以在VLC和Windows 7中的chrome和firefox等浏览器中正常播放(使用hls.js)。
在 android 4.4.2 设备上,我尝试运行 html 文件,,
firefox - 运行良好
chrome 36.0 - 工作正常
chrome 60 - 它不起作用
还有一件事,
alert(window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'));
仅在 chrome 60(android 4.4.2) 中返回 false。
我对发生的事情感到完全困惑,我们可以从 Android 浏览器播放 ts 文件还是有任何依赖性?
您感到困惑,因为本机浏览器的功能如下......
MediaSource.isTypeSupported()
...以及其他,请参阅 NATIVE 媒体类型支持,而不是通过第三方库(如 hls.js)引擎后编译添加的内容。
媒体类型的原生支持只能由开发者在 Chromium 引擎编译期间以特殊方式添加/注册。
但是,如果您不是能够添加其他本机媒体类型的 Chromium 开发人员,那么您唯一的选择就是添加非本机“伪支持”,使用诸如...
之类的技巧 chrome.downloads.onDeterminingFilename.addListener(function(e){});
...以便捕获某些网址(即:.m3u8 流)并将它们重定向到您可能添加的任何可选服务/功能,例如 hls.js。
大多数人对 hls.js 的使用水平甚至更低,直接在页面上的单个媒体播放器上支持 HLS,这与原生支持相差甚远。
简而言之,让您感到困惑的是不理解本机浏览器支持与伪第 3 方支持之间的区别。