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



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

设置数据源时,会引发以下错误:

"设置数据源失败。: 状态=0x80000000">

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

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

RingtoneManager.TYPE_NOTIFICATIONRingtoneManager.TYPE_ALARM都返回无效值作为URI,因为警报和通知在设备中设置为无。一旦它被设置为特定值,它就开始返回有意义的值。

最新更新