【问题标题】:Use photo and video camera?使用照片和摄像机?
【发布时间】:2015-11-20 09:21:38
【问题描述】:

我想使用 iphone 相机拍摄照片或视频。

我知道如何打开 JUST Photo Camera 和 JUST Video Camera,但我不知道如何同时启动两者。

我可以使用UIImagePickerController 同时打开这两个视图还是需要创建自定义视图?

以下是仅用于照片相机和摄像机的代码

-(void)photoCameraButtonAction{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.delegate = self;
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

        [self presentViewController:imagePicker animated:YES completion:nil];
    }
}

-(void)videoCameraButtonAction{

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.delegate = self;
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

        NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
        NSArray *videoMediaTypesOnly = [mediaTypes filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(SELF contains %@)", @"movie"]];

        imagePicker.mediaTypes = videoMediaTypesOnly;
        imagePicker.videoQuality = UIImagePickerControllerQualityTypeMedium;
        imagePicker.videoMaximumDuration = 180;

        [self presentViewController:imagePicker animated:YES completion:nil];
    }
}

谢谢!

【问题讨论】:

  • 两者使用相同的物理相机。主要区别在于基本上所有内容的设置。视频分辨率较低,它必须更好地跟踪运动,这意味着更快的快门速度。我不是摄影爱好者或类似的人,但我知道你不能同时做这两件事并取得好成绩。您可以录制视频并将帧捕获为照片。但实际上并不相同。
  • 您可以创建一个自定义视图并在另一个内部较小的视图上显示一个,在自定义视图上给用户按钮以在图像和照片选择器之间进行选择,可能会在here中阅读更多内容

标签: ios objective-c iphone camera uiimagepickercontroller


【解决方案1】:

你可以这样做

        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = .camera
        picker.mediaTypes = [kUTTypeMovie as String,kUTTypeImage as String]
        self.present(picker, animated: true, completion: nil)

【讨论】:

  • 这应该是正确的答案......而且早就应该:)
猜你喜欢
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-20
相关资源
最近更新 更多