小编Nam*_*har的帖子

带有明文密钥的 EME 不适用于存储在 S3 中的加密音频文件的预签名 URL

我已经使用 clear key 实现了 EME,遵循以下实用指南:https : //www.html5rocks.com/tutorials/eme/basics/

我使用 webm-encrypt npm 包对音频进行了加密,为它提供了一个密钥和 webm 音频文件。我在明文密钥代码中使用相同的密钥来解密音频。当我在本地使用加密的音频文件时,它工作正常,将 src 设置为:

audio.src = './encrypted.webm'
Run Code Online (Sandbox Code Playgroud)

另一方面,我将相同的加密文件存储在 s3 中。问题是,当我将音频 src 指向我的服务器 api 时,它又重定向到加密音频文件的预签名 s3 url,音频没有播放,我在控制台中看到以下错误:

无法生成许可请求类型错误:无法在“MediaKeySession”上执行“generateRequest”:initDataType 参数为空。

音频元素不为空,加密事件也被触发,但 event.initData 和 event.initDataType 都是空的。不确定我在这里缺少什么。

主文件

    "use strict";

var KEY = new Uint8Array([
  0xeb,0xdd,0x62,0xf1,0x68,0x14,0xd2,0x7b,
  0x68,0xef,0x12,0x2a,0xfc,0xe4,0xae,0x3c,
]);

var config = [
  {
    initDataTypes: ["webm"],
    videoCapabilities: [
      {
        contentType: 'video/webm; codecs="vp8"',
      },
    ],
    audioCapabilities: [
      { contentType: 'audio/webm; codecs="opus"' },
      { contentType: 'audio/webm; codecs="vorbis"' },
    ],
  },
];

var audio = document.querySelector("audio"); …
Run Code Online (Sandbox Code Playgroud)

javascript streaming amazon-s3 html5-audio eme

6
推荐指数
0
解决办法
128
查看次数

标签 统计

amazon-s3 ×1

eme ×1

html5-audio ×1

javascript ×1

streaming ×1