声音不会播放两次



我有一个用于Tizen操作系统的web应用程序。我需要播放一个声音两次,并在每次之后做一些动作。

在浏览器中工作得很好,但在设备上却表现得很奇怪。有时候第一次听到的声音会正常播放,第二次就没有声音了。有时两次都播放,但回调函数没有被调用。

代码:

var callback = function() {
    doAction()
};
SoundManager.playSound(soundID, callback);
setTimeout(function() {
    callback = function() {
        doAnotherAction();
    };
    SoundManager.playSound(soundID, callback);
}, 3000);

声音经理:

SoundManager.playSound = function(id, callback) {
    if (callback != null) {
        var func = function() {
            callback();
            this.removeEventListener('ended', func, false);
        }
        $(SoundManager.sounds[id])[0].addEventListener('ended', func, false);
    }
    $(SoundManager.sounds[id])[0].play();
};

找到解决方案

每次只需添加'ended'回调到音频和重置时间:

this.currentTime = 0;

最新更新