Tizen OS 用の Web アプリがあります。1 つのサウンドを 2 回再生し、毎回いくつかのアクションを実行する必要があります。
ブラウザでは完璧に動作しますが、デバイスでは非常に奇妙な動作をします。1 回目はサウンドが正常に再生され、2 回目はサウンドが再生されないことがあります。両方再生されることもありますが、コールバックは呼び出されません。
コード:
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();
};