2012-02-21 146 views
2

我正在製作一款android遊戲,當用戶觸摸某個對象時需要發出一聲小嘟嘟聲。android媒體播放器延遲

要做到這一點,我有這個簡單的代碼來創建媒體播放器。蜂鳴聲是~1.5秒長的小文件.ogg

MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.beep); 
mp.setVolume(0.5f, 0.5f); 

,並使用它像這樣

mp.start(); 

我遇到的問題是,我的遊戲採用的是Android的畫布,以及能夠吸引到畫布上線也稱mp.start()。我發現播放聲音需要花費很多時間,而且播放時間也非常多。有時1ms,有時15ms。這似乎導致我的遊戲明顯滯後一點,因爲無論如何,Android畫布非常慢。

我看了看日誌,看起來沒有垃圾收集導致延遲。我想知道是否有人可以給我一些建議,以減少這種延遲

編輯 - 我剛剛發現MediaPlayer是專爲較長的聲音文件,而SoundPool是更好的短音頻文件。但是,我只將文件加載到mediaPlayer一次,所以我不明白它應該如何改變。我會測試它雖然

回答

1

對不起,我的英語

使用的Soundpool代替MediaPlayer的事業需要的MediaPlayer播放器

SoundPool tutorial here

的每次通話後每次通話或通話方法 mp.release()後釋放內存