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