9

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

でもこれの遊び方はわかりません。

助けてください。

4

3 に答える 3

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

これはあなたが望むものでなければなりません:)私はそれがうまくいくことを願っています

于 2012-05-05T09:58:21.403 に答える
1

これは、 Commonswareのサンプルプロジェクトで、ダウンロードして動作を確認できます。

を使用して取得している文字列からURIを取得できます。

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

次に、を使用してURIを再生できますMediaPlayer

于 2012-05-05T09:31:06.180 に答える
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();
于 2015-04-21T02:47:59.113 に答える