Ringtone 踩坑

414 阅读1分钟

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(context, notification); r.play();

上面的代码存在mediaPlayer未释放资源的问题,会导致其它模块播放media时出现(1,-19)

Ringtone 持有一个对应的mediaplayer,虽然Ringtone 每次播放前都释放资源,但是因为RingtoneManager每次返回的是一个新的Ringtone 对象,所以上面代码中,会不断的创建新的nediaplayer,导致出现无法播放问题。