我们使用 icecast 服务器构建了一个互联网广播流媒体,通过 html5 音频标签将 MP3 流式传输到 Firefox。然而,有时 streamer 会因任何原因(断开连接等)而停止,当您重新启动 streamer 时,它会从 session 的开头开始流式传输,这让我们相信它正在播放浏览器缓存中的内容。
让流媒体播放实际直播流的唯一方法是删除 Firefox 中的历史记录。这在其他浏览器中不会发生。如果使用 flash 回退而不是 html5 音频标签,也会发生这种情况。
考虑过使用以下脚本,但认为它不适用于这种情况。
<meta http-equiv="Cache-control" content="no-cache" />
任何见解都会有所帮助。谢谢。
最佳答案
注意:请参阅 @MosheL's answer 了解现代解决方案。
旧答案(SHOUTcast 可能仍然需要):
我发现对于 SHOUTcast/Icecast 流,保证您不会从缓存中播放的唯一方法是使用添加缓存破坏 URL 参数的旧方法。
如果您的原始流 URL 是这样的:
http://1.2.3.4/someMountPoint
然后在播放的时候用JavaScript生成一个这样的url:
http://1.2.3.4/someMountPoint?nocache=123456789
这保证了缓存不会发生,对于浏览器来说,它们是不同的资源。
关于html - Firefox 从缓存流式传输而不是实时流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483858/