Я создал специальное приложение-получатель для некоторых видео с поддержкой DRM на медиасервере Azure, но сначала мне нужно получить токен на предъявителя. Что я делаю, и я отправил как 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."]}