代码之家  ›  专栏  ›  技术社区  ›  Prashant

为什么RingtoneManager返回的铃声uri在设置为媒体播放器的数据源时失败

  •  -1
  • Prashant  · 技术社区  · 6 年前

    我正在尝试为Anndroid Media Player设置数据源。我正在使用以下代码。

    Uri alarmUri = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
    // alarm_uri = null
    
    if (alarmUri == null) {
       alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    
      // alarm_uri = "content://settings/system/notification_sound"
    }
    
    alarmMediaPlayer = new MediaPlayer();
    alarmMediaPlayer.setDataSource(this, alarmUri);
    

    在设置数据源时,它抛出以下错误:

    “setDataSource失败。:状态=0x80000000”

    当我在另一个电话上测试相同的代码时,我得到了值”content://media/internal/audio/media/44“用于报警。我觉得电话出了问题。

    有人能告诉我问题出在哪里吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Prashant    6 年前

    两者 RingtoneManager.TYPE_NOTIFICATION RingtoneManager.TYPE_ALARM 返回的URI值无效,因为设备中的报警和通知设置为“无”。一旦设置为特定值,它就开始返回有意义的值。