Это моя первая попытка записи и сохранения видео с помощью AVKit и т. Д., И хотя я могу отображать и записывать видео следующим способом:
@IBAction func recordVideo(_ sender: Any) {
// Check the camera is available
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.camera){
// present the camera
controller.sourceType = .camera
controller.mediaTypes = [kUTTypeMovie as String]
controller.delegate = self
present (controller,animated: true, completion: nil)
}else{
// No camera available so show alert
let alert = UIAlertController(title: "Oops!", message: "Can't access the camera!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Give up", style: .default, handler: nil))
self.present(alert, animated: true)
uploadButton.isHidden = true
}
}
У меня возникли проблемы с сохранением записанного видеов фотоальбом.Когда я перебираю код, он переходит из строки 'guard' в блок 'else' и просто возвращается.Поэтому по какой-то причине он не может назначить что-либо для 'mediaType'
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo vidInfo: [UIImagePickerController.InfoKey : Any]){
dismiss(animated: true, completion: nil)
guard let mediaType = vidInfo[UIImagePickerController.InfoKey.mediaURL] as? String,
mediaType == (kUTTypeMovie as String),
let url = vidInfo[UIImagePickerController.InfoKey.mediaURL] as? URL,
UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(url.path)
else {
return
}
// Handle a movie capture
UISaveVideoAtPathToSavedPhotosAlbum(url.path, self, nil, nil)
}
. Любая помощь приветствуется.