У меня проблема: Я использую SpeechRecognizer для определения нескольких слов. Я использую методAudioRecord: start() status -38
public void onResults
уничтожить SpeechRecognizer.
Сразу после разрушения я инициализирую AudioRecord и начинаю запись с микрофона. Это приводит к следующей ошибке в моем LogCat:
12-09 00:44:01.976: E/AudioRecord(21185): start() status -38
Исключение не брошено в моем коде. AudioRecord просто не запускается должным образом. Я предполагаю, что SpeechRecognizer не освобождает микрофон достаточно быстро, , потому что, если я добавлю Thread.sleep (200) перед инициализацией AudioRecord, у I эта проблема не возникает.
Это решение очень плохо по понятным причинам. Таким образом, у меня есть следующий вопрос:
Как проверить правильность инициализации AudioRecord? (Я не получаю исключения в своем коде.)
_audioRecord.getState() == AudioRecord.STATE_UNINITIALIZED
также является ложным.
Или как я могу проверить, правильно ли SpeechRecognizer выпустил микрофон?
Большое спасибо!
Как насчет проверки того, '' getRecordingState() 'равно 'RECORDSTATE_RECORDING'? – Michael
Спасибо, полностью упустил это. – user3081081