PHPicker загружает некоторые видео, но не все
PHPicker отлично подходит для большинства видео, но некоторые видео не возвращают typeIdentifier. Кто-нибудь знает почему?
Вот код установки
func makeUIViewController(context: Context) -> PHPickerViewController {
var config = PHPickerConfiguration()
config.filter = .videos
config.selectionLimit = 1
config.preferredAssetRepresentationMode = .current
let controller = PHPickerViewController(configuration: config)
controller.delegate = context.coordinator
return controller
}
Затем в классе Coordinator: PHPickerViewControllerDelegate ....
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
if !results.isEmpty {
for result in results {
let itemProvider = result.itemProvider
guard let typeIdentifier = itemProvider.registeredTypeIdentifiers.first,
let utType = UTType(typeIdentifier)
else { continue }
if utType.conforms(to: .image) {
self.getPhoto(from: itemProvider, isLivePhoto: false)
} else if utType.conforms(to: .movie) {
self.getVideo(from: itemProvider, typeIdentifier: typeIdentifier)
} else {
self.getPhoto(from: itemProvider, isLivePhoto: true)
}
}
} else {
parent.didFinishPicking(!results.isEmpty)
}
}
В этой строке:
guard let typeIdentifier = itemProvider.registeredTypeIdentifiers.first,
Для некоторых видео он возвращает правильный идентификатор видео (например, com.apple.quicktime-movie), но для других, например, часового видео, идентификатор видео пуст.
По какой причине? Видео локально, а не в iCloud.