从 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 进行测试——它们的行为是否相同,或者您是否在处理某些浏览器特定的行为。
我正在构建一个带有音频流的页面,我需要快进和快退音频。我正在使用原生 <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 进行测试——它们的行为是否相同,或者您是否在处理某些浏览器特定的行为。