2015-04-12 3 views
2

Запуск Android 5.1 на моем Nexus 5 Я испытываю лагги звука из-за проблемы this. Проблема в том, что мои 44,1 КГц файлы OGG воспроизводятся (до 48 кГц?) При воспроизведении с использованием класса SoundPool, вызывая задержку.Как определить максимальную частоту дискретизации на Android-устройстве?

Теперь, я полагаю, различные устройства оптимизированы для различной частоты дискретизации. Как я могу убедиться, что мой звук хорошо работает на всех устройствах? Можно ли определить оптимальную частоту дискретизации, а затем выбрать лучший файл из нескольких аудиоресурсов?

ответ

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

Если вы сделали несколько тестов, пожалуйста, комментарий, если используется нативный частота дискретизации действительно помогает с аудио лагов. –

Смежные вопросы