我正在使用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分钟......
答案 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分钟长?或者是否可以将铃声配置为循环歌曲?