Android 安卓4.3以后的HLS播放问题
我试图实现的是通过Android设备进行流媒体直播。 经过测试,在4.3之前的版本中,设备正在正确使用HLS.m3u8进行实时流媒体播放。 示例源代码如下所示:Android 安卓4.3以后的HLS播放问题,android,html5-video,http-live-streaming,live-streaming,Android,Html5 Video,Http Live Streaming,Live Streaming,我试图实现的是通过Android设备进行流媒体直播。 经过测试,在4.3之前的版本中,设备正在正确使用HLS.m3u8进行实时流媒体播放。 示例源代码如下所示: <video controls="controls" style="height:400px; width:320px;"> <source src="/hls-live/my-stream_/my-stream_,1360,500,.m3u8"></source> </video>
<video controls="controls" style="height:400px; width:320px;">
<source src="/hls-live/my-stream_/my-stream_,1360,500,.m3u8"></source>
</video>
<a href="/hls-live/my-stream_/my-stream_,1360,560,.m3u8">Direct Link<a/>
直接链接
正如您在上面看到的,我正在尝试使用HTML5视频标记来呈现流。
它不会在浏览器中播放,但是,如果您单击具有完全相同路径的直接链接,将弹出一个播放器,流将正确播放
所以我在这里有点困惑,为什么live不能在html5播放器下正常播放,但可以在弹出式播放器中播放(我假设后者是Android下的本地播放器?)
环境:
- 安卓操作系统4.3
- 华硕Nexus7
- 浏览器
http://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov/playlist.m3u8
从此页http://www.wowza.com/forums/showthread.php?32675-HLS-playback-issue-on-Android-4-3
。因此,将此m3u8替换为
标记中的一个,Chrome浏览器将正常播放。
如果查看正在工作的m3u8,您可以看到编解码器是avc1.66.30,mp4a.40.2,我怀疑文件的实际编解码器是问题的原因
我还尝试调用
media.canPlayType('application/vnd.apple.mpegURL')
,它返回一个空字符串。我认为它通过浏览器直接工作,但无法通过视频标记的原因是跨源代理(safari对HSL没有这个限制)
确保将访问控制允许源代码:
添加到.m3u8
和.ts
文件中,它应该可以工作需要更多信息。哪个是您的设备?我目前正在通过4.3操作系统的华硕Nexus 7运行测试,您正在应用程序(使用WebView
)或手机浏览器(如果是,您使用的是哪个浏览器?默认浏览器/其他浏览器?)中工作。我没有构建任何应用程序,我只是使用Chrome浏览器构建HTML页面。许多人报告了此问题: