AVAssetDownloadTask
下载流。
我想要向用户反馈开始下载时的下载大小:
您确定要下载此流吗?它将占用2.4GB的空间,而您当前还剩下14GB的空间。
我已经检查了像countOfBytesReceived
和countOfBytesExpectedToReceive
这样的属性,但这些属性无法返回正确的值。
let headRequest = NSMutableURLRequest(URL: asset.streamURL)
headRequest.HTTPMethod = "HEAD"
let sizeTask = NSURLSession.sharedSession().dataTaskWithRequest(headRequest) { (data, response, error) in
print("Expected size is \(response?.expectedContentLength)")
}.resume()
打印出大小为2464,在最后大小为3GB。
在下载过程中,我记录了以上属性:
func URLSession(session: NSURLSession, assetDownloadTask: AVAssetDownloadTask, didLoadTimeRange timeRange: CMTimeRange, totalTimeRangesLoaded loadedTimeRanges: [NSValue], timeRangeExpectedToLoad: CMTimeRange) {
print("Downloaded \( convertFileSizeToMegabyte(Float(assetDownloadTask.countOfBytesReceived)))/\(convertFileSizeToMegabyte(Float(assetDownloadTask.countOfBytesExpectedToReceive))) MB")
}
但是这些都保持为零:
已下载 0.0/0.0 MB