我有以下代码:
if (someId.matches("A") || someId.matches("a")) {
tvLetCap.setText("A");
tvLetLow.setText("a");
ivLetterIcon.setImageResource(R.drawable.apple);
btnDisplayWord.setText("A is for APPLE");
mpSound = MediaPlayer.create(this, R.raw.sound);
mpSound.setLooping(false);
btnPlay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
/*try {
Uri uri = Uri.parse("android.resource://com.mypack.testing/" + R.raw.sound);
mpSound.setDataSource(getApplicationContext(),uri);
mpSound.prepare();
*/
mpSound.start();
btnPlay.setVisibility(View.GONE);
btnStop.setVisibility(View.VISIBLE);
btnStop.setOnClickListener(stopSound);
/*}
catch (IOException e){
Log.e("REPLAYING", "prepare() failed");
}*/
}
});
mpSound.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mpSound.release();
btnPlay.setVisibility(View.VISIBLE);
btnStop.setVisibility(View.GONE);
}
});
}
使用已注释掉的代码可以正常播放,但每当我尝试重播文件时我的应用FC。声音文件位于res/raw/sound.mp3
如何修改代码,使其播放的次数与按下btnPlay
的次数相同。
答案 0 :(得分:1)
你已经发布了媒体播放器。如果您想重复使用它,请不要这样做。
答案 1 :(得分:1)
媒体播放器有一些方法...... http://developer.android.com/reference/android/media/MediaPlayer.html
也许你需要在onClick方法中使用mpSound.reset()按钮(前一段时间我有这样的错误:p)? :)