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.

0 ответов

Другие вопросы по тегам