Как скачать зашифрованное видео ClearKey в ExoPlayer 2 - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть файл .MPD , который зашифрован по схеме ClearKey DRM .Я могу воспроизвести этот файл в Exoplayer2 с подключением к Интернету.Exoplayer2 использует LocalMediaDrmCallback для лицензирования .MPD файла

Теперь я пытаюсь загрузить это видео в автономном режиме , после этого проигрывая это автономное видео в Exoplayer2 (без подключения к Интернету).

До сих пор я пытался использовать DashDownloadHelper для загрузки видео с .MPD файл.Пожалуйста, объясните мне, как предоставить информацию о лицензировании при загрузке файла.

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете просто загрузить содержимое, как обычный файл .MPD, и выполнить лицензирование двумя способами , т. Е.

  • онлайн при воспроизведении видео с использованием HttpMediaDrmCallback
 HttpDataSource.Factory licenseDataSourceFactory = CinemaApplication.getAppInstance().buildHttpDataSourceFactory();
            HttpMediaDrmCallback httpMediaDrmCallback =
                    new HttpMediaDrmCallback(licenseUrl, licenseDataSourceFactory);
            if (keyRequestPropertiesArray != null) {
                for (int i = 0; i < keyRequestPropertiesArray.length - 1; i += 2) {
                    httpMediaDrmCallback.setKeyRequestProperty(keyRequestPropertiesArray[i],
                            keyRequestPropertiesArray[i + 1]);
                }
            }
  • С помощью LocalMediaDrmCallback

    drmCallback = new LocalMediaDrmCallback (PlayerActivity.KEY_JSON.getBytes ());

Используя вышеупомянутый drmCallback, создайте экземпляр DefaultDrmSessionManager

releaseMediaDrm();
mediaDrm = FrameworkMediaDrm.newInstance(uuid);
DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = new DefaultDrmSessionManager<>(uuid, mediaDrm, drmCallback, null, false);

Для получения дополнительной информации о автономной лицензии ClearKey

...