【问题标题】:Play a specific notification sound播放特定的通知声音
【发布时间】:2015-03-06 09:24:33
【问题描述】:

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

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

【问题讨论】:

  • 路径变量包含什么值?
  • @Darkie "content://media/internal/audio/media/Capella"
  • 我认为,在 media/ 之后,您应该获得轨道的 id 而不是名称,因为当您访问路径时,它会为您提供带有 id 而不是名称的轨道路径。你应该检查一下...
  • 如何获取路径?

标签: android android-mediaplayer


【解决方案1】:

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

cursor.getInt(RingtoneManager.ID_COLUMN_INDEX)

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

【讨论】:

  • 很乐意帮助你... :)
【解决方案2】:

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

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

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多