android - 如何从 Android 内置铃声列表中播放特定的音频文件?

标签 android ringtone

我需要知道是否可以从 android 内置的铃声文件中播放特定的音频文件。例如,假设 Tone_23 在 android 铃声列表中,现在我需要在单击按钮时播放这个特定的音调。我在谷歌搜索我得到了如何调用/显示 RingtonePicker Activity 的指导(将显示整个铃声列表)。如果这可能意味着,请分享您的想法。提前致谢。

最佳答案

你可以尝试这样的事情:

/**
 * Play ring tone.
 *
 * @param ringToneTitle the ring tone title
 */
void playRingTone(String ringToneTitle) {
    RingtoneManager ringtoneManager = new RingtoneManager(
            getApplicationContext());
    ringtoneManager.setType(RingtoneManager.TYPE_RINGTONE);

    int length = ringtoneManager.getCursor().getCount();

    for (int i = 0; i < length; i++) {
        Ringtone mRingtone = ringtoneManager.getRingtone(i);
        if (mRingtone != null) {
            Log.d("ringtoneTitle ", mRingtone.getTitle(getApplicationContext()));
            if(ringToneTitle.equalsIgnoreCase(mRingtone
                        .getTitle(getApplicationContext())) {
                mRingtone.play();
            }
        }
    }
}

希望这对您有所帮助。

补充:也看看这个类RingtoneManager

RingtoneManager 提供对铃声、通知和其他类型声音的访问。它管理查询不同的媒体提供者并将结果组合到一个游标中。它还为每个铃声提供铃声。我们通常将这些声音称为铃声,但 TYPE_RINGTONE 指的是适合电话铃声的声音类型。

关于android - 如何从 Android 内置铃声列表中播放特定的音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588444/

相关文章:

java - GregorianCalendar 显示奇数​​值?

java - 来自工作线程时,Android Webview loadUrl 不起作用

java - 将自定义铃声添加到 Ringtonemanager 以进行 Android 应用程序开发时出现问题吗?

android - 如何以编程方式更改android中的铃声?

android - 如何在PreferenceFragmentCompat中实现RingtonePreference?

java - 如何在 android studio 中从 SQLite 检索图像

来自处理程序中运行的代码的 Android ANR?

安卓 : Setting a sound from SD card as Ringtone

android - Qt5 (c++) android监听系统按钮