无法播放先前在共享首选项中选择的声音

时间:2019-03-26 19:47:41

标签: java android xml sharedpreferences

我正在android studio上创建一个应用程序。在此应用程序中,我需要允许用户从设置中的手机铃声中选择铃声。它正常工作,但是之后我必须能够播放此铃声,而我却无法播放!

我在互联网上尝试了一些有关Ringtone和MediaPlayer的代码,但是手机没有声音。 除了一次不是先前选择的铃声的通知声音(我不记得哪个代码)。 我指定我需要声音是铃声(例如电话)或警报,而不是通知!

这是我的XML代码,用于在我的PreferencesScreen中选择铃声:

<RingtonePreference
        android:icon="@drawable/round_phonelink_ring_24"
        android:defaultValue="content://settings/system/notification_sound"
        android:fontFamily="@font/roboto_regular"
        android:dependency="notifications_new_message"
        android:key="@string/ringtone_notification_key"
        android:ringtoneType="alarm"
        android:title="@string/pref_title_ringtone" /> 

这是我尝试失败的代码之一:

SharedPreferences getAlarms = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String alarms = getAlarms.getString(getString(R.string.ringtone_notification_key), "default ringtone");
Uri uri = Uri.parse(alarms);

Ringtone r = RingtoneManager.getRingtone(this, uri);
r.play(); 

当前,当我尝试发出警报时,我的振动器可以与振动器一起很好地启动(与振铃器无关,但可能与之相关)。但是,即使我在设置中记录了警报,也没有声音。 我希望我能弹奏那著名的铃声。

有人有什么想法吗?

0 个答案:

没有答案