2010-10-02 85 views
2

我在Android上做了一個帶有自動對焦的小型相機應用程序。在我的nexus上,一切都正常,但是當我從Camera對象調用takePicture()時,它在htc期望中崩潰。這裏是堆棧跟蹤:Android在HTC Desire上拍照崩潰

10-02 11:53:58.476: DEBUG/QualcommCameraHardware(19448): takePicture(479) 
10-02 11:53:58.476: DEBUG/QualcommCameraHardware(19448): val_ril_status = 0,val_wimax_status = 0,val_hotspot_status = 0,val_low_temp_limit = 5.000000,val_batt_temp = 34.000000,val_low_temp_limit = 15,val_batt_cap = 63 
10-02 11:53:58.476: DEBUG/QualcommCameraHardware(19448): FLASHLIGHT is ENABLED 
10-02 11:53:58.476: ERROR/mm-camera-config-proc(19448): liboemcamera: config_proc_ctrl_command: SEVERE ERROR: attempt to override pending command 13 
10-02 11:53:58.586: INFO/DEBUG(19299): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
10-02 11:53:58.586: INFO/DEBUG(19299): Build fingerprint: 'htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/226611:user/release-keys' 
10-02 11:53:58.586: INFO/DEBUG(19299): pid: 19448, tid: 19628 >>> /system/bin/mediaserver <<< 
10-02 11:53:58.586: INFO/DEBUG(19299): signal 11 (SIGSEGV), fault addr c0debadd 
10-02 11:53:58.586: INFO/DEBUG(19299): r0 c0debadd r1 deadbeef r2 17a3a85e r3 17a3a85e 
... and so on, and so on.... 

我有連續自動對焦,但我在自動對焦的回調函數調用takePicture(),所以自動對焦應當我這個錯誤會發生以下情況後調用takePicture() 完成:

10-02 11:53:58.916: WARN/Camera(19604): Camera server died! 
10-02 11:53:58.916: WARN/Camera(19604): ICamera died 
10-02 11:53:58.916: WARN/AudioSystem(92): AudioFlinger server died! 
10-02 11:53:58.916: WARN/AudioSystem(92): AudioPolicyService server died! 
10-02 11:53:58.916: ERROR/Camera(19604): Error 100 

然後我得到了很多MPlayer錯誤。

所以我猜測,有某種競爭條件或某事。有人可以解釋什麼未決命令13是錯誤消息正在談論?

還有另一個關於這個問題的stackoverflow問題:https://stackoverflow.com/questions/2277149/nexus-1-taking-photo-severe-error-in-config-proc-ctrl-command-liboemcamera但在那裏沒有答案。

有人可以幫我嗎?

非常感謝, 安東

+0

附加信息:我必須在Android 1.6上運行此操作(客戶端如此說明) – Anton 2010-10-02 14:28:50

+0

在使用Nov'10 Zxing庫的變體時,可以在Android 2.3.3上看到此操作 – Anm 2011-03-17 21:26:33

回答

0

我還不能肯定,但我相信命令13是拍照,而54是像「焦點」。

我能夠通過調用 camera.cancelAutoFocus()解決我的問題;

之前立即

camera.takePicture();