首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话请求与消息(ClearKey)中的EME密钥ID不同

会话请求与消息(ClearKey)中的EME密钥ID不同
EN

Stack Overflow用户
提问于 2017-06-05 09:09:38
回答 1查看 293关注 0票数 0
  1. 提供给MediaKeySession.generateRequest()的孩子和通过MediaKeyMessageEvent提供的孩子之间有什么关系?
  2. 如果它们应该是相同的-为什么它们在下面的代码中是不同的?注意,由于安全限制,这不会在这里运行

代码语言:javascript
复制
navigator.requestMediaKeySystemAccess("org.w3.clearkey", [{
    initDataTypes: ['webm'],
    audioCapabilities: [{
        contentType: 'audio/webm; codecs="opus"'
    }],
    videoCapabilities: [{
        contentType: 'video/webm; codecs="vp8"'
    },
    {
        contentType: 'video/webm; codecs="vp9"'
    }
    ],
}]).then((keySystemAccess) => {
    return keySystemAccess.createMediaKeys();
}).then((mediaKeys) => {
    var session = mediaKeys.createSession("temporary");
    var keyId = "VHM2iIMGiSg";
    var initData = '{"kids":["' + keyId + '"]}';
    console.log(keyId);

    session.addEventListener('message', (evt) => {
        var requestJson = new TextDecoder().decode(evt.message);
        var request = JSON.parse(requestJson);
        console.log(request.kids[0]);
    });

    this.session.generateRequest("webm", new TextEncoder().encode(initData));
});

产出:

VHM2iIMGiSg eyJraWRzIjpbIlZITTJpSU1HaVNnIl19

第二行的预期输出也是VHM2iIMGiSg

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-05 15:09:38

eyJraWRzIjpbIlZITTJpSU1HaVNnIl19是传递给generateRequestinitData的base64url编码值。

request.kids[0]initData的全部值而不是keyId的值的原因是,调用generateRequest时将initDataType参数设置为webm。如果initDataType参数被设置为keyids,那么request.kids[0]将是keyId的值。

initDataType参数设置为webm时,预期initData参数为一个或多个字节的单键ID。然而,当initDataType参数设置为keyids时,initData参数应该是它是base64url编码的密钥ID的数组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44365436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档