随着文件大小的增加播放wav文件的音频

时间:2015-10-22 14:54:16

标签: javascript audio

我通过JavaScript以下列方式播放音频:

this.audio = new Audio();
this.audio.src = "path/to/audio.wav";
this.audio.play();

服务器上的文件audio.wav会随着时间的推移而变大,我希望音频能够在不中断的情况下继续播放。但是,一旦达到初始文件大小,它将停止播放。

我能做些什么才能让它无缝播放?

1 个答案:

答案 0 :(得分:1)

我很确定这很大程度上取决于您的服务器配置。

WAVE格式(几乎所有版本,包括Microsoft和RIFF)都有一个数据大小位于数据块顶部的字段。这由audio元素读取,尤其是preload属性设置为空白,autometadata

因此,请求此类文件的Web浏览器可能只请求许多字节,然后只关闭连接。 the API description中没有任何内容表明它会在文件的实际结束之前读取。

但是,有一件事情是在“结束”事件中注册。然后,根据this answer,你应该能够再次开始游戏,寻找你已经结束的位置。服务器应该从您需要的位置开始流式传输数据。如果它不能直接工作,我会尝试使用preload="metadata"重新插入音频节点,以便它可以读取更新的文件大小。

另一个,也许更简单的事情是将文件大小破解为荒谬的大事。运气好的话,它可能“正常运转”。