Android Widevine DASH 实现 + ExoPlayer
Android Widevine DASH implementation + ExoPlayer
我想在我的应用程序中播放 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 上播放。
我知道这是一个老问题,但如果有人仍在寻找这个问题,标准的 ExoPlayer 演示也包括广泛的示例清单。
演示播放器可在此处获得:
并且可以在以下位置的配置中看到 widevine 清单示例:
ExoPlayer/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTest.java
要查看它的使用情况,请在存储库中搜索 'DefaultDrmSessionManager'。
下载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"
}
}
]
}
]
我想在我的应用程序中播放 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 上播放。
我知道这是一个老问题,但如果有人仍在寻找这个问题,标准的 ExoPlayer 演示也包括广泛的示例清单。
演示播放器可在此处获得:
并且可以在以下位置的配置中看到 widevine 清单示例:
ExoPlayer/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTest.java
要查看它的使用情况,请在存储库中搜索 'DefaultDrmSessionManager'。
下载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"
}
}
]
}
]