Ios UIImagePickerController在从摄像机切换到视频时崩溃

Ios UIImagePickerController在从摄像机切换到视频时崩溃,ios,objective-c,uiimagepickercontroller,ios13,Ios,Objective C,Uiimagepickercontroller,Ios13,切换到视频捕获模式后,我在使用iOS 13(real device)的iPhone上的UIImagePickerController发生故障。崩溃在第二次演示UIImagePickerControlr时再现。崩溃不会在iOS 13之前的版本(真实设备)上重现。摄像头和麦克风使用说明码在使用Xcode 11.0构建的Info.plist测试应用程序中设置 步骤: 显示UIImagePickerController 关闭UIImagePickerController 显示UIImagePickerC

切换到视频捕获模式后,我在使用iOS 13(real device)的iPhone上的UIImagePickerController发生故障。崩溃在第二次演示
UIImagePickerControl
r时再现。崩溃不会在iOS 13之前的版本(真实设备)上重现。摄像头和麦克风使用说明码在使用Xcode 11.0构建的Info.plist测试应用程序中设置

步骤:

  • 显示
    UIImagePickerController
  • 关闭
    UIImagePickerController
  • 显示
    UIImagePickerController
  • 点击视频按钮->崩溃
  • 如果我将
    videoQuality=UIImagePickerControllerQualityTypeHigh
    ,则不会再现崩溃。但是我需要
    UIImagePickerController质量类型介质

    @interface ViewController () < UINavigationControllerDelegate, UIImagePickerControllerDelegate>
    @end
    
    @implementation ViewController
    
    #pragma mark - IBActions
    
    - (IBAction)showPicker:(UIButton *)sender {
        UIImagePickerController *pickerController = [UIImagePickerController new];
        pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        pickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
    //    pickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
        pickerController.delegate = self;
    
        [self presentViewController:pickerController animated:YES completion:NULL];
    }
    
    #pragma mark - UIImagePickerControllerDelegate
    
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
    
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
    
    @end
    
    @interface ViewController()
    @结束
    @实现视图控制器
    #pragma标记-IBActions
    -(iAction)显示选择器:(UIButton*)发送器{
    UIImagePickerController*pickerController=[UIImagePickerController新建];
    pickerController.sourceType=UIImagePickerController源类型摄像头;
    pickerController.mediaTypes=[UIImagePickerController可用于源类型的媒体类型:UIImagePickerController源类型Camera];
    //pickerController.videoQuality=UIImagePickerController质量类型高;
    pickerController.delegate=self;
    [self-presentViewController:pickerController动画:是完成:空];
    }
    #pragma标记-UIImagePickerControllerDelegate
    -(void)imagePickerController:(UIImagePickerController*)picker未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息{
    [self-dismissViewControllerAnimated:是完成:空];
    }
    -(无效)ImagePickerController IDCancel:(UIImagePickerController*)选择器{
    [self-dismissViewControllerAnimated:是完成:空];
    }
    @结束
    
    “NSInvalidArgumentException”,原因:“***-[AVCaptureDevice” setActiveColorSpace:]不受支持-请使用 activeFormat.supportedColorSpaces'


    在pickercontroller中设置视频质量

    [pickerController setVideoQuality:UIImagePickerControllerQualityTypeIFrame1280x720];
    

    您使用的是哪种型号的iPhone?我刚刚在iPhone XS Max上试用了你的代码,它运行良好,即使视频质量为Medium.11 pro。只发生在我第二次打开我帮助的采摘室时。