HLS在Android 4.3上播放问题

时间:2014-02-07 03:59:32

标签: 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>

<a href="/hls-live/my-stream_/my-stream_,1360,560,.m3u8">Direct Link<a/>

如上所示,我正在尝试使用HTML5视频标记来呈现流。 它不会在浏览器中播放,但是,如果您单击具有完全相同路径的直接链接,将弹出一个播放器并且流将正常播放。

所以我在这里有点困惑,为什么live不能在html5播放器下正常播放,但能够在弹出播放器中播放(我假设后者是Android下的原生播放器?)

环境:

  • Android OS 4.3
  • 华硕Nexus 7
  • Chrome浏览器

编辑:这里添加了更多信息, 我也尝试过其他类型的视频,例如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替换为<source>标记中的m3u8,Chrome浏览器即可正常播放。 如果查看正在工作的m3u8,您可以看到编解码器是avc1.66.30, mp4a.40.2,我怀疑文件的实际编解码器是导致问题的原因。

我也试过调用media.canPlayType('application/vnd.apple.mpegURL')并返回一个空字符串。

1 个答案:

答案 0 :(得分:0)

我认为它直接来自浏览器但通过视频标记失败的原因是cross origin proxy(safari对HSL没有这个限制)。

确保您将Access-Control-Allow-Origin: *添加到.m3u8.ts文件中,它应该有效