当前位置: 首页 > 知识库问答 >
问题:

我无法访问UIViewController中的相机

浦墨竹
2023-03-14

我真的希望我不是在做一个重复--但我读了一吨不同的相机-问题在这里,并执行他们的所有答案,结果是一样的:什么都没有发生!

没有错误,应用程序没有崩溃,没有任何问题--只是没有任何迹象的摄像头,它应该被激活!我的目标是在ViewDidIncure或viewDidLoad中激活它,但我也尝试过通过将代码连接到一个按钮来测试它--结果是一样的;什么都没有。在我自己的设备上和模拟器上都是:什么都没有!

我在这个简单的代码中犯了什么错误??-或者我需要更改哪个设置?我试着玩过“数据保护”:什么都没有!

class CreateNewPerson: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

func viewDidAppear () {
    let imagePicker = UIImagePickerController()

    imagePicker.delegate = self
    imagePicker.sourceType = .camera
    present(imagePicker, animated: true, completion: nil)
}

private func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]!) {
    PersonPhoto.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    dismiss(animated: true, completion: nil)
}

希望有人能帮助我!

谢谢!

共有1个答案

蔺德曜
2023-03-14

您需要在info.plist文件中添加一个Camara使用说明,并请求允许您的应用程序访问相机。

将此添加到plist文件:

Privacy - Camera Usage Description

有一些文本,比如

AVCaptureDevice.requestAccess(for: AVMediaType.video) { granted in
    if granted {
        // show the image picker 
    } else {
        // show an error 
    }
}
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated) 

    checkCameraPermissions() 
}

private func checkCameraPermissions() {
    let status = AVCaptureDevice.authorizationStatus(for: .video)
    switch status {
       case .authorized: 
          self.presentPicker()
       case .notDetermined:
           self.requestPermissions()
       case .denied:
          // user denied access
          self.permissionDenied()   
    }
}

private func requestAccess() {
    AVCaptureDevice.requestAccess(for: AVMediaType.video) { granted in
        if !granted {
            // show an error 
        }
        // call it again in to recheck now that permissions have changed.
        checkCameraPermissions
    }
}

private func presentPicker() {
    // permissions are all set, continue as planned.
}

private func permissionDenied() {
    // show an alert and link to app settings to turn on

    // usually I would show a view which explains they have denied permission to the camera so this functionality isn't available until they manually change the setting in the app settings.
}
 类似资料:
  • 问题内容: 我的问题很简单。我有一个包含UICollectionView的UIViewController。在初始化单元格时,我向每个单元格添加了一个手势识别器,以便在按住时可以使用选择器调用一个函数。 然后,此函数创建一个我要呈现的UIAlertController。(基本上,您拥有一个单元格,它询问您是否要删除它,如果您说是,它会从CollectionView中删除它) 问题是我无法从UICo

  • 我正在尝试从HDInsight群集中访问类型为"Blob"的容器中的Blob。 hadoop fs-text wasb://myconatiner@***.blob.core.windows.net/file.csv 我得到以下异常: org . Apache . Hadoop . fs . azure . azure异常:找不到帐户** blob . core . windows . net中的

  • 问题内容: 我不明白“无法​​访问的代码”是什么意思? 在我的代码的最后一行中,它表示无法访问的代码。 } 问题答案: 这里的循环: 解析为,因为从未修改过的值。因此,(在您的情况下)之后出现的任何代码均被视为 无法访问 。

  • 我有一个超级简单的Java库伯内特斯Tomcat应用程序在库伯内特斯内部运行,我用在minikube上运行的JVM Jolokia代理安装了它。我正在尝试配置我的库伯内特斯部署,以便我可以在容器外部访问Jolokiaendpoint。当我试图从我的minikube IP上的容器外部访问http://127.0.0.1/jolokia/versionendpoint时,我收到一个连接被拒绝。 我已经

  • 问题内容: 我有一个带有横向ViewController的肖像应用程序。 当应用程序锁定为人像时,我一直在研究如何使方向变为横向,并且我尝试了此处介绍的许多解决方案,不仅到目前为止,还没有运气。 到目前为止,我设法自动旋转了景观中所需的VC,但是由于方向未锁定,因此所有其他VC也会旋转。 经过更多的挖掘之后,我找到了一个示例项目,最终得到了这个结果,但是尽管它在该项目中有效,但它似乎对我不起作用。

  • 我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute