0
我有一個「點擊」,即高頻率,但20-25後點擊的聲音消失。缺省情況下Android的媒體播放器停止音頻
MediaPlayer mp;
mp = MediaPlayer.create(mService.getApplicationContext(),R.raw.click2);
mp.start();
}
的Android塊這種循環?
我有一個「點擊」,即高頻率,但20-25後點擊的聲音消失。缺省情況下Android的媒體播放器停止音頻
MediaPlayer mp;
mp = MediaPlayer.create(mService.getApplicationContext(),R.raw.click2);
mp.start();
}
的Android塊這種循環?
那麼我沒有看到你提供的代碼中的循環,但如果你實際上正在循環中創建MediaPlayer
s而不是調用release()
,那麼你將通過使用太多的可用資源。我有幾個提示給你。
提示1:不要使用mService.getApplicationContext()
,因爲(我認爲)mService
是一個Service
並且已經是一個Context
(Service
從Context
繼承)。你基本上不應該使用getApplicationContext()
。
提示#2:使用一個MediaPlayer
並注意state machine。嘗試這樣的:
MediaPlayer mp = new MediaPlayer();
...
while (whateverCondition) { // I don't know what loop construct you are using...
mp.reset();
mp.setDataSource(this,
Uri.parse("android.resource://com.your.package/" + R.raw.click2);
mp.prepare();
mp.start();
}
...
mp.release();
您將需要填寫適當的包名稱,但它應該讓你在正確的軌道上。
您是否在每次播放聲音時都創建新的MediaPlayer?是的,爲什麼不創建一次並重新使用它? – Michael
對!我會盡力! – totzi10
我收到一個錯誤:nullpointerexception,如果我將該行放在外面 – totzi10