Не удается использовать команду update_request_callback для отправки запроса обеспечения
Я столкнулся с той же проблемой, запросом Widevine для обеспечения доступа.
"Желательно сообщить о запросе на предоставление в качестве первого запроса на лицензирование, и приложение отправит для вас HTTP-запрос POST. После получения ответа на предоставление вы можете отправить реальный запрос на получение лицензии в виде незапрошенного запроса на получение лицензии"
Вы имели в виду использование SbDrmSessionUpdateRequestFunc для отправки сообщения на страницу, чтобы страница отправляла запрос на предоставление серверу обеспечения и получала ответ на предоставление? Страница YouTube или страница квалификации имеет эту логику?
поток Drm будет следующим, верно? если не правильно, можете дать мне подробности процесса?
SbDrmCreateSystem -> SbDrmGenerateSessionUpdateRequest -> SbDrmSessionUpdateRequestFunc (с действительным билетом и действительным идентификатором session_id для отправки запроса на предоставление) -> SbDrmUpdateSession (обновить ответ по предоставлению на CDM) -> допустимая сессия по вызову-SessionSignSignSigned_SessionSULLSUID (с помощью SbD) отправить реальный запрос лицензии) -> SbDrmUpdateSession (обновить ответ лицензии на CDM) -> SbDrmSessionUpdatedFunc (уведомить, что лицензия успешна)
Но когда я вызываю SbDrmSessionUpdateRequestFunc опубликовать URL-адрес предоставления и сообщение на странице, страница не использует URL-адрес, который я публикую на нем. Это фиксированное значение на странице на странице квалификации Eme.
страница https://yt-media-test.appspot.com/2018.html?test_type=encryptedmedia-test&command=off&disable_log=true×tamp=1517552801994 запустите первый тестовый пример, сервер лицензий имеет фиксированное значение на странице в файле https://yt-media-test.appspot.com/js/lib/streams/mediaStreams-20180119121527.js
VideoSmallCenc: ['//yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/media/oops_cenc-20121114-142.mp4', 8017271, 242.71, {'mimeType': 'video / mp4; Кодеки ="avc1.4d4015"' 'video_id': '03681262dc412c06', 'playready_signature': '448279561E2755699618BE0A2402189D4A30B03B.0CD6A27286BD2DAF00577FFA21928665DCD320C2', 'widevine_signature': '9C4BE99E6F517B51FED1F0B3B31966D3C5DAB9D6.6A1F30BB35F3A39A4CA814B731450D4CBD198FFD'}], VideoMultiKeyCenc: ['// уг-тире-MSE -test.commondatastorage.googleapis.com/unit-tests/media/tears_h264_main_720p_1500.mp4 ', 105466539, 734.17, {' mimetype ':' video / mp4; codecs = "avc1.4d401f" ',' pssh ': util.createUint8ArrayFromJSArray ([0, 0, 0, 68, 112, 115, 115, 104, 0, 0, 0, 0, 237, 239, 139, 169, 121, 214, 74, 206, 163, 200, 39, 220, 213, 29, 33, 237, 0, 0, 0, 36, 8, 1, 18, 1, 49, 26, 13, 119, 105, 100, 101, 118, 105, 110, 101, 95, 116, 101, 115, 116, 34, 10, 50, 48, 49, 53, 95, 116, 95, 49, 54, 107, 42, 2, 83, 68]), 'license_server': ' https://proxy.staging.widevine.com/proxy'}],
1 ответ
С помощью SbDrmSessionUpdateRequestFunc
обратный вызов для предоставления запроса является законным, и ваш поток выглядит правильно.
Тем не менее, веб-приложения могут игнорировать URL-адрес, указанный в запросе на обновление, и использовать собственную логику для выполнения инициализации. Кажется, вы ожидаете, что yt-media-test выполнит инициализацию, которую он не сможет выполнить. Чтобы обойти эту проблему, вы можете либо: 1) использовать youtube.com/tv (который, как известно, правильно реализует поток инициализации), чтобы подготовить устройство перед выполнением тестов EME, либо 2) выполнить собственную инициализацию.
По вопросам, связанным с yt-media-test, обратитесь к менеджеру своего аккаунта YouTube.