【发布时间】:2019-08-27 07:33:55
【问题描述】:
我为 chromecast 编写了一个自定义接收器来处理受 DRM 保护的内容,但对许可证服务器的调用似乎存在问题。许可证由 WideVine 管理。
演员从一个 Android 发件人应用启动,其许可证 URL 以CustomData 传递。在接收器上启动播放器后,调试器会抛出错误:[cast.framework.media.ShakaPlayer] category: 6 code: 6008,即 LICENSE_RESPONSE_REJECTED (https://shaka-player-demo.appspot.com/docs/api/shaka.util.Error.html),MEDIA_FINISHED 核心事件由endedReason: "ERROR" 触发。受 DRM 保护的视频无法播放。
查看 devtools 中的网络选项卡,我发现来自许可证服务器的响应标头的 Content-Length 为零。即响应正文为空。
我在 Google 上搜索了许多网址,结果却发现了同一个“包装和解包许可证有效负载”网址:https://shaka-player-demo.appspot.com/docs/api/tutorial-license-wrapping.html
这是唯一传递许可证 URL 的行:
const playbackConfig = new cast.framework.PlaybackConfig();
// Update playback config licenseUrl according to provided value in load request.
context
.getPlayerManager()
.setMediaPlaybackInfoHandler((loadRequest, playbackConfig) => {
if (
loadRequest.media.customData &&
loadRequest.media.customData.licenseUrl
) {
playbackConfig.licenseUrl = loadRequest.media.customData.licenseUrl;
}
return playbackConfig;
});
我无法弄清楚这是什么原因,以及为什么受 DRM 保护的视频无法在我们的接收器上播放。任何帮助将不胜感激。
【问题讨论】:
-
您好,欢迎来到 Stackoverflow。您的问题格式正确,包含良好的背景信息。它只是缺少一个实际的问题。你在问什么?
标签: javascript google-cast widevine