Я пытаюсь загрузить видео с iPhone устройства, как:загрузка видео с iPhone устройства не удается, но работает на Simulator отлично ОШИБКА: «Невозможно прочитать файл»
var uploadTask = self.session?.uploadTaskWithRequest(request, fromFile:NSURL(string: assetFilePath.path)!)
Этот код работает на тренажере и дает задание сеанса объект, который я могу возобновить. Но это не работает на устройстве iPhone.
Это терпит неудачу как:
2015-05-19 18:36:44.718 myApp[327:24703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot read file at file:///var/mobile/Media/DCIM/100APPLE/IMG_0144.mp4'
Я попытался проверить, если видеофайл имеет доступ на чтение, но он возвращает ложь на iPhone:
fileManager.fileExistsAtPath(asset.path) // returns false
Любой столкнулось это раньше, или я здесь что-то не так?
код, который я использую, чтобы получить путь к файлу:
let options = PHFetchOptions()
options.sortDescriptors = [
NSSortDescriptor(key: "creationDate", ascending: true)
]
currentVideofetch = PHAsset.fetchAssetsWithMediaType(.Video, options: options)
let asset = self.currentVideofetch.objectAtIndex(indexPath.row) as? PHAsset
var assetLength:NSNumber!
var assetFilePath:NSString!
if let checkdAsset = asset {
PHImageManager.defaultManager().requestImageDataForAsset(checkdAsset,options: nil) {
imageData,dataUTI,orientation,info in
assetLength = imageData.length as NSNumber
let assetFilePathUrl = info["PHImageFileURLKey"] as? NSURL
assetFilePath = assetFilePathUrl!.absoluteString!
println("Assets FilePath \(assetFilePath)") // returns file:///var/mobile/Media/DCIM/100APPLE/IMG_0144.mp4
}
}
Вы пытались использовать requestAVAssetForVideo вместо requestImageDataForAsset? – Icaro
@IcaroNZ Да, я сделал. –