Swift ImagePicker VideoCapture didFInishPickingMedia 未被调用

Posted

技术标签:

【中文标题】Swift ImagePicker VideoCapture didFInishPickingMedia 未被调用【英文标题】:Swift ImagePicker VideoCapture didFInishPickingMedia not being called 【发布时间】:2017-03-25 08:22:23 【问题描述】:

我正在从事一个涉及视频捕捉的项目。我基本上想以编程方式捕获视频。

我定义了图像选择器并开始了视频捕捉:

if (UIImagePickerController.isSourceTypeAvailable(.camera)) 
            imagePicker.sourceType = .camera
            imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front
            imagePicker.allowsEditing = false
            imagePicker.delegate = self

            //present(imagePicker, animated: true, completion: )
        
        imagePicker.startVideoCapture()
        print("Capture started")

后来,我停止了视频拍摄:

imagePicker.stopVideoCapture()
    print("capture over")

我知道这应该调用我的方法:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 

    print("captured")


    if let pickedvideo:NSURL = (info[UIImagePickerControllerMediaURL] as! NSURL) 
        let selectorToCall = Selector("videoWasSavedSuccessfully.didFinishSavingWithError:context:")
        UISaveVideoAtPathToSavedPhotosAlbum(pickedvideo.relativePath!, self, selectorToCall, nil)

        let videoasset = (AVAsset(url: pickedvideo as URL))
        let playeritem = AVPlayerItem(asset: videoasset)
        let player = AVPlayer(playerItem: playeritem)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true) 
            playerViewController.player?.play()
        
    

但“捕获”不会打印,即使我知道我正在开始和停止录制,因为打印了“捕获开始”和“捕获结束”。我不确定为什么没有调用该方法。有什么建议吗?

【问题讨论】:

你为什么使用可可标签? 你应该检查startVideoCapture的返回值。是否返回true 【参考方案1】:

尝试将 mediaTypes 设置为 kUTTypeMovie。

【讨论】:

这与是否调用委托方法有什么关系? 我建议添加,因为它缺少媒体类型。至少我们应该添加缺失的行并检查。 那么这应该是评论,而不是答案。但是您还不能发布 cmets。请不要发布 cmets 作为答案。等到你获得足够的声望来发布 cmets。

以上是关于Swift ImagePicker VideoCapture didFInishPickingMedia 未被调用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift/SwiftUI 从 ImagePicker 获取选定的图像文件名

iOS Swift:在呈现 imagePicker 后,SlidingMenuView 位置错误

Swift ImagePicker VideoCapture didFInishPickingMedia 未被调用

UIImagePickerController 委托未调用 Swift 3

UIImagePickerController委托不叫Swift 3

Swift,相机图像不返回