【发布时间】:2019-04-11 09:37:17
【问题描述】:
我已经为 Azure 媒体服务器上的一些启用 DRM 的视频创建了一个自定义接收器应用程序,但我必须先获取一个不记名令牌。我这样做了,我已经在发件人请求中作为 customData 发送了。我还创建了一个类来处理 MPEG-DASH 清单并获取许可证获取 URL。这是我拥有的部分。
/** variable declaration, for
* CastReceiverContext, PlaybackConfig, PlayerManager, etc....
*/
playerManager.setMediaPlaybackInfoHandler((loadRequest, playbackConfig) => {
if (loadRequest.media.customData && loadRequest.media.customData.bearerToken {
bearerToken = loadRequest.media.customData.bearerToken;
}
});
playbackConfig.manifestHandler = (manifestString) => {
const mh = DashManifestParser(manifestString);
const licenseUrl = mh.licenseAcquisitionUrl();
if (licenseUrl) {
playbackConfig.licenseUrl = licenseUrl;
}
};
playbackConfig.licenseRequestHandler = (request) => {
console.log("I AM REQUESTING THE LICENSE NOW. WATCH THIS. NO, REALLY!");
};
如何将其作为 DRM 请求的一部分进行处理?我实际上找不到将不记名令牌注入许可证获取 URL 的正确位置。我了解此时,我需要使用不记名令牌向https://thestacks.keydelivery.eastus.media.azure.net/Widevine/?kid=28ab28d4-ecca-fake-ckid-801ba72c1fe8 发送请求。我假设这是由接收器应用程序自动完成的,但事实并非如此。甚至 playbackConfig.licenseRequestHandler 也从未被调用过。我假设即使我的函数没有完成它应该做的事情,我也会在调试器中看到一个令人讨厌的日志——但什么也没有显示,但在 40 秒左右出现最终错误:{"shakaErrorCode":6006,"shakaErrorData":["Generate request failed."]}
【问题讨论】:
-
你能解决这个问题吗?
标签: chromecast google-cast bearer-token azure-media-services