我正在使用AVAssetDownloadURLSession和AVAssetDownloadDelegate来下载iOS 11离线视频,使用makeAssetDownloadTask(...)和aggregateAssetDownloadTask(...)方法。一切正常,但我想让用户尽可能准确地了解每个下载的进度。为此,我使用:
通过这些方法,我能够单独计算视频和每个音轨/字幕的下载进度。因此,我认为视频下载占总进度的70%,而音轨/字幕下载占30%,并根据其数量进行划分。 我将每个项目的下载进度存储在临时字典中(乘以它们的比率),并将每个下载进度添加到全局表示中。
最终它运作良好,但不如预期的那么流畅。例如,如果音轨的权重较轻,则进度会在1秒钟内从70%跳至85%(如果我有2个音轨要下载),然后立即减速。 我希望有一个全局进度。
我对这个解决方案一点也不满意,但目前我没有找到其他解决方案。
你们有什么想法/解决方案吗?
谢谢大家。
- urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didLoad timeRange: CMTimeRange, totalTimeRangesLoaded loadedTimeRanges: [NSValue], timeRangeExpectedToLoad: CMTimeRange)
- urlSession(_ session: URLSession, aggregateAssetDownloadTask: AVAggregateAssetDownloadTask, didLoad timeRange: CMTimeRange, totalTimeRangesLoaded loadedTimeRanges: [NSValue], timeRangeExpectedToLoad: CMTimeRange, for mediaSelection: AVMediaSelection)
通过这些方法,我能够单独计算视频和每个音轨/字幕的下载进度。因此,我认为视频下载占总进度的70%,而音轨/字幕下载占30%,并根据其数量进行划分。 我将每个项目的下载进度存储在临时字典中(乘以它们的比率),并将每个下载进度添加到全局表示中。
最终它运作良好,但不如预期的那么流畅。例如,如果音轨的权重较轻,则进度会在1秒钟内从70%跳至85%(如果我有2个音轨要下载),然后立即减速。 我希望有一个全局进度。
我对这个解决方案一点也不满意,但目前我没有找到其他解决方案。
你们有什么想法/解决方案吗?
谢谢大家。