2010-07-27 29 views
18

Tôi đang cố gắng hết sức để mô phỏng chức năng cơ bản của ứng dụng máy ảnh tích hợp. Vì vậy, đến nay tôi đã trở thành khó khăn trên 'tap để tập trung' tính năng.Mô phỏng nhấn ứng dụng của máy ảnh để lấy nét '

Tôi có UIView mà từ đó tôi đang thu thập sự kiện UITouch khi một ngón tay được nhấn vào UIView. Phương pháp sau đây được gọi nhưng tiêu điểm của máy ảnh & độ phơi sáng không thay đổi.

-(void)handleFocus:(UITouch*)touch 
{ 
    if([camera lockForConfiguration:nil]) 
    {  
      CGPoint location = [touch locationInView:cameraView]; 

      if([camera isFocusPointOfInterestSupported]) 
       camera.focusPointOfInterest = location; 

      if([camera isExposurePointOfInterestSupported]) 
       camera.exposurePointOfInterest = location; 


      [camera unlockForConfiguration]; 
      [cameraView animFocus:location]; 
    } 
} 

'máy ảnh' là AVCaptureDevice & không phải là không. Ai đó có thể nói cho tôi biết tôi đang đi sai ở đâu?

Đầu mối & tất cả mọi người đều được chào đón.

M.

+1

Cũng nhớ rằng cả hai exposurePointOfInterest và focusPointOfInterest là các điểm giữa (0,0) và (1,1). Bất kể định hướng của thiết bị, (0,0) là góc trên bên trái và (1,1) là corder tay bên phải phía dưới của thiết bị theo hướng ngang phải. Vì vậy, việc sử dụng 'camera.focusPointOfInterest = location' sẽ không cho bạn kết quả mong muốn. –

Trả lời

27

đoạn này có thể giúp bạn ... Có một CamDemo cung cấp bởi táo nổi xung quanh cho phép bạn tập trung, thay đổi tiếp xúc trong khi khai thác, thiết lập flash, trao đổi máy ảnh và nhiều hơn nữa, nó giả lập máy ảnh ứng dụng khá tốt, không chắc chắn nếu bạn sẽ có thể tìm thấy nó vì nó là một phần của wwdc, nhưng nếu u để lại một số địa chỉ email trong các ý kiến ​​tôi có thể gửi email cho bạn mã mẫu ...

- (void) focusAtPoint:(CGPoint)point 

{ 

    AVCaptureDevice *device = [[self videoInput] device]; 

    if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) { 

     NSError *error; 

     if ([device lockForConfiguration:&error]) { 

      [device setFocusPointOfInterest:point]; 

      [device setFocusMode:AVCaptureFocusModeAutoFocus]; 

      [device unlockForConfiguration]; 

     } else { 

      id delegate = [self delegate]; 

      if ([delegate respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) { 

       [delegate acquiringDeviceLockFailedWithError:error]; 

      } 

     }   

    } 

} 
+0

Tôi rất vui vì mã nguồn đó. Cập nhật thông tin cho tôi tại codehammer suremail . Cảm ơn tôi một lần nữa. –

+0

được, đã gửi. – Daniel

+3

@Martin Cowie - Trên thực tế, mã nguồn có sẵn như một phần của video WWDC 2010. Chỉ cần đăng nhập để tải video, truy cập iTunes và liên kết tải xuống mã mẫu sẽ xuất hiện ở phía trên bên phải: http://developer.apple.com/videos/wwdc/2010/ Bạn sẽ tìm kiếm AVCam và các ứng dụng mẫu của AVCamDemo, tôi tin. –

Các vấn đề liên quan