我想在我的应用程序中播放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演示后,在exoplayer演示中,您只需更改媒体即可。外部列表。资产中的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"
}
}
]
}
]
我意识到这是一个老问题,但如果有人仍在寻找这个问题,标准的ExoPlayer演示也包括widevine示例。
演示播放器可在以下位置使用:
widevine清单示例可以在以下位置的配置中看到:
ExoPlayer/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTest。JAVA
要查看它的使用情况,请在存储库中搜索“DefaultDrmSessionManager”。
问题内容: 我正在学习Java,但是在和接口上找不到任何好的解释。 当我实现an时,我的Eclipse IDE创建了一个方法。 我可以在没有界面的情况下关闭流。但是,我不明白如何使用接口实现该方法。而且,此接口的目的是什么? 我也想知道:如何检查是否真的关闭? 我正在使用下面的基本代码 问题答案: 在我看来,您对接口不是很熟悉。在您发布的代码中,您无需实现。 您仅需要(或应该)实现,或者如果您将要
SPDY 使用 TLS 的扩展称为 Next Protocol Negotiation (NPN)。在Java 中,我们有两种不同的方式选择的基于 NPN 的协议: 使用 ssl_npn,NPN 的开源 SSL 提供者。 使用通过 Jetty 的 NPN 扩展库。 在这个例子中使用 Jetty 库。如果你想使用 ssl_npn,请参阅https://github.com/benmmurphy/ss
> 我知道Sqoop中可用的选项,但如果我是正确的,我想知道Sqoop是如何在实时实现中使用的(通常) 1.1sqoop命令放在shell脚本中,从调度程序/事件触发器调用。我可以有实时代码-这方面的例子,特别是在shell脚本中向Sqoop动态传递参数(如表名)。 1.2相信Ooozie工作流也可以使用。请举例说明 抱歉问了太多问题。我没有看到任何关于如何在实时场景中使用这些组件的文章/博客。
问题内容: 今天,我有一个采访上,我问候选人很平常和基本的问题有关的区别和。我以为他会回答类似这样的,但他说,这些方法基本上是一样的,而且极有可能是用在它里面,但本身并不需要外部锁。这不是完全正确的答案,因为在JDK 1.6中此方法具有以下签名。 但是我的第二个想法是,这不是那么可笑。可以使用定时等待来达到相同的效果。看一下以下代码片段: 在这种情况下,一个对象特别用于同步块内部方法。我假设Sun
Web套接字不仅在Web中而且在移动行业中都发挥着关键作用。Web套接字的重要性如下。 Web套接字(如名称所示)与Web相关。Web由一些浏览器的技术组成; 它是广泛的通信平台,适用于大量设备,包括台式电脑,笔记本电脑,平板电脑和智能手机。 利用Web套接字的HTML5应用程序可以在任何支持HTML5的Web浏览器上运行。 主流操作系统支持Web套接字。移动行业的所有主要参与者都在自己的原生应用
问题内容: 考虑以下代码: writer.c reader.c 我的问题是: 由于事先不知道foo和bar将有多少个字节,我如何知道要从reader.c读取多少个字节? 因为例如,如果我在reader中读取10个字节,而foo和bar小于10个字节,那么我会将它们都放在同一个变量中,而这是我不希望的。 理想情况下,我将对每个变量都具有一个读取功能,但是我又一次事先不知道数据将具有多少字节。 我考虑
使用字典,很容易在 Python 中实现邻接表。在我们的 Graph 抽象数据类型的实现中,我们将创建两个类(见 Listing 1和 Listing 2),Graph(保存顶点的主列表)和 Vertex(将表示图中的每个顶点)。 每个顶点使用字典来跟踪它连接的顶点和每个边的权重。这个字典称为connectedTo 。 下面的列表展示了 Vertex 类的代码。构造函数只是初始化 id ,通常是一
我尝试实现一个类似于的值模板,但只有当类型在constexpr环境中可复制时才为true(即其复制构造函数是constexpr限定的)。我得出了以下代码: 现在我问自己这是否符合标准,因为编译器似乎不同意输出。https://godbolt.org/g/aaqoah 编辑(C++17个功能): 在使用C++17的新的自动非类型模板类型实现略有不同的时,当用取消引用constexpr表达式中的nul