调用音频元素在html5中播放的更快方法

时间:2012-12-25 16:46:23

标签: javascript html5 mobile html5-canvas html5-audio

我正在尝试在HTML5手机游戏中使用音频元素。 我有一些声音效果的问题,所以我在游戏开始时多次克隆音频元素:

for (var i=0; i < 10; i++)
        {
            var container = document.getElementById("audioDiv");
            var clone = document.getElementById('multiaudio0').cloneNode(true);
            clone.setAttribute('id',"multiaudio" + i);
            container.appendChild (clone);
        };

然后,当我需要“碰撞”使用它时,我将其称为NEXT:

document.getElementById('audioDiv').getElementsByTagName("audio")[score%10].play();

在调用元素并播放它时,它非常缓慢并且在画布上放慢动画速度的问题! 有时也不起作用!!!

对于HTML5中的手机游戏的声音有任何想法(不使用闪光灯),或者是快速调用元素的最佳做法,而不是document.getElementById ???

1 个答案:

答案 0 :(得分:1)

我建议在调用之前预先定义一个包含指向各种音频元素的指针的数组(而不是多次重复document.getElementById('audioDiv').getElementsByTagName("audio")次查找 还要确保已预先加载音频样本,以便缓存它们,并且在第一次需要时不等网络资源

如果您正在开发基于HTML5的游戏,我建议您查看EaselJS框架,尤其是SoundJS游戏...... http://www.createjs.com/#!/SoundJS