2

我在 Android 中做了一个带有自动对焦功能的小型相机应用程序。在我的 nexus 上,一切正常,但在 htc 上,当我从 Camera 对象调用 takePicture() 时,它会崩溃。这是堆栈跟踪:

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但那里没有答案.

有人能帮我吗?

非常感谢,安东

4

1 回答 1

0

我不是很肯定,但我相信命令 13 是拍照,而命令 54 类似于“焦点”。

我可以通过调用 camera.cancelAutoFocus(); 来解决我的问题。

就在之前

camera.takePicture();

于 2012-04-19T16:19:54.300 回答