播放特定的通知声音

Play a specific notification sound

我创建了一个对话框,用于为应用程序选择通知声音。我正在通过从 RingtoneManager 获取光标来查询通知声音:

RingtoneManager manager = new RingtoneManager(this);
manager.setType(RingtoneManager.TYPE_NOTIFICATION);
Cursor cursor = manager.getCursor();

然后我通过将声音路径与名称连接来存储它的完整路径。

当我将选定的声音设置为通知声音时效果很好,但我无法让媒体播放器在选择时播放它:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(path));

这将引发 IllegalStateException:

java.lang.IllegalStateException: Unknown URL: content://media/internal/audio/media/Capella

关于如何获得特定通知声音的正确路径的任何想法?

//为了播放铃声,您需要使用 RingtoneManager 创建一个新的铃声并将其传递给一个变量

铃声 rt = mRingtoneManager.getRingtone(this, uri); rt.play();

谢谢

播放声音的正确方法是使用它的 ID 而不是名称:

cursor.getInt(RingtoneManager.ID_COLUMN_INDEX)

感谢 Darkie 为我指明了正确的方向。