4

我有代码可以从我的应用程序中播放加密的 Fairplay 流,它在 iOS 12.4 之前运行良好。我使用从请求中AVAssetResourceLoaderDelegate获取然后从请求中提取 SPC 并发出 http 请求以获取 CKC。AVAssetResourceLoadingRequestresourceLoader:shouldWaitForLoadingOfRequestedResource:

但是在新的 iOS 12.4 上,加载请求被取消并 resourceLoader:didCancelLoadingRequest:在之后被调用resourceLoader:shouldWaitForLoadingOfRequestedResource:,我的播放器保持在加载状态,没有错误。在测试版 iOS 13 上的行为相同。清晰的流是可播放的,而只有加密流的问题。

有人遇到过这个问题吗?我应该迁移AVContentKeySession到加载密钥吗?

4

1 回答 1

3

最后,我找到了问题的根本原因。我的旧代码有下一行:

resourceLoader.preloadsEligibleContentKeys = YES;

并且之前工作正常。

但是从 12.4 开始,它会中断播放我测试中的加密流。如果不设置此标志,一切正常:播放在线/离线内容并下载,所以这很奇怪,但这个标志在新的 iOS 版本上已不再使用。

于 2019-08-01T14:35:05.170 回答