如何播放从RingtonePreference中选择的铃声

时间:2012-05-05 09:25:28

标签: java android android-emulator

我正在尝试播放从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

但我不知道怎么玩这个。

请帮助。

3 个答案:

答案 0 :(得分:20)

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");
        }
    }

这应该是你想要的:)我希望它有效

答案 1 :(得分:1)

Here是Commonsware的示例项目,您可以下载并检查其工作情况。

您可以使用

从您获得的字符串中获取Uri
SharedPreferences getAlarms = PreferenceManager.
                                  getDefaultSharedPreferences(getBaseContext());
String alarms = getAlarms.getString("ringtone", "default ringtone");
Uri uri = Uri.parse("alarms");

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

答案 2 :(得分:0)

您可以从偏好设置中选择首选铃声 您可以使用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();