铃声播放时间太长

时间:2012-11-22 09:31:51

标签: java android

我正在使用RingtoneManager和RingtonePreference。当我使用默认铃声时,没有问题,但是当我使用配置的铃声时,它会播放几分钟...我不知道歌曲的持续时间是几分钟还是它是否循环播放......

这里是我的代码:

private static void playNotificationSound(Context context) {
    RingtoneManager rm  = new RingtoneManager(context);
    String ringtone = MySharedPreferences.ringtone(context);
    Uri uri = null;
    if(ringtone == null)
        uri = RingtoneManager
            .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    else
        uri = Uri.parse(ringtone);
    if (uri != null) {
        Ringtone rt = RingtoneManager.getRingtone(context, uri);
        if (rt != null) {
            rt.setStreamType(AudioManager.STREAM_NOTIFICATION);
            rt.play();
        }
    }
}

我用它来播放带有通知的歌曲,我不希望手机播放5分钟......

3 个答案:

答案 0 :(得分:1)

尝试添加以下行。

ringtoneManager.stopPreviousRingtone();

答案 1 :(得分:0)

你能用这样的线程吗?

if (rt != null) {
                rt.setStreamType(AudioManager.STREAM_NOTIFICATION);

                rt.play();
            }

            Thread myThread = new Thread() {

                int wait = 0;

                @Override
                public void run() {
                    try {
                        super.run();

                        while (wait < 5000) {
                            sleep(500);
                            wait += 500;
                        }
                    } catch (Exception e) {

                    } finally {
                        if (rt.isPlaying())
                            rt.stop();

                    }
                }
            };
            myThread.start();

答案 2 :(得分:0)

我找到了另一个解决方案,我设置了notification.sound = uri; 并且不再使用RingtoneManager。

with notification.flags | = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE;

但是歌曲仍在循环中播放。也许铃声真的是5分钟长?或者是否可以将铃声配置为循环歌曲?