[問題] 音樂播放的延遲
我想做一個類似節奏天國/太鼓達人之類的遊戲
目前遊戲中的各種零碎「音效」,用SoundPool來播放,即時性是滿足夠的
問題在於「背景音樂」的部分
用MediaPlayer來播放會有一定程度的delay
而且每次進入遊戲的delay,有時長有時短
所以一旦delay較長的時候,會導致「背景音樂」與「音效」些微錯開
感覺delay的範圍大概是0~300ms之間
因為遊戲是以節奏為主,滿注重timing的
所以大概50ms以上的誤差就不太能夠接受了
除了MediaPlayer之外,有嘗試過用SounPool來播放背景音樂
我看有人說SoundPool的單檔容量不能超過1MB
但實際測試則發現無法超過約100KB,mp3/ogg都試過了
然而一場遊戲大約2分鐘,把音樂壓縮到100KB實在有點慘...
另外也嘗試過OpenSL的方式
我是借用這個專案的code來用
http://code.google.com/p/opensl-soundpool/
雖然delay的問題大幅減少
幾乎每場遊戲的delay都極短 (雖然偶爾還是會不理想...不過算可接受)
但是這個專案的code似乎只能使用wav檔,而且要44.1K的
所以每次進入遊戲的讀取時間從原本大約0秒,變成8~10秒....= =
所以想請問大家不知道有沒有什麼建議呢?
AudioTrack好像是一個方向
不過似乎有很多的細節需要處理,有點超出我的能力範圍...
(我只是個Java & Android入門者)
OpenSL如果能修改成播放mp3/ogg那就很完美,不過若是自己來也是滿有難度的感覺
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.144.143
※ 編輯: milonga332 來自: 61.217.144.143 (04/12 23:36)
→
04/13 02:04, , 1F
04/13 02:04, 1F
是的,有事先prepare過了,delay是純粹來自.start()這個指令
推
04/13 02:16, , 2F
04/13 02:16, 2F
那我試試看jetplayer好了,謝啦!
※ 編輯: milonga332 來自: 61.217.144.143 (04/14 01:40)