首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过AVAssetDownloadTask/Session下载后如何更新AVURLAsset的元数据?

通过AVAssetDownloadTask/Session下载后如何更新AVURLAsset的元数据?
EN

Stack Overflow用户
提问于 2018-10-10 10:22:35
回答 2查看 542关注 0票数 3

我正在实现一些HLS/m3u8流的离线播放。使用AVAssetDownloadURLSession,一切都像预期的那样工作,使用它来使AVAssetDownloadTasks从一个流url中获得一个AVURLAsset

我希望在下载完成之前或之后在资产的metadata属性中保存一些自定义信息,但它是只读的。我尝试过使用AVAssetExportSessionAVAssetWriter等,但由于(我认为)操作系统管理脱机播放文件的特殊方式,它们都没有起作用。它们被打包为.movpkg

有没有人有过上面的经验,并让它工作了?

会话当前设置如下:

代码语言:javascript
复制
private lazy var avAssetDownloadSession = AVAssetDownloadURLSession(configuration: downloadConfig, assetDownloadDelegate: self, delegateQueue: .main)
private let downloadConfig: URLSessionConfiguration

init() {
    self.downloadConfig = URLSessionConfiguration.background(withIdentifier: "DownloadConfig")
    self.downloadConfig.httpMaximumConnectionsPerHost = 1
}

private func startDownload(for asset: AVURLAsset) {
    guard let downloadTask = avAssetDownloadSession.makeAssetDownloadTask(asset: asset, assetTitle: "Test", assetArtworkData: nil, options: nil)
        else { return }

    downloadTask.taskDescription = "Test task description"
    downloadTask.resume()
}

所有的委托方法都正确地触发了,所以下载部分没有问题。

EN

回答 2

Stack Overflow用户

发布于 2018-10-26 00:54:58

Adding meta-data to video in iOS链接可能会有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-06-13 08:50:40

不支持修改下载的movpkg。任何元数据都必须存在于服务器上的版本中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52731720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档