我有一個ListView與一些項目,每個項目播放一定的聲音。這是代碼:再次播放之前停止MediaPlayer無法正常工作
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
try {
player.setDataSource(externalStoragePath + "/Android/data/com.whizzappseasyvoicenotepad/" + recordedFilesArray.get(arg2) + ".mp3");
player.prepare();
player.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
如果我點擊一個項目,它開始播放,然後一個我之前點擊播放完畢,在MediaPlayer只會同時播放聲音在同一時間之前單擊另一個項目。如何讓我的MediaPlayer停止()播放先前的聲音並開始播放新的聲音,如果在停止播放之前點擊了該項目?
我嘗試在嘗試之前添加player.Stop(),以便每次單擊一個項目時,MediaPlayer都會在設置新源並重新開始之前停止,但這隻會停止以前的聲音並且不會播放新的聲音。
我也嘗試添加IF語句,就像這樣:
if (!player.isPlaying()){
//normally start the player
}
else if (player.isPlaying()){
//stop it before starting it again
}
我想複製我的實際代碼,但我已經刪除它,因爲它沒有工作。它也剛剛停止了以前的聲音,並沒有播放新的聲音。