3

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

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

考虑过使用以下脚本,但认为它不适用于这种情况。

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

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

4

2 回答 2

8

Note: See @MosheL's answer for a modern solution.

Old Answer (and probably still needed for SHOUTcast):

I've found that with SHOUTcast/Icecast streams, the only way to guarantee that you won't be playing from cache is to use the old method of adding a cache-busting URL parameter.

If your original stream URL is this:

http://1.2.3.4/someMountPoint

Then use JavaScript to generate a URL like this when playing:

http://1.2.3.4/someMountPoint?nocache=123456789

This ensures that caching will not happen, as to the browser, they are different resources.

于 2012-11-21T04:09:28.623 回答
4

冰铸.xml

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

更新(2020 年 3 月):在 Chrome 上,我们需要解决一个缓冲直播流的问题:

<audio controls preload="false" autoplay="false" .....
于 2019-01-10T19:09:05.640 回答