在我的Nexus 5
上运行Android 5.1
时,由于this问题,我遇到了音频延迟问题。问题是我的44.1 KHz OGG
文件被重新采样(最多48个KHz?)在使用SoundPool类回放时,会导致延迟。
现在,我假设不同的设备针对不同的采样率进行了优化。如何确保我的音频在所有设备上都能正常工作?是否可以检测最佳采样率,然后从多个音频资源中选择最佳文件?
发布于 2015-10-12 03:58:47
你需要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;
}
}
https://stackoverflow.com/questions/29590216
复制相似问题