android.media.Ringtone.play() 在播放 28 次后停止工作
android.media.Ringtone.play() stops working after a 28 plays
我有一个打开数小时的应用程序,它使用后台服务并附有前台通知。每隔一段时间播放一个声音:
try {
Ringtone r = RingtoneManager.getRingtone(context, uri);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
声音正常,但一段时间后声音不再播放。
没有错误,没有警告,没有崩溃。就是没声音。
我的用户也在抱怨,所以这看起来不像是设备特定的问题。
Android Docs不要提这个。
有人知道这是为什么吗?
不要在 BroadcastReceiver 中创建铃声或 MediaPlayer!
问题是铃声或 MediaPlayer 的上下文。通过从广播接收器触发声音,每次播放声音时都会创建一个新的 MediaPlayer 或 Ringtone。 28次后,声音就没了。
通过从 IntentSerice 或 re-useing MediaPlayer 或 Ringtone 的静态实例播放声音,一切都按预期播放。
我有一个打开数小时的应用程序,它使用后台服务并附有前台通知。每隔一段时间播放一个声音:
try {
Ringtone r = RingtoneManager.getRingtone(context, uri);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
声音正常,但一段时间后声音不再播放。
没有错误,没有警告,没有崩溃。就是没声音。
我的用户也在抱怨,所以这看起来不像是设备特定的问题。
Android Docs不要提这个。 有人知道这是为什么吗?
不要在 BroadcastReceiver 中创建铃声或 MediaPlayer!
问题是铃声或 MediaPlayer 的上下文。通过从广播接收器触发声音,每次播放声音时都会创建一个新的 MediaPlayer 或 Ringtone。 28次后,声音就没了。
通过从 IntentSerice 或 re-useing MediaPlayer 或 Ringtone 的静态实例播放声音,一切都按预期播放。