Я использую requestImageDataForAsset, чтобы определить, полностью ли загружен видео PHAsset из iCloud.
Я избегал использования 'PHImageResultIsInCloudKey' из параметра 'info' результата requestImageDataForAsset resultHandler, поскольку он был/ненадежен (возвращает 1, хотя фильм уже был загружен, ссылка).
Я также обнаружил, что после того, как видео PHAsset был на устройстве, «PHImageFileURLKey» возвращается с URL-адресом файла с суффиксом *.MOV через параметр «info».
Это работало для iOS8-9.2.1, но, похоже, не работает на iOS9.3b3 (предыдущие бета-версии не проверялись).
Теперь для любого файла фильма, который был захвачен на устройстве, PHImageFileURLKey указывает на файл с суффиксом *.JPG (вероятно, миниатюра фильма)
Примечание. Я пытался использовать другие API видео:
- requestPlayerItemForVideo
- запросэкспортсессионфорвидео
- запросAVAssetForVideo
Однако у них есть штраф за производительность, который был неприемлем. requestImageDataForAsset намного быстрее.
Это ошибка, которую Apple исправила в requestImageDataForAsset, которая не должна была возвращать PHImageFileURLKey в фильм, или ошибка в iOS9.3b3, которая теперь возвращает путь к изображению (JPG)?