【问题标题】:I can't get video selected from gallery swift我无法从画廊 swift 中选择视频
【发布时间】:2021-01-01 17:17:36
【问题描述】:

我的代码在这里

@IBAction func openVideo(_ sender: Any) {
        //selectVideo(delegate: self, sourceType: .savedPhotosAlbum)
        let mediaUI = UIImagePickerController()
        mediaUI.sourceType = .savedPhotosAlbum
        mediaUI.mediaTypes = [kUTTypeMovie as String]
        mediaUI.allowsEditing = true
        mediaUI.delegate = self
        self.present(mediaUI, animated: true, completion: nil)
        
    }

在这部分我选择视频。

extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    func processVideo(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]){
        
        let url = info[UIImagePickerController.InfoKey.mediaURL] as! URL
        print("hey") 
        self.dismiss(animated: true) {
            let player = AVPlayer(url: url)
            let vcPlayer = AVPlayerViewController()
            vcPlayer.player = player
            self.present(vcPlayer, animated: true, completion: nil)
            
         
        }
        
    }
}

我做错了什么?

我无法在 processVideo 功能中打印任何内容。从图库中选择视频后出现此错误。

"Error returned from daemon: Error Domain=com.apple.accounts Code=7 "(null)""

【问题讨论】:

    标签: swift uiimagepickercontroller


    【解决方案1】:

    您需要为这样的设置或在 plist 中进行设置。

    switch AVCaptureDevice.authorizationStatus(for: .video) {
        case .authorized: // The user has previously granted access to the camera.
            self.setupCaptureSession()
        
        case .notDetermined: // The user has not yet been asked for camera access.
            AVCaptureDevice.requestAccess(for: .video) { granted in
                if granted {
                    self.setupCaptureSession()
                }
            }
        
        case .denied: // The user has previously denied access.
            return
    
        case .restricted: // The user can't grant access due to restrictions.
            return
    }
    

    Documentation

    【讨论】:

    • 我之前将 plist 设置为询问允许相机和画廊。我正在录制电影并保存它。但是当我试图从画廊中挑选一些东西时,什么也得不到。我不再收到错误消息不知道为什么。
    【解决方案2】:

    通过将 processvideo func 的名称更改为 imagePickerController 解决了问题。似乎名称在委托函数中非常重要。我没注意到。

    创建此委托函数的提示编写didfinish,您将获得名为imagePickerController的首选函数,使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多