【发布时间】:2016-09-19 10:59:13
【问题描述】:
我目前正在使用 FairPlay 流式传输实现离线流式传输。因此,我正在使用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
【问题讨论】:
-
你有没有解决过这个@Antoine
标签: nsurlsession nsurlsessiondatatask fairplay avassetdownloadtask