Android Widevine DASH 实现 + ExoPlayer
Posted
技术标签:
【中文标题】Android Widevine DASH 实现 + ExoPlayer【英文标题】:Android Widevine DASH implementation + ExoPlayer 【发布时间】:2016-08-20 07:05:29 【问题描述】:我想在我的应用中播放 Widevine Modular - DASH 视频,我想使用 VideoView
或 ExoPlayer
来播放它。
是否有任何示例我可以如何设置它?或者你能给我提供如何获取许可证的示例代码吗? 我有视频的 URL 以及 Widevine 服务器的 URL。
在我们使用 Widevine 经典之前,许可请求如下所示:
private void prepareDrmInfoRequest()
mDrmInfoRequest = new DrmInfoRequest(DrmInfoRequest.TYPE_RIGHTS_ACQUISITION_INFO, "application/mp4");
mDrmInfoRequest.put("WVVideoUrlKey", "http://some_url.com/dash/1.mpd");
mDrmInfoRequest.put("WVDRMServerKey", "http://some_url.com/video/widevine_modular/?auth_token=haslůkfjlksjfljnvlakhnsufn");
mDrmInfoRequest.put("WVCAUserDataKey", "LJKHlklkhkljhKJLHuzgztfZTFZTUFzutf");
mDrmInfoRequest.put("WVPortalKey", "provider");
然后
public int processDrm()
DrmInfo df = mDrmManagerClient.acquireDrmInfo(mDrmInfoRequest);
if(df != null)
return mDrmManagerClient.processDrmInfo(df);
之后视频在 VideoView 或 ExoPlayer 上播放。
【问题讨论】:
【参考方案1】:下载exoplayer demo后,在demo exoplayer中只需要修改asset中的media.exolist.json
像这样哟:
[
"name": "Widevine DASH DRM Tests",
"samples": [
"name": "tes DRM -acquire license",
"uri": "https://YOURlinkto.mpd",
"drm_scheme": "widevine",
"drm_license_url": "https://drm-widevine-licensing.axtest.net/AcquireLicense",
"extension": "mpd",
"drm_key_request_properties":
"X-AxDRM-Message": "YOUR-xrdm-value"
]
]
【讨论】:
它(drm_key_request_properties)在我尝试播放但下载不再工作时工作。有什么需要改变的吗 第一次请求需要先激活密钥,并且需要设置密钥过期。在我的下载案例中,我将其设置为 7 天过期。【参考方案2】:我知道这是一个老问题,但如果有人还在寻找这个标准 ExoPlayer 演示还包括 Widevine 示例清单。
演示播放器可在此处获得:
https://github.com/google/ExoPlayer并且可以在以下位置的配置中看到 Widevine 清单示例:
ExoPlayer/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTest.java
要查看它正在使用中,请在存储库中搜索“DefaultDrmSessionManager”。
【讨论】:
以上是关于Android Widevine DASH 实现 + ExoPlayer的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用自己的 Web 服务器作为 Widevine 许可授权来流式传输 mpeg-dash 视频吗?
哪些 Android 版本支持 DrmManagerClient-native 中的 Widevine-modular?