В настоящее время я показываю видео в своем приложении, и я хочу, чтобы пользователь мог сохранить его в галерее своего устройства/альбоме/ролике камеры. Здесь это то, что я делаю, но видео не сохраняется в альбоме:/
func downloadVideo(videoImageUrl:String)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
//All stuff here
print("downloadVideo");
let url=NSURL(string: videoImageUrl);
let urlData=NSData(contentsOfURL: url!);
if((urlData) != nil)
{
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0];
let fileName = videoImageUrl; //.stringByDeletingPathExtension
let filePath="\(documentsPath)/\(fileName)";
//saving is done on main thread
dispatch_async(dispatch_get_main_queue(), { () -> Void in
urlData?.writeToFile(filePath, atomically: true);
print("videoSaved");
})
}
})
}
Я также рассматриваю это:
let url:NSURL = NSURL(string: fileURL)!;
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let assetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(url);
let assetPlaceHolder = assetChangeRequest!.placeholderForCreatedAsset;
let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection)
albumChangeRequest!.addAssets([assetPlaceHolder!])
}, completionHandler: saveVideoCallBack)
Но у меня есть ошибка "Невозможно создать данные из файла (null)". Мой "assetChangeRequest" равен нулю. Я не понимаю, как мой url действителен, и когда я перехожу к нему с помощью браузера, он загружает быстрый файл времени.
Если кто-нибудь может мне помочь, это будет оценено! Я использую Swift и настраиваю iOS 8.0 мин.