Swift ImagePicker StartVideoCapture

时间:2017-03-26 00:41:02

标签: swift video avfoundation avkit

我正在开展一个涉及视频捕捉的项目。我本质上想以编程方式捕获视频,这意味着我不想要任何相机或任何东西弹出;我只想在按下两个按钮的时间之间录制视频。

我定义了imagepicker并在按下按钮时启动了视频捕获:

if (UIImagePickerController.isSourceTypeAvailable(.camera)) {
        imagePicker.sourceType = .camera
        imagePicker.cameraDevice = UIImagePickerControllerCameraDevice.front
        imagePicker.allowsEditing = false
        imagePicker.delegate = self
    }
    imagePicker.startVideoCapture()
    print("Capture started")

之后,我停止了视频捕捉:

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

我知道这应该是我的方法:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    print("captured")
}

由于某种原因,我的视频无法开始录制,因为布尔imagepicker.startvideocapture返回false。我完全坚持为什么会这样;有人可以提供一些建议吗?

2 个答案:

答案 0 :(得分:0)

根据文档,startVideoCapture在某些情况下会返回false值:

  

此方法可能返回值   因各种原因出现错误,其中包括以下内容:

     

电影捕捉已在进行中

     

设备不支持电影捕捉

     

设备磁盘空间不足

要检查的第一件事是,如果发生任何上述情况。你正在测试设备而不是模拟器,对吗?

答案 1 :(得分:0)

尝试一下。

imagePicker.CameraCaptureMode = .video

因为CameraCaptureMode //默认是照片,而不是视频

可能是您没有通知UIImagePickerController录制视频。所以尝试这一行

imagePicker.mediaTypes = [kUTTypeMovie as String]