html - Firefox 从缓存流式传输而不是实时流式传输

标签 html firefox stream icecast internet-radio

我们使用 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/

相关文章:

javascript - 按钮单击更改颜色

java - 使用 Java Streams 一次从文本文件中读取 X 行?

c# - 将 StreamWriter 与 BinaryFormatter 结合使用

c# - 将流转换到文件流

html - 网站 div 在 Firefox 中无法正确显示

javascript - 如何在 css 中制作 1 个图像 block ?

html - 无法将标签放在 1 行并在下一行输入和选择

html - 如何修复 tailwindcss-cli 抛出 TypeError : Object. fromEntries is not a function?

firefox - WebRTC:使用 VP9 编码的 Firefox 中的 SDP

html - 我的专栏将在 Firefox/Safari 中换行,但它在 Chrome 中有效