在 Chromecast 上播放 Widevine DRM
Posted
技术标签:
【中文标题】在 Chromecast 上播放 Widevine DRM【英文标题】:Widevine DRM playback on Chromecast 【发布时间】:2014-10-21 17:46:23 【问题描述】:我一直在阅读有关在设备连接到 chromecast 后在 chromecast 上进行 Widevine 播放的内容。我已经在 android 和 ios 中为电影标题工作,我不确定从哪里开始,我应该将我的自定义数据作为我的自定义数据传递给播放器。我在
上简要查看了示例https://github.com/googlecast/CastMediaPlayerStreamingDRM
但我还没有尝试实现它,因为我不想旋转我的***试图将随机密钥和东西传递到接收器。由于我已经在设备上进行了所有必要的身份验证,因此我需要向接收者发送什么。
【问题讨论】:
示例项目也支持 Widevine,所以你应该看看那个项目。 @AliNaddaf 感谢您对我的问题发表评论。如果我暂时将它托管在谷歌驱动器上,是否可以让 drm 接收器用于开发目的? 在 Google Drive 上托管很好;我们只是不建议将其用于生产,否则没有技术理由阻止您使用它。说明在这里:support.google.com/drive/answer/2881970?hl=en @AliNaddaf - 我正在尝试使用此接收器播放 WV 内容:github.com/googlecast/CastReferencePlayer .. 它适用于我的 Player Ready 流,但不适用于 WV 流.. 我正在尝试了解我需要向接收器发送哪些参数才能播放..例如:主机中需要 licenseCustomData 和 licenseUrl 吗?我只需要发送 mediaElement 和 url 吗?现在,当我尝试这样做时,CC 正在下载 1 个块并在 30000 毫秒后失败,然后尝试再次下载相同的块。 【参考方案1】:我知道这已经晚了,但是对于需要帮助的其他人,您真正需要做的就是在自定义数据中传递许可证 url。
JSONObject jsonObject = new JSONObject();
try
jsonObject.put("licenseUrl", licenseUrl);
catch (JSONException e)
Utils.log("Failed to add license to Json object.");
MediaInfo mediaInfo =
new MediaInfo.Builder(videoUrl)
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setContentType("video/mp4")
.setMetadata(movieMetadata)
.setStreamDuration(currentPosition)
.setCustomData(jsonObject)
.build();
return new MediaQueueItem.Builder(mediaInfo).build();
对于接收器,请务必创建一个 CAF(不是 Receiver v2)并参考此guide 了解 Widevine 设置。服务器将需要读取许可证并允许它在接收端使用 javascript 进行 Widevine 播放。
【讨论】:
以上是关于在 Chromecast 上播放 Widevine DRM的主要内容,如果未能解决你的问题,请参考以下文章
如何在android webview中播放widevine drm内容