HTML5,Javascript:音频结束不起作用

时间:2012-04-26 14:01:47

标签: javascript html5 audio browser

嘿伙计们,我为我的游戏构建了一个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>

1 个答案:

答案 0 :(得分:0)

几个星期前发现它,当我打电话时声音没有满载。