标签: avcapturedevice

iOS 5 - AVCaptureDevice设置焦点和对焦模式冻结实时相机图片

我正在使用以下方法设置自iOS 4以来的焦点:

- (void) focusAtPoint:(CGPoint)point
{
    AVCaptureDevice *device = [[self captureInput] device];

    NSError *error;

     if ([device isFocusModeSupported:AVCaptureFocusModeAutoFocus] &&
         [device isFocusPointOfInterestSupported])
     {
         if ([device lockForConfiguration:&error]) {
             [device setFocusPointOfInterest:point];
             [device setFocusMode:AVCaptureFocusModeAutoFocus];
             [device unlockForConfiguration];
         } else {
             NSLog(@"Error: %@", error);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

在iOS 4设备上,这没有任何问题.但是在iOS 5上,实时摄像头会冻结并在几秒钟后完全变黑.没有异常或错误抛出.

如果我注释掉setFocusPointOfInterest或setFocusMode,则不会发生错误.因此,它们的组合都会导致这种行为.

ios avcapture avcapturedevice ios5

4
推荐指数
1
解决办法
1万
查看次数

iPhone相机聚焦

我使用下面的代码来聚焦iphone相机.但它没有用.我从Apple的AVCam示例代码中获取此代码.我做错了吗?是否有任何方法可以检测到iPhone是否真正关注?

-(void) focusAtPoint:(CGPoint)point   
{
    AVCaptureDevice *device =  [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];;

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

            NSError *error;

            if ([device lockForConfiguration:&error]) {             
                [device setFocusPointOfInterest:point];             
                [device setFocusMode:AVCaptureFocusModeAutoFocus];              
                [device unlockForConfiguration];                
            } else {                
                NSLog(@"Error in Focus Mode");
            }        

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c avcapturesession avcapturedevice avcam

3
推荐指数
1
解决办法
3816
查看次数

AVCaptureVideoOrientation横向模式导致静止图像颠倒

我使用AVCaptureSession拍照并将照片存储到相册.当我点击按钮时,它会拍摄快照并存储到相册.但是当我使用横向模式时,然后单击它存储横向模式的按钮会导致倒置静止图像.

在此输入图像描述

码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    [self setCaptureSession:[[AVCaptureSession alloc] init]];


    [self  addVideoInputFrontCamera:NO]; // set to YES for Front Camera, No for Back camera

    [self  addStillImageOutput];

    [self setPreviewLayer:[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]] ];

      [[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill];

      CGRect layerRect = [[[self view] layer] bounds];


    [[self previewLayer]setBounds:layerRect];
    [[self  previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))];
    [[[self view] layer] addSublayer:[self  previewLayer]];

     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveImageToPhotoAlbum) name:kImageCapturedSuccessfully object:nil];


    [[self captureSession] startRunning];

camera=[UIButton buttonWithType:UIButtonTypeCustom];
[camera setImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
[camera setFrame:CGRectMake(150, 10, 40, …
Run Code Online (Sandbox Code Playgroud)

iphone image-capture avcapturesession avcapturedevice ios6

3
推荐指数
1
解决办法
5734
查看次数

无法在ios 9中访问AVCaptureDevice的摄像头.

我一直致力于应用程序,允许使用AVCaptureDevice使用设备相机.它之前的ios版本<9非常适用,但现在ios 9从应用程序访问相机时,它只显示黑屏.我甚至无法从应用程序访问用户照片.

主要部分是我的应用程序我在设置中找不到相机选项隐私设置.即使我没有获得苹果默认权限访问弹出选项.

你能帮帮我吗?

iphone avcapturedevice ios9 xcode7

3
推荐指数
1
解决办法
2095
查看次数

iOS Swift - AVCaptureSession - 捕获尊重帧速率的帧

我正在尝试构建一个应用程序,它将从相机捕获帧并使用OpenCV处理它们,然后将这些文件保存到设备,但是以特定的帧速率.

我现在坚持的是这个事实AVCaptureVideoDataOutputSampleBufferDelegate似乎并不尊重AVCaptureDevice.activeVideoMinFrameDurationAVCaptureDevice.activeVideoMaxFrameDuration设置.

captureOutput 如上面的设置所示,运行速度远远超过每秒2帧.

你是否碰巧知道无论是否有代表,人们都能做到这一点?

视图控制器:

override func viewDidLoad() {
    super.viewDidLoad()

}

override func viewDidAppear(animated: Bool) {
    setupCaptureSession()
}

func setupCaptureSession() {

    let session : AVCaptureSession = AVCaptureSession()
    session.sessionPreset = AVCaptureSessionPreset1280x720

    let videoDevices : [AVCaptureDevice] = AVCaptureDevice.devices() as! [AVCaptureDevice]

    for device in videoDevices {
        if device.position == AVCaptureDevicePosition.Back {
            let captureDevice : AVCaptureDevice = device

            do {
                try captureDevice.lockForConfiguration()
                captureDevice.activeVideoMinFrameDuration = CMTimeMake(1, 2)
                captureDevice.activeVideoMaxFrameDuration = CMTimeMake(1, 2)
                captureDevice.unlockForConfiguration()

                let input : AVCaptureDeviceInput = try …
Run Code Online (Sandbox Code Playgroud)

ios avcapturesession avcapturedevice swift

3
推荐指数
1
解决办法
3696
查看次数

点按以保持连续自动对焦

我正在实施水龙头以集中精力,并为如何使用不同而感到困惑AVCaptureFocusModes。这样做:

[device setFocusPointOfInterest:focusPoint];
[device setFocusMode:AVCaptureFocusModeAutoFocus];
Run Code Online (Sandbox Code Playgroud)

可以成功对焦,但是由于锁定焦距,移动相机将永远失去对焦。相反,如果我这样做:

[device setFocusPointOfInterest:focusPoint];
[device setFocusMode:AVCaptureFocusModeContinousAutoFocus];
Run Code Online (Sandbox Code Playgroud)

自动对焦引擎似乎消除了我的兴趣,只专注于看起来最好的东西。相机应用程序成功聚焦在您的兴趣点上,同时在移动相机时也保持连续自动对焦,这是怎么做的?

到目前为止,这是我的完整代码:

- (void)setFocusPointOfInterest:(CGPoint)point
{
    Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
    if (captureDeviceClass != nil) {
        AVCaptureDevice *device = [captureDeviceClass defaultDeviceWithMediaType:AVMediaTypeVideo];
        if([device isFocusPointOfInterestSupported] &&
           [device isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
            CGRect screenRect = [[UIScreen mainScreen] bounds];
            double screenWidth = screenRect.size.width;
            double screenHeight = screenRect.size.height;
            double focus_x = point.x/screenWidth;
            double focus_y = point.y/screenHeight;
            CGPoint focusPoint = CGPointMake(focus_x,focus_y);
            if([device lockForConfiguration:nil]) {
                [device setFocusPointOfInterest:focusPoint];
                [device setFocusMode:AVCaptureFocusModeAutoFocus];
                [device setExposurePointOfInterest:focusPoint];
                if ([device isExposureModeSupported:AVCaptureExposureModeAutoExpose]){
                    [device setExposureMode:AVCaptureExposureModeAutoExpose];
                }
                [device unlockForConfiguration]; …
Run Code Online (Sandbox Code Playgroud)

ios avcapturesession avcapturedevice

3
推荐指数
1
解决办法
1245
查看次数

AVCaptureDeviceType.builtInDualCamera的作用是什么

我正在玩swift和iPhone 7 Plus.我正在使用builtInWideAngleCamera和builtInTelephotoCamera.即使我无法同时获得2张图像,这也很棒.

我在Apple文档中看到AVCaptureDeviceType包含一个builtInDualCamera条目.这个设备在avfoundation中的目的是什么,因为我们不能用apple API做任何事情(缩放,深度效果)?

换句话说,在使用AVCaptureDeviceType,avcapturesession和stuff时,我看不出builtInDualCamera和builtInWideAngleCamera之间的区别

谢谢

avcapturesession avcapturedevice swift

3
推荐指数
1
解决办法
1544
查看次数

AVMediaTypeVideo 不适用于手电筒应用程序

我的代码中的行

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
Run Code Online (Sandbox Code Playgroud)

对于 AVMediaTypeVideo xcode 告诉我...使用未声明的标识符“AVMediaTypeVideo”;您的意思是“kCMMediaType_Video”吗?

附注,我的标题中确实有 #import AVFoundation/AVCaptureDevice.h

我正在尝试在应用程序中制作“手电筒”效果,根据 Xcode 的说法,这是唯一有问题的代码行......

iphone objective-c avcapturedevice

2
推荐指数
1
解决办法
2279
查看次数

如何在 macOS 上将 iPhone 设为 AVCaptureDevice?

我已经实现了下面链接的帖子中的代码。但是,由于 AVCaptureDevice.devices() 现已弃用,因此它不会更新。

除非打开 Quicktime,否则 AVCaptureDevice.devices() 不会列出 iOS 设备

有人有这个的最新实施吗?

谢谢你!

iphone macos core-media avcapturedevice swift

2
推荐指数
1
解决办法
701
查看次数

了解AVCapture设备exposureDuration、exposureTargetOffset、exposureTargetBias

来自 Android 操作系统,我试图了解 AVCaptureDevice API 并找到 IOS 和 Android 的不同参数之间的匹配。我正在使用自动连续曝光模式。我在使用上面的曝光参数时遇到了问题:据我所知:

  1. ExposureDuration - 这是实际发生曝光的时间长度。通过使用此属性的值和标度,可以将其标准化为 [秒] 单位。
  2. ExposureTargetOffsetexposureTargetBias - 我不确定这些值代表什么 - 它们是否是为了获得所需的曝光级别而进行的修复?这个曝光目标值是多少?

iphone ios avcapturedevice ios-camera

2
推荐指数
1
解决办法
1124
查看次数