【问题标题】:android.media.Ringtone.play() stops working after a 28 playsandroid.media.Ringtone.play() 播放 28 次后停止工作
【发布时间】:2017-02-14 01:42:01
【问题描述】:

我有一个打开几个小时的应用程序,并使用附加了前台通知的后台服务。每隔一段时间就会播放一个声音:

try {
    Ringtone r = RingtoneManager.getRingtone(context, uri);
    r.play();
} catch (Exception e) {
    e.printStackTrace();
}

声音正常,但一段时间后声音不再播放。
没有错误,没有警告,没有崩溃。就是没有声音。

我的用户也在抱怨,所以这看起来不像是特定于设备的问题。

Android Docs 不提这个。 有谁知道这是为什么?

【问题讨论】:

标签: android ringtone ringtonemanager


【解决方案1】:

不要在 BroadcastReceiver 中创建铃声或 MediaPlayer!

问题在于铃声或 MediaPlayer 的上下文。通过从广播接收器触发声音,每次播放声音时都会创建一个新的 MediaPlayer 或铃声。 28 次之后,声音就不再播放了。

通过从 IntentSerice 播放声音,或重新使用 MediaPlayer 或 Ringtone 的静态实例,一切都按预期播放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多