从 HTML 音频标签流式传输而不是缓冲文件

Streaming from HTML audio tag not buffering file

我正在构建一个带有音频流的页面,我需要快进和快退音频。我正在使用原生 <audio> HTML 元素。

我不知道为什么音频没有缓冲,因此我无法使用 currentTime 属性 播放。如果我使用来自另一个随机收音机的另一个流媒体 URL,它就可以工作。所以我想这与流服务器有关。

我有很多问题: 1 - 是什么导致流式传输不缓冲? 2 - 与音频格式有关吗? AAC 还是 MP3?

这是我的音频未缓冲:

这是另一个正确缓冲的音频(来自其他网络):

编辑:我有另一条线索。不缓冲的流是AAC格式,缓冲的是MP3格式。有谁知道格式是否与缓冲有关?

我猜测服务器提交的响应与可能用于实现缓冲的磁盘缓存不兼容。

我要检查的内容:

  • 服务器接受具有字节偏移量的 Range header。
  • 服务器以 [​​=11=] header 响应内容的正确字节偏移量。如果您有自定义实现,请确保响应 if not off-by-one。请注意,HTTP 规范对偏移量和长度使用了奇怪的解释!
  • 如果请求包含 header Range.
  • ,HTTP 状态代码应为 206 而不是 200
  • 响应应包含 header ETag,只要媒体文件相同,响应就应该是静态的。
  • 响应应包含 header Cache-Control 和合适的值。详情见HTTP Headers: Controlling Cache and History Mechanism
  • 你能用不同的浏览器引擎重复这个问题吗?例如,使用 Firefox、Chrome 和 Safari 进行测试——它们的行为是否相同,或者您是否在处理某些浏览器特定的行为。