Проверка поддерживаемой частотой выборки PCM устройства
Я хотел бы проверить, поддерживает ли устройство определенную частоту дискретизации.
Я пробовал следующее (который должен работать в соответствии с http://developer.android.com/reference/android/media/AudioRecord.html, int, int)), но не работает (он никогда не получает AudioRecord.ERROR_BAD_VALUE):
int bufferSize8000 = AudioRecord.getMinBufferSize(90000000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
if(bufferSize8000 != (AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )) {
Log.v("samplerate", String.valueOf(bufferSize8000));
} else {
Log.v("samplerate", "NOTsupported");
}
1 ответ
Решение
(AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )
Значит -2 | -1, что равно -1, что равно AudioRecord.ERROR
Вот почему вы никогда не получите ожидаемого результата.
Так это
if(bufferSize8000 != (AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )) {
Должно быть
if (bufferSize8000 != Audiorecord.ERROR_BAD_VALUE && bufferSize8000 != AudioRecord.ERROR) {