问题标签 [avassetdownloadtask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
avfoundation - 删除 AVAssetDownloadTask 所有未下载的文件
我需要删除AVAssetDownloadTask
应用程序运行时无法下载的所有文件。我想在应用程序收到UIApplication.willTerminateNotification
.
我试过 cancel of all AVAssetDownloadTasks
,但AVAssetDownloadDelegate
urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL)
目前没有被调用。我想获取所有文件的位置 url。
如果还有其他方法可以做到这一点?
objective-c - 下载视频目标 c 时如何使用 AVAssetDownloadTask 获取 i-Frame
我正在使用 Objective C 开发 iOS 应用程序,我们在其中下载了视频。当我在离线视频中播放此视频时播放正常,但在离线播放模式下,快进和快退不适用于下载的内容。请建议我该怎么做。
ios - AVAggregateAssetDownloadTask 在进入后台时停止发送更新(可能停止下载)
首先,我使用的是 iOS 13.6.1
我正在下载 HLS 视频以供以后离线播放。在前台时,一切都按预期工作,所有逻辑都在做它应该做的事情,似乎没有任何问题。
但是当应用程序进入后台时,我停止获取 AVAggregateAssetDownloadTask 的更新(我的意思是,我没有看到在 Xcode 控制台中打印的委托回调中的日志)。
我遵循了文档:
- NSURLSessionConfiguration sessionSendsLaunchEvents 设置为 true
- AppDelegate 实现了 handleEventsForBackgroundURLSession
- Session 委托实现 URLSessionDidFinishEventsForBackgroundURLSession
另外,我为获取启用了后台模式。
疯狂的是,如果我连接仪器网络监视器,我会得到所有的更新。而且我看到下载在后台继续进行。即使没有上述文档中提到的更改,我仍然看到下载在监视器打开的情况下继续在后台进行。
但似乎网络监视器以某种方式使应用程序保持活力,因为如果我不打开它,那么我将获得零更新。
需要明确的是,我什至没有考虑在后台开始或完成下载,以及唤醒应用程序或其他任何事情。我只想开始下载,转到后台并让下载继续下载内容并通知我(AFAIK 是在单独的过程中完成的,我可以从网络监视器确认它是)。
一个例子:
- 打开应用程序
- 开始下载
- 去后台
- 没有显示更新
- 打开仪器网络监视器并连接到设备中运行的应用程序
- 突然开始获取更新
我的想法不多了。除了框架中的错误之外,没有任何意义。
无论看起来多么简单,任何想法都将不胜感激。
提前致谢!
PS:当进入设置>存储时,我有时会看到文件大小在后台增加,这意味着即使我没有看到来自委托回调的更新,下载仍在继续。在某些时候,我看到文件大小在后台一段时间内没有变化,但这可能是无关紧要的事情(我希望如此)。
ios - 离线 FairPlay 播放使网络请求加载 m3u8 播放列表
我们正在使用 AVAssetDownloadTask API 集在我们的应用程序中构建离线 Fairplay 播放功能。我们可以成功下载内容,但我们注意到网络活动,即在播放下载内容时对 movpkg 包中 boot.xml 中的 m3u8 播放列表的请求。
问题是加载那些 m3u8 播放列表需要 cookie 并且 cookie 设置为 1 天后过期,这会导致 cookie 过期时播放失败。我的问题是为什么播放下载的内容需要加载这些播放列表?难道不应该在没有网络的情况下播放下载的内容吗?
谢谢。
swift - AVAggregateAssetDownloadTask 错误域=CoreMediaErrorDomain 代码=-16657
我正在使用AVAggregateAssetDownloadTask在我的应用程序中下载HLS视频。我刚刚添加了暂停/恢复功能。简单地说,当用户想要暂停下载时,我会暂停任务。
但是,在这种情况下,实际上任务不会停止。它不断下载资产。当我按下恢复按钮时,我正在调用任务的 .resume() 方法。不知何故,这个过程非常快,直到%100,它给出了一个错误(继续阅读或转到错误消息标题)。
我该如何测试
- 开始通过 AVAggregateAssetDownloadTask 下载项目
- 在 %3 处点击暂停。
- 调用任务?.suspend()
- 等待 1 分钟或 2 分钟
- 点击恢复下载按钮
- 调用任务?.resume()
- 任务从 %29 恢复
- 任务在 %48 失败
代码
其他案例
- 在不暂停任务的情况下,它可以完美下载。
技术细节
- Xcode 版本 12.4 (12D4e)
- iOS 版本 14.4
错误信息
错误域=CoreMediaErrorDomain 代码=-16657
"(null)" UserInfo={_NSURLErrorRelatedURLSessionTaskErrorKey=( "BackgroundAVAssetDownloadTask .<1>"), _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundAVAssetDownloadTask .<1>}
developer.apple.com
developer.apple.com 上也有同样的问题:
https://developer.apple.com/forums/thread/674090
报告的错误
FB9043262
如果您认为自己面临同样的问题,请考虑帮助。
最好的。
ios - iOS - 使用 AVAssetDownloadURLSession 设置下载的总最大大小限制
我正在创建一个应用程序来使用 AVAssetDownloadURLSession 和 AVAssetDownloadTask 下载音轨和视频。我想做的是为下载设置一个阈值。
比如说,阈值是 5GB,那么总下载量永远不会超过 5GB。
我浏览了 WWDC 视频并说 API 文档,但找不到任何可以让我设置一定限制的内容。
如果你们中的任何一个天才能够指出我是否可以使用 Apple API 实现上述场景,那就太好了,否则我将不得不编写自己的实现。