简体   繁体   English

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

[英]How to play ringtone selected from RingtonePreference

I am trying to play a ringtone which is selected from a RingtonePreference. 我正在尝试播放从RingtonePreference中选择的铃声。 How can I play it? 我怎么玩呢?

Here is my xml file code 这是我的xml文件代码

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

Here is what I am doing in java 这是我在java中所做的

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

When I use toast like this 当我像这样使用吐司

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

Then it shows this kind of path 然后它显示了这种路径

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

But I do not know how to play this one. 但我不知道怎么玩这个。

Help Please. 请帮忙。

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

This here should be what you want :) I hope it works 这应该是你想要的:)我希望它有效

Here is a sample project from Commonsware for the same you can download and check its working. 以下是Commonsware的示例项目,您可以下载并检查其工作情况。

You can get the Uri from the String that you are getting by using, 你可以从你得到的字符串中获取Uri,

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

Then you can play the uri using MediaPlayer . 然后你可以使用MediaPlayer播放uri。

You can take preferred ringtone from preferences and You can easily play the ringtone using RingtoneManager class 您可以从首选项中获取首选铃声,您可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM