1
我有一個鋼琴應用程序使用此方法的工作:媒體播放器與多個MP3文件的問題
public void play(String note) {
score++;
score();
try {
mp = MediaPlayer.create(this, getResources().getIdentifier(note, "raw", getPackageName()));
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer media) {
media.release();
}
});
} catch (Exception e) {
Log.e("Error", "error playing file : " + note + "\n" + e);
}
}
的問題是,如果我按下按鍵過快,有好幾次我看到下面的錯誤:
E/MediaPlayer: error (1, -19)
這些錯誤發生在我繼續玩時。但是,當我卸載應用程序,似乎重置,我得到更少的錯誤...爲什麼會發生這種情況,並有解決方案嗎?
謝謝您的回答多倫,但我已經在這種應用程序和一個音符的嘗試的Soundpool「殺死」下面,所以你不能聽到以前的聲音直到最後...無論如何,我已經爲我的清單添加了一個許可,並且它的工作似乎更好... – glassraven
SoundPool可以同時播放多個流(看看setMaxStreams()),我想你只用max steams = 1來初始化它。從性能的角度來看,我認爲這對你來說可能是更好的選擇,因爲你不需要在播放之前加載音符。 –
好的,你猜對了,但我的時間表很緊張......我想下一次我會嘗試soundpool – glassraven