我有一个 .MPD 文件,该文件已通过 ClearKey DRM方案进行了加密。我可以通过Internet连接在Exoplayer2中播放此文件。 Exoplayer2使用 LocalMediaDrmCallback 授予 .MPD 文件
的许可现在,在Exoplayer2中播放脱机视频之后(没有互联网连接),我想离线下载此视频。
到目前为止,我一直尝试使用 DashDownloadHelper 从 .MPD 文件下载视频。请指导我如何在下载文件时提供许可信息。
答案 0 :(得分:0)
您可以像正常的.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 =新 LocalMediaDrmCallback(PlayerActivity.KEY_JSON.getBytes());
使用上面的drmCallback,创建DefaultDrmSessionManager的实例
releaseMediaDrm();
mediaDrm = FrameworkMediaDrm.newInstance(uuid);
DefaultDrmSessionManager<FrameworkMediaCrypto> drmSessionManager = new DefaultDrmSessionManager<>(uuid, mediaDrm, drmCallback, null, false);