我使用相同的按钮播放和pause.It可以处理播放和暂停smoothly.But音乐文件结束后,它不能播放它again.When我按下它重启应用程序。我使用mp.reset();mp.release();.It在这种情况下没有帮助
Java代码:
final MediaPlayer mp1;
mp1 = MediaPlayer.create(convertView.getContext().getApplicationContext(), convertView.getResources().getIdentifier(audiopath, "raw", convertView.getContext().getPackageName()));
mHolder.play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mp1.isPlaying()) {
mp1.pause();
mHolder.play.setImageResource(R.drawable.plays);
} else {
mp1.start();
mHolder.play.setImageResource(R.drawable.pause);
mp1.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.release();
mHolder.play.setImageResource(R.drawable.plays);
}
});
}
}
});
LogCat:
java.lang.IllegalStateException
at android.media.MediaPlayer.isPlaying(Native Method)
at com.example.package.adapter.AdapterN$3.onClick(AdapterN.java:223)
发布于 2019-05-16 00:30:19
这可能是因为"mp.release()":
正如您在文档here中所看到的,它声明在release()之后,该对象不再可用。
因此,我在这里建议您删除"mp.release()“,并将其放在活动的onDestroy()下。
https://stackoverflow.com/questions/56153570
复制相似问题