我有一个通过ClearKey DRM 方案加密的.MPD文件。我可以通过 Internet 连接在 Exoplayer2 中播放此文件。Exoplayer2 使用LocalMediaDrmCallback来授权.MPD文件
现在,我正在尝试离线下载该视频,然后在 Exoplayer2 中播放该离线视频(没有互联网连接)。
直到现在我已经尝试使用DashDownloadHelper从.MPD文件下载视频。请指导我如何在下载文件时提供许可信息。
我有一个通过ClearKey DRM 方案加密的.MPD文件。我可以通过 Internet 连接在 Exoplayer2 中播放此文件。Exoplayer2 使用LocalMediaDrmCallback来授权.MPD文件
现在,我正在尝试离线下载该视频,然后在 Exoplayer2 中播放该离线视频(没有互联网连接)。
直到现在我已经尝试使用DashDownloadHelper从.MPD文件下载视频。请指导我如何在下载文件时提供许可信息。
您可以像普通 .MPD 文件一样简单地下载内容并通过两种方式进行许可,即
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);