我有从我的应用程序中播放加密公平播放流的代码,它在iOS 12.4之前运行得很好。我使用AVAssetResourceLoaderDelegate
从resourceLoader:shouldWaitForLoadingOfRequestedResource:
中获取AVAssetResourceLoadingRequest
,然后从请求中提取SPC并发出http请求以获取CKC。
但是在新的iOS 12.4上,一个加载请求被取消,resourceLoader:didCancelLoadingRequest:
在resourceLoader:shouldWaitForLoadingOfRequestedResource:
之后被调用,而我的播放器保持在加载状态,没有任何错误。在beta iOS 13上也有同样的行为。清空流是可播放的,并且只存在加密流的问题。
有谁面对过这个问题吗?我应该迁移到AVContentKeySession
来加载密钥吗?
发布于 2019-08-01 14:35:05
最后,我找到了我的问题的根源。我的旧代码有下一行:
resourceLoader.preloadsEligibleContentKeys = YES;
以前也没问题。
但从12.4开始,它破坏了我测试中的加密流。如果不设置这个标志,一切都能正常工作:播放在线/离线内容和下载,所以很奇怪,但是这个标志在新的iOS版本中已经过时了。
https://stackoverflow.com/questions/57293653
复制相似问题