大家好,我为我的游戏构建了一个AudioQueue,它以某种方式可以正常工作,代码:
handleAction: function ( src )
{
var oAudio = document.getElementById('voice');
if(this.lastSoundPlayed == undefined || src != this.lastSoundPlayed.src) // checks if there is an actual new sound incoming.
{
var self = this;
oAudio.src = src; //sets the source
oAudio.load();
oAudio.onloadeddata = oAudio.play(); // when loaded play the sound
oAudio.onended = self.soundDone( self, oAudio ); //when the sound is finished fire the soundDone function
}
}
soundDone()函数:
soundDone: function( self , oAudio )
{
console.log("Finished"); //logs that the sound is finished
self.lastSoundPlayed = oAudio; //sets the lastSoundPlayed
self.sendNotification(self.SC_ACTION_COMPLETE); //fires off a notification that the sound is finished (im using pureMVC)
}
实际的问题是,他认为声音立即完成。香港专业教育学院记录了我的声音的持续时间,还有所有NaN吗?我已经用console.log(oAudio.duration)进行了检查。我不知道为什么会这样。我也有背景音乐,它们的演奏方式与这些声音相同,背景音乐也没错。
有人可以帮我吗?
编辑:这是我的音频的音频标签:
<audio id="voice" src="mySound.mp3" controls preload="auto" ></audio>
最佳答案
几周前发现它,当我打电话时声音还没有完全加载。