创建全局MediaPlayer对象
MediaPlayer mMediaPlayer;
重新播放代码
//配置播放器 MediaPlayer
if (null != mMediaPlayer) {
if (mMediaPlayer.isPlaying()) {
stopPlay();
}
}
try {
AssetFileDescriptor assetFileDescriptor = getAssets().openFd("audio/"+messageEvent.getAudioName()+".mp3"); // 获取文件
mMediaPlayer = MediaUtils.createMedia(this, assetFileDescriptor);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer.start();
}
});
//设置监听回调
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stopPlay();
}
});
//设置出错的监听器
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
//提示用户
stopPlay();
//释放播放器
return true;
}
});
mMediaPlayer.setVolume(1, 1);//配置音量
mMediaPlayer.setLooping(false);//是否循环
mMediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
stopPlay();
}
public void stopPlay() {
if (mMediaPlayer != null) {
try {
mMediaPlayer.stop();
} catch (Exception e) {
e.printStackTrace();
mMediaPlayer = null;
mMediaPlayer = new MediaPlayer();
mMediaPlayer.stop();
}
mMediaPlayer.release();
mMediaPlayer = null;
}
}