我已经创建了一个对话框,用于为应用选择通知声音。我通过从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
有关如何获取特定通知声音的正确路径的任何想法?
答案 0 :(得分:2)
播放声音的正确方法是使用它的ID而不是名称:
cursor.getInt(RingtoneManager.ID_COLUMN_INDEX)
感谢Darkie指出了正确的方向。
答案 1 :(得分:0)
//为了播放铃声,您需要使用RingtoneManager创建一个新的铃声并将其传递给变量
铃声rt = mRingtoneManager.getRingtone(this,uri); rt.play();
由于