#xcode #swift4 #avkit
#xcode #swift4 #avkit
Вопрос:
Это моя первая попытка записи и сохранения видео с помощью 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)
}
Будем признательны за любую помощь.
Комментарии:
1.
vidInfo[UIImagePickerController.InfoKey.mediaURL]
не может быть одновременноString
и aURL
.2. Я понимаю, как бы мне переписать это, чтобы заставить это работать, я следовал примеру по ссылке , где это, похоже, работает.
3. Согласно документу: developer.apple.com/documentation/uikit/uiimagepickercontroller/… я думаю, вы ищете URL-адрес
mediaType
( developer.apple.com/documentation/uikit/uiimagepickercontroller / … ), поэтому MediaType следует проверять с помощью этого ключа.