根据我读过的所有示例和文档,这似乎应该是非常直截了当的,但由于某些奇怪的原因,我仍然无法让它工作。
我正在使用 Alamofire Frame 工作从 instagram 下载视频。下载后,我想将视频保存到相机胶卷。这是我下载视频并保存到磁盘的代码:
let destination: (NSURL, NSHTTPURLResponse) -> (NSURL) = {
(temporaryURL, response) in
if let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
let finalPath = directoryURL.URLByAppendingPathComponent("\(Scripts.dateToString2(date: NSDate())).\(response.suggestedFilename!)")
InstagramEngine.downloadMediaPath = finalPath
Scripts.log("Final Path >> \(finalPath)")
return finalPath
}
return temporaryURL
}
let request = Alamofire.download(.GET, self.videoURL, destination)
request.response { _, response, data, error in
NSNotificationCenter.defaultCenter().postNotificationName(kMediaDownloadComplete, object: nil)
}
下载完成后,会触发通知,调用此函数将其保存到相机胶卷:
UISaveVideoAtPathToSavedPhotosAlbum(InstagramEngine.downloadMediaPath.URLString, self, Selector("video:didFinishSavingWithError:contextInfo:"), nil)
一切都是根据我的日志语句调用的,没有发生错误。甚至为 UISaveVideoAtPathToSavedPhotosAlbum 成功调用了 didFinishSavingWithError 并且我确认没有发现错误。但是当我去检查相机胶卷时,我仍然看到那里没有保存任何视频。有任何想法吗?