2011-12-28 4 views
5

바코드를 스캔하거나 사진을 찍으려는 사용자가 선택할 수있는 앱에서 작업하고 있습니다. 사진을 찍는 데 평소와 같이 UIImagePickerController을 사용하고 있습니다. 스캔 바코드 용으로 ZbarSDK 1.2 ZBarReaderViewController을 사용하고 있습니다.ZBarSDK를 사용할 때 iPhone 카메라가 자동 초점을 잃습니다.

사진을 찍을 때 모든 것이 완벽하게 작동합니다. 바코드를 스캔 할 때 : 앱을 시작한 후 바코드를 스캔 한 후 사진을 찍으면 완벽합니다.

그러나 사진을 찍고 돌아가서 바코드를 스캔하려고하면 카메라가 자동 초점을 잃어 버리고 바코드를 스캔하는 것이 불가능합니다.

가 요약하면 :
시작 -> 검색 -
시작 작업>자동 초점 -> 사진 촬영 -> 가기 -> 검색 ->자동

를 작동하지 초점이 내가 초기화하는 방법입니다 바코드 스캐너 :

-(ZBarReaderViewController *) barcodeScanner 
{ 
    if (nil == _barcodeScanner) 
    { 
     _barcodeScanner = [ZBarReaderViewController new]; 
     _barcodeScanner.readerDelegate = self; 
     _barcodeScanner.cameraMode = ZBarReaderControllerCameraModeSampling; 
     _barcodeScanner.sourceType = UIImagePickerControllerSourceTypeCamera; 
    } 
    return _barcodeScanner; 
} 

아이디어가 있으십니까?

답변

4

로드하기 전에 ZBarReaderViewController는 UIImagePickerController를 릴리스하고 UIImagePickerController를로드하기 전에 ZBarReaderViewController를 릴리스해야한다.

내가 집중력을 잃어 버린 이유를 알아내는 데 며칠이 걸렸습니다. 이 대답에 걸림돌이되는 다른 사람들을 위해 ... AVCaptureSession을 한 번에 하나만 가질 수 있습니다. 그렇지 않으면 일이 망가져 집중력을 잃을 수 있습니다. ZBarReaderViewController는 AVCaptureSession을 사용하므로 새로운 AVCaptureSession을 초기화하기 전에 먼저 해제해야합니다.

+1

나는 그것을 시도 할 것이다 ... 나는 이미이 사실에 대한 대답을 얻지 못할 것이라는 사실과 함께 평화에 이르렀다 ... –

0

사진을 찍는 방법을 자세히 살펴 보겠습니다. 사진 촬영을 마쳤 으면 자원을 올바르게 닫았는지 확인하십시오. 나는 zBar 구현과 아무 관계가 없다고 생각한다. ...

+0

요점은 - "사진 찍기"구현이 없습니다 ... 저는 UIImagePickerController를 초기화하고 모달로 표시하며 사진을 찍을 때 콜백을받습니다. 나 혼자 멋진 일을하고 있는게 아니야. –

1

우리는 Zbar와 동일한 문제에 직면했습니다. 우리는 모델 뷰를 닫기 전에 2 초의 지연을 가짐으로써 해결했습니다.