«Невозможно загрузить представление типа public.movie» с помощью PHPickerViewControllerIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 «Невозможно загрузить представление типа public.movie» с помощью PHPickerViewController

Сообщение Anonymous »

Моему приложению необходимо загрузить видео, которое пользователь выбирает через PHPickerViewController. Он отлично работает с 99% видео, но на некоторых не работает. Это странно, потому что другие приложения загружают его нормально. Вот код для настройки средства выбора:

Код: Выделить всё

var config = PHPickerConfiguration(photoLibrary: .shared())
config.selectionLimit = 1
config.filter = PHPickerFilter.any(of: [.videos])
config.preferredAssetRepresentationMode = .current

let phPickerVC = PHPickerViewController(configuration: config)
phPickerVC.delegate = self

// present
Затем я загружаю представление файла здесь:

Код: Выделить всё

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
guard let result = results.first else {
return
}

result.itemProvider.loadFileRepresentation(forTypeIdentifier: UTType.movie.identifier) { url, error in
guard let url, error == nil else {
print(error)
return
}

// process video
}
}
Для элемента, который не выполнен, возникает ошибка Error Domain=NSItemProviderErrorDomain Code=-1000 «Невозможно загрузить представление типа public.movie» UserInfo={NSLocalizedDescription=Невозможно загрузить представление типа public. фильм
Если я печатаю result.itemProvider.registeredTypeIdentifiers, он на самом деле сообщает «public.jpeg», поэтому имеет смысл, что он не может загрузиться это, но не имеет смысла, чтобы это был jpeg, потому что это, безусловно, видео, оно появляется в средстве выбора фотографий с видеофильтром, если долго нажимать на него в средстве выбора фотографий, начинается воспроизведение видео и т. д. Видео на самом деле это запись экрана iPhone, но я также могу записывать с экрана и использовать эти видео.
Что еще более странно, так это то, что другие приложения, которые, как я могу подтвердить, используют стандартный PHPickerViewController, который может загрузить видео. Я также пробовал использовать UIImagePickerViewController, который возвращает URL-адрес элемента, даже с расширением .mov, но затем попытка что-либо с ним сделать не удалась. Например, Error Domain=AVFoundationErrorDomain Code=-11838 «Операция остановлена» UserInfo={NSLocalizedFailureReason=Операция не поддерживается для этого носителя., NSLocalizedDescription=Операция остановлена, NSUnderlyingError=0x600000c06ca0 {Error Domain=NSOSStatusErrorDomain Code=-16976 "(null) )"}}.
Как загрузить это видео? Это происходит и на симуляторе, и на устройстве.

Подробнее здесь: https://stackoverflow.com/questions/784 ... controller
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»