2010-10-02 62 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();