VideoDecoder:configure() 方法
注意:此功能在专用 Web 工作线程中可用。
configure()
方法是 VideoDecoder
接口的一个方法,它会将一个控制消息入队,以配置视频解码器以解码块。
语法
js
configure(config)
参数
config
-
包含以下成员的对象
codec
description
可选-
一个
ArrayBuffer
、TypedArray
或DataView
,其中包含一系列编解码器特定字节,通常称为额外数据。 codedWidth
可选-
一个整数,表示
VideoFrame
的宽度(以像素为单位),包括任何不可见的填充,在任何比率调整之前。 codedHeight
可选-
一个整数,表示
VideoFrame
的高度(以像素为单位),包括任何不可见的填充,在任何比率调整之前。 displayAspectWidth
可选-
一个整数,表示
VideoFrame
显示时的水平尺寸(以像素为单位)。 displayAspectHeight
可选-
一个整数,表示
VideoFrame
显示时的垂直尺寸(以像素为单位)。 colorSpace
-
表示
VideoColorSpace
的对象,包含以下成员 hardwareAcceleration
-
有关要使用的硬件加速方法的提示。以下选项之一:
"no-preference"
"prefer-hardware"
"prefer-software"
optimizeForLatency
-
布尔值。如果为
true
,则表示所选解码器应进行优化以最大程度地减少在输出VideoFrame
之前必须解码的EncodedVideoChunk
对象的数量。
注意:WebCodecs 编解码器注册表中的注册链接到一个规范,该规范详细说明了是否以及如何填充可选的description
成员。
返回值
无(undefined
)。
异常
TypeError
-
如果提供的
config
无效,则抛出此异常。 InvalidStateError
DOMException
-
如果
state
为"closed"
,则抛出此异常。 NotSupportedError
DOMException
-
如果提供的
config
有效,但用户代理无法提供可以解码此配置文件的编解码器,则抛出此异常。
示例
以下示例创建一个新的VideoDecoder
并使用"vp8"
编解码器、640像素的codedWidth
和480像素的codedHeight
对其进行配置。
js
const init = {
output: handleFrame,
error: (e) => {
console.log(e.message);
},
};
const config = {
codec: "vp8",
codedWidth: 640,
codedHeight: 480,
};
let decoder = new VideoDecoder(init);
decoder.configure(config);
规范
规范 |
---|
WebCodecs # dom-videodecoder-configure |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。