Android AudioRecord - сбой родной инициализации - PullRequest
2 голосов
/ 24 ноября 2011

Я пытаюсь использовать Pure Data в своем приложении для Android, чтобы сделать какое-то обнаружение ударов.Раньше у меня были базовые функции, но после рефакторинга моего кода и расширения приложения libpd не смог правильно создать требуемый экземпляр AudioRecord.Вот ошибки, которые я получаю:

[ android.media.AudioTrack ] getMinBufferSize(): Invalid channel configuration.
[ android.media.AudioTrack ] getMinBufferSize(): Invalid channel configuration.
set(): sampleRate 44100, channels 12, frameCount 8832
Could not get audio input for record source 1
Error creating AudioRecord instance: initialization check failed.
[ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.
java.io.IOException: unable to initialize AudioRecord instance for sr: 44100, ch: 2, bufSize: 4416
set(): sampleRate 44100, channels 16, frameCount 8832
Could not get audio input for record source 1
Error creating AudioRecord instance: initialization check failed.
[ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.
java.io.IOException: unable to initialize AudioRecord instance for sr: 44100, ch: 1, bufSize: 4416

Код ошибки -20 означает, что родная инициализация не удалась, поэтому я не знаю, что делать сейчас.У меня есть разрешение RECORD_AUDIO в моем манифесте.У вас есть предложения?

1 Ответ

1 голос
/ 14 июня 2012

Я видел эту ошибку раньше, когда много занимался разработкой и, вероятно, забыл выпустить AudioRecord. Поэтому обязательно попробуйте перезагрузить телефон и не запускать другие приложения для записи.

Так же, как вы иногда можете аварийно завершить работу приложения и по-прежнему воспроизводить музыку после его смерти, я полагаю, что это одна из тех ситуаций, когда аппаратное обеспечение может оставаться в плохом состоянии даже после завершения процесса.

...