播放特定的通知声音

时间:2015-03-06 09:24:33

标签: android android-mediaplayer

我已经创建了一个对话框,用于为应用选择通知声音。我通过从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

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

2 个答案:

答案 0 :(得分:2)

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

cursor.getInt(RingtoneManager.ID_COLUMN_INDEX)

感谢Darkie指出了正确的方向。

答案 1 :(得分:0)

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

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

由于