2011-03-29 118 views
11

我正在嘗試運行Android 2.2仿真器附帶的語音記錄器。問題是,現在我請點擊「錄製」按鈕。爲什麼在Android模擬器上不能使用語音記錄器?

enter image description here

它中止並顯示錯誤消息「應用程序語音記錄器(過程com.android.speechrecorder)已意外停止,請重試。 「

enter image description here

的問題是,試圖再次沒有幫助。

現在,我搜索了StackOverflow,並且梳理了整個互聯網,並且發現了許多關於同樣問題的報告,但沒有任何工作解決方案。

我的結論是,出於某種奇怪的原因,Android模擬器能夠使用Windows音頻設備輸出,但不能輸入。

這是爲什麼?

我知道其他虛擬化軟件(例如VMWare)使用主機音頻設備的輸出和輸入部分都沒有問題。

此外,如果語音錄音機從來沒有爲任何人的模擬器工作,爲什麼把它放在那裏?

當然這已經爲某人工作。有沒有辦法讓Speech Recorder也適合我?

我使用的是Windows XP 32位,我的AVD是用SD卡(啓動時安裝的)定義的。

更新:我按照@Klaus的建議嘗試查看是否引發任何異常。我通過在命令行鍵入ddms.bat來啓動獨立版本的DDMS(在底部顯示logcat顯示)。果然,點擊「Record」按鈕後我會收到以下例外情況:

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 

如何從此處繼續?我沒有寫語音記錄器的應用程序,所以我不知道是什麼原因導致在SpeechRecorderActivity.java線的NullPointerException 192我相信這事做與較早的logcat消息:

無法獲取音頻輸入記錄 來源1

但問題的另一個原因是爲什麼?

爲什麼它不能「獲取錄音源1的音頻輸入」?

+1

錯誤......是否有任何異常被捕獲?你所要做的就是強制關閉消息,通常在此之前會捕獲很多例外情況。向我們展示LogCat輸出中的例外(所有這些例外)。 – Klaus 2011-03-29 12:59:15

+1

可能發誓你在這裏有一個評論 - 它也爲我崩潰:'03-29 14:13:38。075:ERROR/AudioRecord(282):不支持記錄參數:sampleRate 11025,channelCount 1,format 1 03-29 14:13:38.075:ERROR/srec_jni(282):initCheck錯誤-22 03-29 14: 13:38.104:錯誤/ AndroidRuntime(282):致命異常:線程-8 03-29 14:13:38.104:錯誤/ AndroidRuntime(282):java.lang.NullPointerException 03-29 14:13:38.104:錯誤/ AndroidRuntime(282):at com.android.speechrecorder.SpeechRecorderActivity $ 4.run(SpeechRecorderActivity.java:192)'不知道你爲什麼在乎。 :3無源代碼。 – Klaus 2011-03-29 14:15:39

+0

@Klaus是的,我發佈了一個問題,但是在我自己找到答案後(見上),我刪除了它。再次感謝和+1。 :) – srf 2011-03-29 14:23:46

回答

3

您遇到此問題的原因是模擬器沒有audioInput掛鉤。你最好的選擇是插入一個真正的設備並在那裏進行測試。

+2

http://developer.android.com/guide/topics/media/index.html - 具體來說,第3段說'注意,模擬器沒有硬件來捕捉音頻或視頻,但實際的移動設備可能會提供這些功能,可以通過MediaRecorder類訪問。' – 2011-03-30 14:43:22

+1

如果您將麥克風插入系統,模擬器應該使用它。看到這個討論:http://groups.google.com/group/android-developers/browse_thread/thread/b4be83e1ce5ef8ac – Brian 2011-03-30 15:02:34

+0

@Brian我已經有一個麥克風插入我的系統。它不使用它。 @克里斯感謝和+2。 – srf 2011-04-01 20:58:55

相關問題