Swift图像采集器StartVideoCapture
我正在做一个涉及视频捕获的项目。我基本上是想通过编程方式拍摄视频,这意味着我不想让任何相机或任何东西弹出;我只想在按下两个按钮之间录制视频 我定义了imagepicker并在按下按钮时开始视频捕获:Swift图像采集器StartVideoCapture,swift,video,avfoundation,avkit,Swift,Video,Avfoundation,Avkit,我正在做一个涉及视频捕获的项目。我基本上是想通过编程方式拍摄视频,这意味着我不想让任何相机或任何东西弹出;我只想在按下两个按钮之间录制视频 我定义了imagepicker并在按下按钮时开始视频捕获: if (UIImagePickerController.isSourceTypeAvailable(.camera)) { imagePicker.sourceType = .camera imagePicker.cameraDevice = UIImagePicke
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。我完全不明白为什么会这样;有人能提供一些建议吗?根据文档,
startVideoCapture
在某些情况下返回一个false
值:
此方法可能返回的值为
错误的原因有多种,其中包括:
电影拍摄已在进行中
该设备不支持电影捕获
设备磁盘空间不足
首先要检查的是上述情况是否发生。您是在设备上而不是在模拟器上进行测试,对吗?试试这个
imagePicker.CameraCaptureMode = .video
因为CameraCaptureMode
//默认值是照片,而不是视频
或
可能是您没有通知UIImagePickerController录制视频。所以试试这句话
imagePicker.mediaTypes = [kUTTypeMovie as String]
在尝试捕获视频之前,您不需要演示图像选择器吗?为什么要尝试在
if
块之外调用startVideoCapture
?您实际在哪里创建选择器?您应该只创建它,并在源类型可用的情况下使用它;我试着不带任何相机就录制。我在课程开始时创建了选择器。是的,我是,但我很确定这些都不适用;该设备支持媒体捕获,没有磁盘空间不足,而且我知道我还没有捕获电影。本质上,UIImagePickerController
适用于需要UI的情况。如果您不需要任何UI,您可能需要查看AVFoundation
来进行视频录制。因此,您在此处尝试执行的操作可能不起作用,因为您试图不显示任何UI。