我正在做一个涉及视频捕获的项目。我本质上是想通过编程来捕获视频。
我定义了imagepicker并开始了视频捕获:
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()
}
}
}但是"Capture“不会打印出来,即使我知道我正在开始和停止录制,因为"Capture started”和“Capture over”都会打印出来。我不确定为什么该方法没有被调用。有什么建议吗?
发布于 2017-03-25 16:53:08
尝试将mediaTypes设置为kUTTypeMovie。
https://stackoverflow.com/questions/43014154
复制相似问题