打在繼承的聲音時,我發現下面的代碼作爲一個答案在這裏的一個問題Playing multiple files in MediaPlayer one after other In android應用程序崩潰的MediaPlayer的
當我運行它,在3種播放聲音,但隨後該應用程序與消息
關閉不幸的是應用程序已停止。
onCompletion
方法裏面有什麼缺失嗎?
public class MainActivity extends Activity implements MediaPlayer.OnCompletionListener {
int[] tracks = new int[3];
int currentTrack = 0;
private MediaPlayer mediaPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tracks[0] = R.raw.p46;
tracks[1] = R.raw.p52;
tracks[2] = R.raw.p55;
mediaPlayer = MediaPlayer.create(getApplicationContext(), tracks[currentTrack]);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.start();
}
public void onCompletion(MediaPlayer arg0) {
arg0.release();
if (currentTrack < tracks.length) {
currentTrack++;
arg0 = MediaPlayer.create(getApplicationContext(), tracks[currentTrack]);
arg0.setOnCompletionListener(this);
arg0.start();
}
}
我認爲這只是你的if語句的錯誤。在範圍檢查之後,您正在增加'currentTrack',導致超出範圍的異常。 – Jack
我認爲這個錯誤來自'arg0.setOnCompletionListener(this);'在你的onCompletion方法中嘗試刪除它,看它是否在第一首歌曲後沒有拋出錯誤 –