【问题标题】:HLS playing issues on Android 4.3 onwardAndroid 4.3 及更高版本上的 HLS 播放问题
【发布时间】:2014-02-07 03:59:31
【问题描述】:

我想要实现的是通过 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 视频标签来呈现流。 它不会在浏览器中播放,但是,如果您单击具有完全相同路径的直接链接,则会弹出一个播放器并且该流将正确播放。

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

环境:

  • 安卓操作系统 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。所以用&lt;source&gt;标签中的那个替换这个m3u8,Chrome浏览器就可以正常播放了。 如果查看正在工作的 m3u8,您可以看到编解码器是 avc1.66.30, mp4a.40.2,我怀疑文件的实际编解码器是问题的原因。

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

【问题讨论】:

  • 需要更多信息。你的设备是什么?
  • 我目前正在通过 ASUS Nexus 7 运行测试,操作系统为 4.3。
  • 并且您正在使用应用程序(使用WebView)或手机浏览器(如果是,您使用的是哪个浏览器?默认一个/其他?)
  • 我没有构建任何应用程序,我只是使用 Chrome 浏览器构建一个 HTML 页面。
  • 很多人报告了这个问题:google.com.hk/…

标签: android html5-video http-live-streaming live-streaming


【解决方案1】:

我认为它直接通过浏览器工作但通过视频标签失败的原因是cross origin proxy(野生动物园只是没有这个 HSL 限制)。

确保将Access-Control-Allow-Origin: * 添加到您的.m3u8.ts 文件中,它应该可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    相关资源
    最近更新 更多