我为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
为零。即响应主体是空的。
我用谷歌搜索了许多网址,只是登陆“Wrapping-and -wrappping-license-payload”网址:https://shaka-player-demo.appspot.com/docs/api/tutorial-license-wrapping.html
这是许可网址传递的唯一行:
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保护的视频没有在我们的接收器上播放。任何帮助将不胜感激。
请使用CAST ISSUE TRACKER提交问题。 https://issuetracker.google.com/issues/new?component=190205&template=814901