Почему невозможно использовать речевой рекордер на эмуляторе Android?

Я пытаюсь запустить речевой рекордер, который поставляется с эмулятором Android 2.2. Проблема в том, что в тот момент, когда я нажимаю кнопку "Запись":

enter image description here

Он прерывается с сообщением об ошибке "Приложение Speech Recorder (процесс com.android.speechrecorder) неожиданно остановилось. Повторите попытку".

enter image description here

Проблема в том, что попытка снова не помогает.

Теперь я искал StackOverflow, и я расчесил весь Интернет, и я нашел много сообщений об одной и той же проблеме без какого-либо рабочего решения.

Мое заключение заключается в том, что по какой-то странной причине эмулятор Android способен использовать аудиоустройство Windows для вывода, но не для ввода.

Почему это?

Я знаю, что другое программное обеспечение для виртуализации (например, VMWare) не имеет проблем с использованием как выходных, так и входных секций хост-аудио устройства.

Кроме того, если речевой рекордер никогда не работал для эмулятора для кого-либо, зачем его размещать?

Конечно, это сработало для кого-то. Есть ли способ заставить речевой рекордер работать и для меня?

Я использую 32-разрядную версию Windows XP, и мой AVD определен с SD-картой (устанавливается при запуске).

Обновление. Я последовал предложению @Klaus, чтобы попытаться выяснить, не выбрасываются ли какие-либо исключения. Я сделал это, просто набрав ddms.bat в командной строке, чтобы запустить автономную версию DDMS (с нижним дисплеем logcat). Разумеется, после нажатия кнопки "Запись" я получаю следующее исключение:

03-29 14:16:58.195: ERROR/AudioRecord(303): Could not get audio input for record source 1
03-29 14:16:58.195: ERROR/srec_jni(303): initCheck error -22 
03-29 14:16:58.205: DEBUG/SpeechRecorderActivity(303): run audio capture thread
03-29 14:16:58.205: WARN/dalvikvm(303): threadid=8: thread exiting with uncaught exception (group=0x4001d800)
03-29 14:16:58.215: ERROR/AndroidRuntime(303): FATAL EXCEPTION: Thread-9
03-29 14:16:58.215: ERROR/AndroidRuntime(303): java.lang.NullPointerException
03-29 14:16:58.215: ERROR/AndroidRuntime(303):     at com.android.speechrecorder.SpeechRecorderActivity$4.run(SpeechRecorderActivity.java:192)
03-29 14:16:58.285: WARN/ActivityManager(59):   Force finishing activity com.android.speechrecorder/.SpeechRecorderActivity
03-29 14:16:58.904: DEBUG/dalvikvm(59): GC_FOR_MALLOC freed 13324 objects / 656184 bytes in 197ms
03-29 14:16:59.915: INFO/ARMAssembler(59): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x20db68:0x20dc24] in 1247352 ns
03-29 14:17:05.251: DEBUG/SpeechRecorderActivity(303): stopRecording

Как мне исходить? Я не писал приложение Speech Recorder, поэтому не знаю, что вызывает исключение NullPointerException в строке SpeechRecorderActivity.java 192. Я считаю, что это связано с более ранним сообщением logcat:

Не удалось получить аудиовход для записи источник 1

Но опять-таки вопрос: почему?

Почему он не смог "получить аудиовход для источника записи 1"?

Ответ 1

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