var snd = new lime.audio.Audio('music/my.mp3'); snd.play();播不出來,也沒出錯,但是 LimeJS 附的範例就是這樣寫也播的出來,傷腦筋。
用 alert 除錯時,發現只要在 play 之前有 alert 的話,在 FireFox 就播得出聲音,但是在 Chrome 還是不行!
依此類堆一下,猜測「也許是載入音樂檔需要一點時間」,那就加上 setTimeout 吧。
var snd = new lime.audio.Audio('music/my.mp3'); setTimeout(function(){ snd.play(); }, 1000);在 FireFox 與 Chrome 都可行,運氣真好!
2012/9/13 補正:
原來 lime.audio.Audio 有提供 API 判斷載入否!
function playAudio(snd) {
if (snd == null) {
return;
}
if (snd.isPlaying()) {
return;
}
if (snd.isLoaded()) {
snd.play();
}
setTimeout(function(){
playAudio(snd);
}, 100);
};
---
沒有留言:
張貼留言