我无法从图库中选择视频 swift

I can't get video selected from gallery swift

我的代码在这里

@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)
        
    }

这部分我 select 视频。

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 函数中打印任何内容。 select 从图库中下载视频后出现此错误。

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

您需要像这样或在 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

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

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