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

问题描述:

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

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

你需要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; 
    } 
} 
+0

如果你做了一些测试,请评论,如果使用本地采样率确实与音频滞后帮助。 –