【发布时间】:2020-04-06 03:25:06
【问题描述】:
我正在使用此 Apple 示例中的 AssetPersistenceManager:Using AVFoundation to play and persist http live streams
我用播放列表主网址创建了一个AVURLAsset,然后用这个资产调用downloadStream(for:),AVAggregateAssetDownloadTask 完成下载成功!
它会保存一个名为286943_chapter_01_C955A55455AC0C4E.movpkg 的文件夹,其中包含下载的片段、我的.m3u8 文件和StreamInfoBoot.xml 文件。
StreamInfoBook.xml 文件包含本地段(或 .frag)文件和 m3u8 段 URL 之间的引用。
但是,这些 url 由 Cloudfront 签名和生成。有时,.m3u8 文件中的某些 URL 与 StreamInfoBook.xml 中的 URL 不匹配,因为 cloudfrount 的 Expires 参数。
所以我认为AVAggregateAssetDownloadTask 可能正在调用.m3u8 文件两次:一次是保存.m3u8,一次是下载片段并写入StreamInfoBook.xml。
有人遇到过这个问题吗?我可以做些什么来检查我的资产是否可以离线播放? 你有什么建议吗?
这是一个不匹配分段 URL 的示例
在 .m3u8 下载文件中:
HTTPS://ezvoiznbov32f.cloudfront.net/file/265579/audio/chapter_08_10.mp3?Expires=1576159816&Signature=vfAYZ8ivP7yKeiranpba3R24gTSxexX4Nb1VjbDrR917pyFQqi2DMMMf8gi3LcueKXxv0FITprXzLXV62Py0Ph4nMxp8ixf5qG5sYnW1JcO74BxNfJE~DEurN~yQgczNBOK4b~bEXrDDZId1AweYJrgjZtjSoyUwAGXf~LA_&Key-Pair-Id=APKAAFEFNOSQQ34Q
在StreamInfoBook.xml 文件中:
HTTPS://ezvoiznbov32f.cloudfront.net/file/265579/audio/chapter_08_10.mp3?Expires=1576159817&Signature=PZ~tqOeIa3Vm26qKTFYU1LCGfvsWNpkUDMi3eFr~EhyRTLj66CDInSwfpoorYjl4Kl4B9eQ1W8ZzTlIMDGvs36wJ235JOszeov23IuIOzAJTlNw7zQYEd4Y1tq~nyZinpFoyDRGk0CelKOhH91Itb3rpQUeMN6lDhO-cq1X1OM_&Key-Pair-Id=APKAAFEFNOSQQ34Q
我正在使用 iOS 13.2 进行测试
【问题讨论】:
标签: ios avfoundation avurlasset