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

标签 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的时候

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

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

关于java - 如何播放从 RingtonePreference 中选择的铃声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460499/

相关文章:

java - 从组合框中选择一个项目(名称)并自动插入正确的外键

java - 使用 .split 转置 arrayList (",")

android - 如何在 Android 的 UI 屏幕上显示耗时

android - 是否有任何在 react-native 中实现 JavaScriptModule 的指南?

android - 使用 robotium 发送回车键进行 Android 测试?

java - 迭代器可以从列表中删除不等于特定值的项目吗?

java - for循环是OutOfMemoryError的原因吗? ( eclipse )

java - 不可用的共享库 - INSTALL_FAILED_MISSING_SHARED_LIBRARY

android - 如何使用 Play Store 和硬件加速创建虚拟设备?

java - 无法设置 guest 内存 'android_arm' : Invalid argument