[英]How to play ringtone selected from RingtonePreference
我正在嘗試播放從RingtonePreference中選擇的鈴聲。 我怎么玩呢?
這是我的xml文件代碼
<RingtonePreference
android:title="Choose Alarm"
android:key="ringtone"
android:summary="this is summary"
></RingtonePreference>
這是我在java中所做的
SharedPreferences getAlarms = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String alarms = getAlarms.getString("ringtone", "default ringtone");
當我像這樣使用吐司
Toast.makeText(getApplicationContext(), alarms, Toast.LENGTH_LONG).show();
然后它顯示了這種路徑
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的示例項目,您可以下載並檢查其工作情況。
你可以從你得到的字符串中獲取Uri,
SharedPreferences getAlarms = PreferenceManager.
getDefaultSharedPreferences(getBaseContext());
String alarms = getAlarms.getString("ringtone", "default ringtone");
Uri uri = Uri.parse("alarms");
然后你可以使用MediaPlayer
播放uri。
您可以從首選項中獲取首選鈴聲,您可以使用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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.