android - 如何确定 Android 设备上的最佳音频采样率?

标签 android soundpool

在我的 Nexus 5 上运行 Android 5.1 我遇到了音频延迟问题,原因是 this问题。问题是我的 44.1 KHz OGG 文件在播放时使用 SoundPool 重新采样(高达 48 KHz?)类,导致滞后。

现在,我认为不同的设备针对不同的采样率进行了优化。如何确保我的音频在所有设备上都表现良好?是否可以检测最佳采样率,然后从多个音频资源中选择最佳文件?

最佳答案

您需要 AudioManager 的 PROPERTY_OUTPUT_SAMPLE_RATE

public int getBestSampleRate()
{
    if (Build.VERSION.SDK_INT >= 17) {
        AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        String sampleRateString = am.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
        int sampleRate = sampleRateString == null ? 44100 : Integer.parseInt(sampleRateString);

        return sampleRate;
    } else {
        return 44100;
    }
}

关于android - 如何确定 Android 设备上的最佳音频采样率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590216/

相关文章:

android - FabricViewStateManager : setState called without a StateWrapper

android - 使用 CursorLoader 从 ContentProvider 加载数据时出错

Android soundpool 速率范围?

java - 我的 soundpool 项目无法正常播放?

android - 终结器抛出的未捕获异常 java.lang.IllegalStateException : Binder has been finalized

android - SQLCipher Android 的稳定性

java - 如何扩展android ActionBar?

Android:MediaPlayer 视频纵横比问题

Android - Soundpool 不会在后台播放许多应用程序的所有声音。

android - 如何在面向 Android 的多 API 级别中使用已弃用的方法?