Заставьте AVAssetResourceLoaderDelegate и AVContentKeySessionDelegate работать вместе - PullRequest
0 голосов
/ 26 мая 2020

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

Я пытался запросить ключ вручную через processContentKeyRequest, когда я нахожусь внутри resourceLoader. Даже если я получаю ключ содержимого, похоже, что AVPlayer его никогда не получал.

Я не могу обработать ключ прямо внутри AVAssetResourceLoaderDelegate, поскольку мне нужно решить проблему двойного истечения срока действия, поэтому мне нужно использовать AVContentKeySessionDelegate, чтобы получить didUpdatePersistableContentKey.

1 Ответ

1 голос
/ 26 мая 2020

Ну, по-видимому, shouldWaitForLoadingOfRequestedResource для AVAssetResourceLoaderDelegate должен возвращать false, чтобы была инициирована загрузка сеанса ключа порядка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...