zoukankan      html  css  js  c++  java
  • 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,这样当你点击屏幕某处的时候,有个黄色框缩小,同时,镜头进行对焦。

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

  • 相关阅读:
    IIS代理
    NODEJS
    js图表插件
    注册nodejs程序为windows服务
    中断子系统7_中断出口处理
    Leetcode: Sort List
    jquery 鼠标经过放大图片
    在Tomcat上运行ADF Essentials应用
    简谈HTML5与APP技术应用
    Boost的Serialization和SmartPoint搭配使用
  • 原文地址:https://www.cnblogs.com/sparks/p/3979194.html
Copyright © 2011-2022 走看看