【发布时间】:2021-02-13 02:47:20
【问题描述】:
所以我正在从我的 nodejs-server 流式传输一个 .mp3 音频(使用 stream.pipe(response)),并使用 HTML5 <audio> 播放它。适用于除 iOS 浏览器以外的所有设备。
典型行为:音频播放几秒钟然后暂停,我什至无法取消暂停,所以我必须刷新页面。但我没有任何问题,因为播放几秒钟后音频再次停止。
奇怪的事情:它在本地主机上完美运行。
即使只是连接速度问题,我认为浏览器仍然应该能够以某种方式缓冲音频并在准备好后立即播放。
响应标头:
res.status(206).header({
'Content-Type': 'audio/mpeg',
'Content-Length': content_length,
'Content-Range': "bytes " + start + "-" + end + "/" + stat.size,
'Content-Transfer-Encoding': "binary",
'Accept-Ranges': "bytes"
});
readStream = fs.createReadStream(mp3path, {
start: start,
end: end
});
readStream.pipe(res);
网页代码很简单,我只是使用<audio>标签并从js文件中设置src:
htmlAudio.src = audio_stream_api_link;
【问题讨论】:
标签: ios audio safari html5-audio audio-streaming