5

在一个简单的 HTML5/WebGL 应用程序中,我想偶尔播放声音效果。

目前我在一个构造函数中:

this.audio = new Audio('audio/zeep.mp3');

然后,我想播放文件:

this.audio.play();

它第一次有效,但第二次播放失败。我已经尝试将其重置currentTime为零,也尝试重置为 0.1。既不工作:

this.audio.currentTime = 0;
this.audio.play();

如果我Audio每次想要播放它时都重新创建对象,Chrome 的网络选项卡会显示它正在通过网络重新获取文件,而不是从缓存中提供它。

请注意,我不需要相同的音效同时播放多次。这种声音将不常见。

我在这里错过了什么吗?

4

1 回答 1

1

音频元素 无法再次播放。

音频文件的 http 标头需要具有Content-Range,例如:

Content-Range:bytes 0-5151/5152

它是为寻求而设计的。

如果需要并发,一个音频元素不能同时播放。使用:

var copy = audio.cloneNode(); copy.play();

于 2014-09-11T17:33:31.123 回答