我有一个用于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;