为什么将RingtoneManager返回的铃声uri设置为Media Player的数据源时失败了

时间:2018-08-30 06:54:24

标签: android android-mediaplayer

我正在尝试为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”

当我在另一部手机上测试相同的代码时,我的alarm_uri的值为“ content:// media / internal / audio / media / 44”。我觉得这是造成问题的手机出了问题。

有人可以说出问题所在吗?

1 个答案:

答案 0 :(得分:0)

RingtoneManager.TYPE_NOTIFICATIONRingtoneManager.TYPE_ALARM都返回无效值作为URI,因为设备中的警报和通知均未设置。将其设置为特定值后,它将开始返回有意义的值。