【发布时间】:2011-07-25 05:58:15
【问题描述】:
我正在尝试运行 Android 2.2 模拟器附带的语音记录器。问题是我点击“录制”按钮的那一刻:
它中止并显示错误消息“应用程序语音记录器(进程 com.android.speechrecorder)已意外停止。请重试。”
问题是再试一次也没有用。
现在,我搜索了StackOverflow,并梳理了整个互联网,发现许多相同问题的报告,没有任何有效的解决方案。
我的结论是,出于某种奇怪的原因,Android 模拟器能够使用 Windows 音频设备进行输出,但不能用于输入。
这是为什么呢?
我知道其他虚拟化软件(例如 VMWare)在使用主机音频设备的输出和输入部分都没有问题。
另外,如果 Speech Recorder 从来没有为任何人的模拟器工作过,为什么要把它放在那里?
这肯定对某人有用。有没有办法让语音记录器也为我工作?
我使用的是 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 应用程序,所以我不知道是什么原因导致 SpeechRecorderActivity.java 第 192 行出现 NullPointerException。我相信这与之前的 logcat 消息有关:
无法获取音频输入以进行录制 来源 1
但问题又是为什么?
为什么无法“获取记录源 1 的音频输入”?
【问题讨论】:
-
Err... 有没有发现异常?您所放的只是强制关闭消息,通常在此之前会捕获很多异常。向我们展示您的 LogCat 输出中的异常(全部)。
-
本可以发誓你在这里发表了评论 - 它对我来说也崩溃了:
03-29 14:13:38.075: ERROR/AudioRecord(282): Recording parameters are not supported: sampleRate 11025, channelCount 1, format 1 03-29 14:13:38.075: ERROR/srec_jni(282): initCheck error -22 03-29 14:13:38.104: ERROR/AndroidRuntime(282): FATAL EXCEPTION: Thread-8 03-29 14:13:38.104: ERROR/AndroidRuntime(282): java.lang.NullPointerException 03-29 14:13:38.104: ERROR/AndroidRuntime(282): at com.android.speechrecorder.SpeechRecorderActivity$4.run(SpeechRecorderActivity.java:192)不知道你为什么在乎。 :3 没有源代码。 -
@Klaus 是的,我发布了一个问题,但在我自己找到答案后将其删除(见上文)。谢谢,再次+1。 :)
-
您对 Java 应用还有什么期望?
标签: android android-emulator audio-recording microphone