我正在尝试使用 Alamofire 下载文件。为了显示进度,我正在使用来自 alamofire 的 downloadProgress。我从中得到了进度百分比。但我需要显示到目前为止下载的总 Mb/Kb 以及估计的剩余时间。这是我的代码:
AF.download("http://ipv4.download.thinkbroadband.com/200MB.zip",
method: .get,
parameters: nil,
encoding: URLEncoding.default,
headers: nil,
interceptor:nil,
to: destination)
.downloadProgress { progress in
self.postProgress(progress: progress)
}
.responseData { response in
if let data = response.result.value {
// let image = UIImage(data: data)
}
}
使用通知发布进度
func postProgress(progress: Progress) {
NotificationCenter.default.post(name: .DownloadProgress, object: progress)
}
使用以下代码显示我的进度
if let progress = notification.object as? Progress {
progressBar.setProgress(Float(progress.fractionCompleted), animated: true)
progressInNumberView.text = "\(Int64(progress.fractionCompleted*100))%"
remianingView.text = "\(progress.fileCompletedCount) / \(progress.fileTotalCount)"
if let estimatedTimeRemaining = progress.estimatedTimeRemaining {
remianingView.text = format(estimatedTimeRemaining)
}
}
我得到了progress.fractionCompleted 完美。但progress.estimatedTimeRemaining、progress.fileCompletedCount 和progress.fileTotalCount 总是为零。
简单的 DownloadProgress 类实现,基于来自 Alamofire 或其他的 Progress
以及从此处获取的移动平均值
How to estimate download time remaining (accurately)?
https://gist.github.com/akovalov/7b22735e1fb7f1117bf04659e214d785
关于ios - 检索 Alamofire 估计剩余时间和文件下载大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55197497/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |