iDevice相机显示黑色而不是预览

12 iphone camera ipad ios

在此输入图像描述我正在开发一个应用程序,从iDevice的相机捕获图像并将其上传到Web服务.

没问题除了设备的相机外,一切正常.设备的相机让我疯狂.我使用下面的代码来允许用户捕获图像.有时相机显示预览,有时不显示.而不是预览只是在屏幕上显示完全黑暗.如果我从后面切换到前置摄像头,则开始正常工作.我甚至尝试从设备中删除所有后台应用程序并清除尽可能多的内存; 仍然没有运气,我被卡住了.:(

- (IBAction)addNewImage:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        // Take picture from camera
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

        // set no to take as much pictures as user want.
        imagePicker.showsCameraControls = YES;

        // Show user the camera
        [self presentModalViewController:imagePicker
                                animated:YES];
    }
    else
    {
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:imagePicker
                                animated:YES];        
    }    
}
Run Code Online (Sandbox Code Playgroud)

Bea*_*wah 7

我有一个客户遇到过这个问题.他们必须选择不允许访问相机.我们必须在"设置"中更改应用程序的相机隐私设置.当我们重新打开时,不再有黑色相机屏幕.


Ked*_*dar 0

我在我的应用程序中遇到过这个问题。尽管我从未发现问题所在,但我重写了代码来定义UIIMagePickerController类型的属性并在 getter 中初始化一次。使用此属性来初始化相机视图:

吸气剂:

-(UIImagePickerController *) imagePicker{
    if(!_imagePicker){
       _imagePicker = [[UIImagePickerController alloc] init];
       _imagePicker.delegate = self;
       if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
           _imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
       }
       else{
           _imagePicker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
       }  

   }
    return _imagePicker;
}


- (IBAction)addNewImage:(id)sender{
  if (self.imagePicker)
  {
      [self presentViewController:self.imagePicker animated:YES completion:^{}];
  }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这解决了预览有时显示黑屏的问题