Я использую AVAssetResourceLoaderDelegate для загрузки субтитров и дополнительных аудиодорожек (список воспроизведения m2u8). Я использую AVContentKeySession и AVContentKeySessionDelegate для расшифровки контента (DRM). По отдельности они оба работают хорошо: субтитры загружаются и отображаются, AVPlayer запрашивает ключ, и он успешно обслуживается. Однако, когда я использую их вместе, AVPlayer никогда не запрашивает свой ключ через AVContentKeySessionDelegate.
Я пытался запросить ключ вручную через processContentKeyRequest, когда я нахожусь внутри resourceLoader. Даже если я получаю ключ содержимого, похоже, что AVPlayer его никогда не получал.
Я не могу обработать ключ прямо внутри AVAssetResourceLoaderDelegate, поскольку мне нужно решить проблему двойного истечения срока действия, поэтому мне нужно использовать AVContentKeySessionDelegate, чтобы получить didUpdatePersistableContentKey.