Инициализация Android AudioRecord не выполняется каждый раз

Моя проблема проста для объяснения - я пытаюсь создать объект AudioRecord, но он не может инициализироваться (т.е. после конструктора getState возвращает 0, что указывает на сбой). Я запускаю это из Eclipse на MotoDroid 1 под управлением OS 2.2.1. Мой AndroidManifest.xml, AFAIK, использую правильное разрешение, RECORD_AUDIO (я не знаю, как это подтвердить):


    
    
        
            
            
        
    

Я делаю следующее, чтобы создать AudioRecord:

bufferSize = AudioRecord.getMinBufferSize(8000, CHANNEL_IN_MONO, ENCODING_PCM_8BIT);
audioRecorder = new AudioRecord(AudioSource.MIC, 8000, CHANNEL_IN_MONO, ENCODING_PCM_8BIT, 50*bufferSize);
if (audioRecorder.getState() != AudioRecord.STATE_INITIALIZED)
  throw new Exception("AudioRecord init failed");

audioRecorder. getState () возвращает 0 (т.е. STATE_UNINITIALIZED)

Я не нашел полных примеров использования этого API, и я очень новичок в Android, так что решение вполне может быть чем-то простым. Что я могу сделать, чтобы узнать, почему это не удается?

Некоторые люди задавали похожие вопросы, но у них, должно быть, были другие проблемы, чем у меня, потому что исправления, которые они одобрили, мне не помогли. В первую очередь это . Но одобренное решение вызывает недоумение и все равно у меня не сработало. Я также пробовал различные скорости передачи данных (8000, 16000, 11025, 44100), как моно, так и стерео, а также 8 и 16 бит. Никакая комбинация не возвращается как успешно инициализированная.

12
задан Community 23 May 2017 в 02:34
поделиться