Ray,我们将逐一介绍所有(媒体)流。

Joe Medley
Joe Medley

目前,在 Chrome 中使用媒体来源扩展程序 (MSE) 时,无法在加密流和清除流之间切换。实际上,MSE 规范并没有禁止这样做。此限制主要在于媒体流水线的设置方式以支持加密媒体扩展 (EME)

MSE 要求媒体流从包含编解码器初始化数据和加密信息的初始化段开始。通常,初始化段位于媒体文件的开头。因此,当媒体通过下载或 MSE 附加到媒体元素时,它们“正常工作”。

当您尝试在流中更改媒体特性时,就会出现此问题。更改媒体特性需要传递新的初始化区段。对于大多数特征而言,这是可行的。继续播放。加密设置例外。第一个初始化片段的加密设置仅表示是否可以加密流片段,这意味着可以将清晰的媒体片段插入音频流中。由此推论的一个推论是,即使只有单个加密段,未加密的流也要求在初始化段中包含加密信息。因此,广告插入功能需要采用不适用于其他平台的解决方法。

从 Chrome 58 开始,所有这一切都会发生变化。现在,您可以在同一数据流中 在加密和未加密之间切换。这样可以通过匹配 Firefox 和 Edge 中已有的行为来提高兼容性。

有几点需要注意。首先,如果您预计媒体流中包含任何加密片段,则必须预先设置 MediaKeys。像以前一样,您不能在同一来源中混用 HTTP 和 HTTPS。