Android Съемка изображения вылетает на HTC Desire - PullRequest
2 голосов
/ 02 октября 2010

Я сделал небольшое приложение для камеры с автофокусом в Android.На моем nexus one все работает нормально, но по желанию htc он вылетает, когда я вызываю 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, но ответа там нет.

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

очень благодарен, Антон

1 Ответ

0 голосов
/ 19 апреля 2012

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

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

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

camera.takePicture ();

...