1

我有一个通过ClearKey DRM 方案加密的.MPD文件。我可以通过 Internet 连接在 Exoplayer2 中播放此文件。Exoplayer2 使用LocalMediaDrmCallback来授权.MPD文件

现在,我正在尝试离线下载该视频,然后在 Exoplayer2 中播放该离线视频(没有互联网连接)。

直到现在我已经尝试使用DashDownloadHelper.MPD文件下载视频。请指导我如何在下载文件时提供许可信息。

4

1 回答 1

0

您可以像普通 .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 许可证的更多参考

于 2018-12-11T10:35:33.510 回答