【问题标题】:How to open front/back camera at the same time in iOS developing?iOS开发中如何同时打开前置/后置摄像头?
【发布时间】:2014-07-28 02:32:20
【问题描述】:

我想在iOS开发中同时使用前置和后置摄像头:当我使用后置摄像头拍摄一张照片时,可以打开前置摄像头拍摄另一张照片。顺便说一下,这两个照片在一张图片中:垂直排列。

以前有人做过吗?

【问题讨论】:

  • 我认为您的意思是顺序打开前置/后置摄像头,因为您的描述并不意味着照片是同时拍摄的,并且据我所知,当前的 API 是不可能的。然而,使用UIImagePickerController 拍摄前后摄像头背靠背在当前的 API 下是完全可能的。
  • 是的,我的意思是用后置摄像头先拍一张,然后用前置摄像头再拍一张。最后一张照片上的照片。

标签: ios objective-c camera


【解决方案1】:

使用UIImagePickerController 拍照,使用cameraDevice property 确定正在使用的相机。

关于合并图片,我通过搜索找到了一个示例(以后推荐)merges multiple images into one image

【讨论】:

    【解决方案2】:

    超级简单,这是一种简单的方法。只需将我的 imagNamed 替换为您的图像,选择器就是创建的新方法。这用于自定义相机,方法是删除 showsCameraControls = NO;

    @interface yourClassName () {
       UIImagePickerController *picker; //this calls the video/photo screen
       UIButton *cameraFront, *cameraBack //front and back buttons
    }
    
    //in your UIImagePickerController
    picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
    picker.showsCameraControls = NO;
    
    [cameraFront setBackgroundImage:[UIImage imageNamed:@"camera_switch_logo"] forState:UIControlStateNormal];
    UITapGestureRecognizer *camerafront = [[UITapGestureRecognizer alloc]
                                               initWithTarget:self action:@selector(deviceModeFront:)];
    [cameraFront addGestureRecognizer:camerafront];
    
    [cameraBack setBackgroundImage:[UIImage imageNamed:@"camera_switch_logo2"] forState:UIControlStateNormal];
    UITapGestureRecognizer *cameraback = [[UITapGestureRecognizer alloc]
                                              initWithTarget:self action:@selector(deviceModeBack:)];
    [cameraBack addGestureRecognizer:cameraback];
    cameraBack.hidden = true;
    
    //These are the new methods created as the selector for when image is pressed
    - (IBAction)deviceModeFront:(id)sender {
        [picker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
        cameraFront.hidden = true;
        cameraBack.hidden = false;
    }
    
    - (IBAction)deviceModeBack:(id)sender {
        [picker setCameraDevice:UIImagePickerControllerCameraDeviceRear];
        cameraFront.hidden = false;
        cameraBack.hidden = true;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      相关资源
      最近更新 更多