播放html5的Audio对象的多个实例

时间:2011-01-18 19:49:30

标签: javascript html5 audio

我正在用Javascript制作一个小游戏,它需要一些音频才能获得更好的用户体验。 我的主要问题是我必须多次播放1首歌曲/声音,有时候同时播放。 但是,如果我cloneNode音频对象,音频将再次从服务器下载,因此只播放后者,因为它必须先下载。所以在正常游戏中声音可以下载超过100次!

由于我无法在互联网上找到答案,我问你:)

请注意,我想用自己的代码来做,而不是用库。

3 个答案:

答案 0 :(得分:0)

我还没有对此进行测试,但是可能值得尝试将数据URI用于需要同时播放的音频片段的src。当你克隆元素时,这会阻止服务器命中 - 虽然每次下载它的事实真的听起来像浏览器错误。我认为它应该从浏览器缓存中提取。

看起来有人已经尝试过这个:Is it possible to use data URIs in video and audio tags?

答案 1 :(得分:0)

解决此问题的方法是在所有功能中创建一个制作并播放音频元素的功能。我认为应该是这样的:

var makePlayAudio = function(src) {
var aud = new Audio();
aud.src = src;
aud.play();
}

然后,您可以随时调用它。

注意:我只在Chrome中进行过测试。

答案 2 :(得分:-1)

无需cloneNode音频对象。只需从JavaScript调用同一对象上的play(),每次调用该函数时都会播放。如果它已经播放,它将重新启动。见https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox#Controlling_media_playback