如何播放从RingtonePreference中select的铃声

我正在尝试播放从RingtonePreference中select的铃声。 我怎么玩?

这是我的XML文件代码

<RingtonePreference android:title="Choose Alarm" android:key="ringtone" android:summary="this is summary" ></RingtonePreference> 

这是我在做的事情

 SharedPreferences getAlarms = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); String alarms = getAlarms.getString("ringtone", "default ringtone"); 

当我用这样的吐司

 Toast.makeText(getApplicationContext(), alarms, Toast.LENGTH_LONG).show(); 

然后显示这种path

 content://media/internal/audio/media/50 

但是我不知道怎么玩这个。

请帮助。

 private void alarm(){ SharedPreferences getAlarms = PreferenceManager. getDefaultSharedPreferences(getBaseContext()); String alarms = getAlarms.getString("ringtone", "default ringtone"); Uri uri = Uri.parse(alarms); playSound(this, uri); //call mMediaPlayer.stop(); when you want the sound to stop } private MediaPlayer mMediaPlayer; private void playSound(Context context, Uri alert) { mMediaPlayer = new MediaPlayer(); try { mMediaPlayer.setDataSource(context, alert); final AudioManager audioManager = (AudioManager) context .getSystemService(Context.AUDIO_SERVICE); if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); mMediaPlayer.prepare(); mMediaPlayer.start(); } } catch (IOException e) { System.out.println("OOPS"); } } 

这里应该是你想要的:)我希望它的作品

这里是一个来自Commonsware的示例项目,您可以下载并检查其工作。

你可以从你使用的string中获得Uri,

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

然后你可以使用MediaPlayer播放uri。

您可以从首选项中select首选铃声,并使用RingtoneManager类轻松播放铃声

 SharedPreferences getAlarms = PreferenceManager. getDefaultSharedPreferences(getBaseContext()); String alarms = getAlarms.getString("ringtone", "default ringtone"); Uri uri = Uri.parse(alarms); Ringtone r = RingtoneManager.getRingtone(context, uri); r.play();