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

时间:2015-04-12 13:56:42

标签: android soundpool

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

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

1 个答案:

答案 0 :(得分:1)

您需要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;
    }
}