Проверка поддерживаемой частотой выборки 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) {
Другие вопросы по тегам