private void startAlarm() throws IllegalStateException, IOException {
mMediaPlayer = MediaPlayer.create(this, getSystemDefultRingtoneUri());
mMediaPlayer.setLooping(true);//设置循环
mMediaPlayer.prepare();
mMediaPlayer.start();
}
//获取系统默认铃声的Uri
private Uri getSystemDefultRingtoneUri() {
return RingtoneManager.getActualDefaultRingtoneUri(this,
RingtoneManager.TYPE_RINGTONE);
}
发现了个问题,因为startAlarm是throw一个异常,在方法外面捕获异常无济于事(不会播放铃声),要在真正需要的地方捕获异常,所以重新重构了一下:
private void startAlarm() {
mMediaPlayer = MediaPlayer.create(this, getSystemDefultRingtoneUri());
mMediaPlayer.setLooping(true);
try {
mMediaPlayer.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mMediaPlayer.start();
}

本文介绍了一段修复MediaPlayer异常处理并实现循环播放铃声的代码实现,通过在方法内部捕获异常来确保铃声播放的稳定性和可靠性。
2250

被折叠的 条评论
为什么被折叠?



