Не может получить доступ к AudioRecorder.
-
30-09-2019 - |
Вопрос
Я пытаюсь принять небольшие записи, чтобы найти уровень звукового давления от сервиса, но Android не даст мне доступа к оборудованию. Я получаю следующие ошибки в LogCat:
Ошибка поступает из следующего кода:
AudioRecord recordInstance = null;
// We're important...
android.os.Process
.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
short bufferSize = 4096;// 2048;
recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, this //line 167
.getFrequency(), this.getChannelConfiguration(), this
.getAudioEncoding(), bufferSize); //object not created
tempBuffer = new short[bufferSize];
recordInstance.startRecording();
Что произойдет, так это то, что RegifinStance никогда не создается должным образом и поэтому, когда он доходит до конца и вызывает запись recorInSstance.Startrecording (), RecordInstance по-прежнему NULL. Android отклоняет мои программы запрос в определении. Кто-нибудь знает, что указывают на эти errno? Я не мог найти список онлайн.
Спасибо
Решение
Проверьте три вещи:
Ваши разрешения (вам нужно дать разрешение на Record_audio)
Вы запускаете это один раз и не называли recordInstance.release ()? Если это так, возможно, вы, возможно, связали аудиоресурсы, и он, вероятно, не будет работать, пока не перезапустите телефон. Я нашел это в моем опыте в любом случае.
3. Размер буфера. Существует статический метод AudioRecord.getMinBuffersize ()