从缓存而不是实时流的Firefox流

RMX*_*RMX 2 firefox html5 stream internet-radio icecast

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

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

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

<meta http-equiv="Cache-control" content="no-cache" />
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*rad 5

我发现对于SHOUTcast / Icecast流,确保您不会从缓存中播放的唯一方法是使用添加缓存无效URL参数的旧方法。

如果您的原始流URL是这样的:

http://1.2.3.4/someMountPoint
Run Code Online (Sandbox Code Playgroud)

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

http://1.2.3.4/someMountPoint?nocache=123456789
Run Code Online (Sandbox Code Playgroud)

这样可以确保不会发生缓存,因为对于浏览器而言,它们是不同的资源。

  • 不可以,数字 (123456789) 必须是随机数。如果那是您的代码……您不会添加随机数。我的意思不是“123456789”。每次连接到流时生成一个随机数。 (2认同)