我想要实现的是通过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播放器下正常播放,但能够在弹出播放器中播放(我假设后者是安卓下的本地播放器?)
环境:
编辑:这里添加了一些更多的信息,我也尝试过其他类型的视频,例如本页中的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>标签中的一个,Chrome浏览器就可以播放它了。如果查看工作的m3u8,可以看到编解码器是avc1.66.30, mp4a.40.2,我怀疑文件的实际编解码是问题的原因。
我还尝试调用media.canPlayType('application/vnd.apple.mpegURL'),它返回一个空字符串。
发布于 2015-10-25 03:53:03
我认为它直接通过浏览器工作,但通过视频标签失败的原因是cross origin proxy ( safari对HSL没有这个限制)。
确保将Access-Control-Allow-Origin: *添加到您的.m3u8和.ts文件中,它应该可以工作。
https://stackoverflow.com/questions/21619070
复制相似问题