【问题标题】:How to download ClearKey Encrypted Video in ExoPlayer 2如何在 ExoPlayer 2 中下载 ClearKey 加密视频
【发布时间】:2018-12-11 18:35:33
【问题描述】:
我有一个通过 ClearKey DRM 方案 加密的 .MPD 文件。我可以通过 Internet 连接在 Exoplayer2 中播放此文件。 Exoplayer2 正在使用 LocalMediaDrmCallback 来获得 .MPD 文件的许可
现在,我正在尝试离线下载该视频,然后在 Exoplayer2 中播放该离线视频(没有互联网连接)。
到目前为止,我一直尝试使用 DashDownloadHelper 从 .MPD 文件中下载视频。请指导我如何在下载文件时提供许可信息。
【问题讨论】:
标签:
android
exoplayer
exoplayer2.x
android-drm
【解决方案1】:
您可以像普通 .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]);
}
}
使用上面的drmCallback,创建一个DefaultDrmSessionManager的实例
releaseMediaDrm();
mediaDrm = FrameworkMediaDrm.newInstance(uuid);
DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = new DefaultDrmSessionManager<>(uuid, mediaDrm, drmCallback, null, false);
For more reference for offline ClearKey License