iOS 相機手動對焦


AVCaptureDevice的方法,之前查了網上和stackoverflow上,沒有,於是自己試着做了下,成功了,分享下。

//實例化
AVCaptureDevice  *captureDevice = [[AVCaptureDevice alloc] init];
//先進行判斷是否支持控制對焦
if (captureDevice.isFocusPointOfInterestSupported &&[captureDevice.isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
        
        NSError *error = nil;
//對cameraDevice進行操作前,需要先鎖定,防止其他線程訪問,
        [self.recorder.cameraDevice lockForConfiguration:&error];
        [self.recorder.cameraDevice setFocusMode:AVCaptureFocusModeAutoFocus];
        [self.recorder.cameraDevice setFocusPointOfInterest:CGPointMake(pointX,pointY)];
//操作完成后,記得進行unlock。
        [self.recorder.cameraDevice unlockForConfiguration];
    }

 由於我做的的視頻拍攝時手動對焦,

用了TapGestureRecognizer 的實例,添加到self.view上,

獲得點擊的坐標,然后用坐標對屏幕的尺寸進行數據處理,應為focusPointOfInterest是從左上到右下(0~1,0~1)范圍內

比如點擊的點tap.x  和tap.y

豎屏時候對焦點應是(tap.x/self.view.frame.size.width, tap.y/self.view.frame.size.height)

 

另外,這樣或許對用戶來說不夠只管,看過系統相機都知道,點擊對焦點時,有個方塊縮小

我的實現方法是,用了uiview的實例,邊框黃色,2像素寛,背景色clearColor,先添加到self.view上,大小為0,tap手勢的方法里,設置uiview大小為40,然后加個動畫設置uiview大小為20,這樣當你點擊屏幕某處的時候,有個黃色框縮小,同時,鏡頭進行對焦。

(如果有更好的方法,請指教下)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM