Интересно, почему contentOf возвращает ноль для URL-адреса из AVURLAsset. Выбрав из пользовательской библиотеки с фреймворком Photos, я попытался запросить ресурс у PHAsset следующим образом:
PHCachingImageManager().requestAVAsset(forVideo: asset, options: nil) { (avAsset, _, _) in
DispatchQueue.main.async {
guard let asset = avAsset as? AVURLAsset else {
return
}
print(asset.url) // file:///var/mobile/Media/DCIM/101APPLE/IMG_1513.MP4
}
}
Видео с указанным выше URL может нормально отображаться с помощью AVPlayer. Но когда я пытаюсь получить данные, связанные с URL-адресом, используя:
do {
let videoData = try Data(contentsOf: mediaURL!)
} catch (let error){
print(error.localizedDescription ?? "") // "The file “IMG_1490.MP4” couldn’t be opened because you don’t have permission to view it."
}
do/catch
и запишите ошибку. - person rmaddy   schedule 05.02.2018