在 android 中使用 RingtoneManager 重复铃声
Repeat Ringtone using RingtoneManager in android
目前我正在使用以下代码播放铃声:
Ringtone ringtone = RingtoneManager.getRingtone(this, Uri.parse(selectedRingtone));
ringtone.play();
如果我播放默认或系统铃声,它们会循环播放或重复播放。但如果我从我的画廊或媒体商店中选择任何其他声音,它只会播放一次。我浏览了一些链接,但我不想使用 MediaPlayer
。我只需要使用 RingtoneManger
.
你必须使用 MediaPlayer
。
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
MediaPlayer player = MediaPlayer.create(this, notification);
player.setLooping(false);
player.start();
中没有任何与循环相关的方法
您正在播放的文件(默认)似乎包含有关文件本身循环的信息。如果你想循环其他文件,你必须确保这些文件也包含有关循环的信息。它将帮助您将目标归档 Ringtone.class。
否则,我建议您使用 MediaPlayer。即使没有有关文件中循环的信息,它也允许您循环播放声音(为什么您不想使用此 class?)
如果您的目标是 Api 28 或更大,现在 Ringtone
中有一个 setLooping
方法
https://developer.android.com/reference/android/media/Ringtone.html#setLooping(boolean)
所以在你原来的例子中,你只需添加
ringtone.setLooping(true);
目前我正在使用以下代码播放铃声:
Ringtone ringtone = RingtoneManager.getRingtone(this, Uri.parse(selectedRingtone));
ringtone.play();
如果我播放默认或系统铃声,它们会循环播放或重复播放。但如果我从我的画廊或媒体商店中选择任何其他声音,它只会播放一次。我浏览了一些链接,但我不想使用 MediaPlayer
。我只需要使用 RingtoneManger
.
你必须使用 MediaPlayer
。
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
MediaPlayer player = MediaPlayer.create(this, notification);
player.setLooping(false);
player.start();
中没有任何与循环相关的方法
您正在播放的文件(默认)似乎包含有关文件本身循环的信息。如果你想循环其他文件,你必须确保这些文件也包含有关循环的信息。它将帮助您将目标归档 Ringtone.class。
否则,我建议您使用 MediaPlayer。即使没有有关文件中循环的信息,它也允许您循环播放声音(为什么您不想使用此 class?)
如果您的目标是 Api 28 或更大,现在 Ringtone
setLooping
方法
https://developer.android.com/reference/android/media/Ringtone.html#setLooping(boolean)
所以在你原来的例子中,你只需添加
ringtone.setLooping(true);