Android Фотосъемка вылетает на HTC Desire

Я сделал небольшое приложение для камеры с автофокусом на Android. На моем Nexus One все работает нормально, но на HTC Desire он падает, когда я вызываю takePicture() из объекта Camera. Вот трассировка стека:

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 в сообщении об ошибке?

по этому поводу есть еще один вопрос о стеке: https://stackoverflow.com/questions/2277149/nexus-1-taking-photo-severe-error-in-config-proc-ctrl-command-liboemcamera, но там нет ответа.

Кто-нибудь может мне помочь?

премного обязан, Антон


person Anton    schedule 02.10.2010    source источник
comment
дополнительная информация: я должен запустить это на Android 1.6 (так говорит клиент)   -  person Anton    schedule 02.10.2010
comment
Видел это на Nexus One с Android 2.3.3 при использовании варианта библиотеки Zxing от ноября 2010 г.   -  person Anm    schedule 18.03.2011


Ответы (1)


Я не уверен, но я считаю, что команда 13 — это сделать снимок, а 54 — что-то вроде «фокуса».

Я смог решить свою проблему, вызвав camera.cancelAutoFocus();

непосредственно перед

камера.takePicture();

person Matt    schedule 19.04.2012