从缓存而不是实时流中流式传输的 Firefox 流式传输



我们构建了一个互联网广播流媒体,利用冰播服务器通过html5音频标签将MP3流式传输到Firefox。但是,有时流媒体会因任何原因(断开连接等)而停止,当您重新启动流媒体时,它会从会话开始流式传输,这让我们相信它播放浏览器缓存中的内容。

让流媒体播放实际直播的唯一方法是删除 Firefox 中的历史记录。这在其他浏览器中不会发生。如果使用 Flash 回退而不是 html5 音频标签,也会发生这种情况。

考虑使用以下脚本,但认为它不适用于此方案。

<meta http-equiv="Cache-control" content="no-cache" />

任何见解都会有所帮助。谢谢。

注意:请参阅@MosheL的现代解决方案答案。

旧答案(可能仍然需要 SHOUTcast):

我发现使用 SHOUTcast/Icecast 流,保证您不会从缓存播放的唯一方法是使用添加缓存破坏 URL 参数的旧方法。

如果您的原始流网址是:

http://1.2.3.4/someMountPoint

然后在播放时使用 JavaScript 生成如下所示的 URL:

http://1.2.3.4/someMountPoint?nocache=123456789

这确保了缓存不会发生,对于浏览器来说,它们是不同的资源。

icecast.xml

 <http-headers>
    <header name="Cache-control" value="no-cache" />
</http-headers>

更新(3/2020):在Chrome上,我们需要解决缓冲实时流的另一个问题:

<audio controls preload="false" autoplay="false" .....

相关内容

  • 没有找到相关文章

最新更新