MediaCapabilities: encodingInfo() 方法

encodingInfo() 方法是 MediaCapabilities 接口的方法,它返回一个 Promise,该 Promise 使用经过测试的媒体配置的媒体编码功能来完成。 这包含三个布尔属性 supportedsmoothpowerefficient,它们描述了设备与媒体类型的兼容程度。

语法

js
encodingInfo(configuration)

参数

configuration

一个具有属性 type要么包含相应类型配置的 videoaudio 属性的对象

type

正在测试的媒体类型。 这将采用以下两个值之一

record

表示媒体录制配置,例如使用 MediaRecorder

webrtc

表示旨在通过电子方式传输的配置(例如使用 RTCPeerConnection)。注意:Firefox 使用 transmission 作为此类型,webrtc 不起作用。

transmission 非标准

用于 Firefox 的 webrtc 的同义词。

video

视频媒体源的配置对象。 它具有以下属性

contentType

包含有效视频 MIME 类型的字符串,以及(可选)codecs 参数

width

视频的宽度。

height

视频的高度。

bitrate

用于对视频文件的一秒钟进行编码的比特数。

framerate

组成一秒钟视频播放的帧数。

audio

音频媒体源的配置对象。 它具有以下属性

contentType

包含有效音频 MIME 类型的字符串,以及(可选)codecs 参数

channels

音频轨道使用的通道数。

bitrate

用于对音频文件的一秒钟进行编码的比特数。

samplerate

组成一秒钟音频文件的音频样本数。

返回值

一个 Promise,使用包含三个布尔属性的对象来完成

supported

如果媒体内容可以被编码,则为 true。 否则,它为 false

smooth

如果媒体播放将是流畅的(高质量),则为 true。 否则,它为 false

powerEfficient

如果媒体播放将是节能的,则为 true。 否则,它为 false

浏览器会将支持的媒体配置报告为 smoothpowerEfficient,直到记录了有关此设备的统计信息。 所有支持的音频编解码器都报告为节能。

异常

TypeError

如果传递给 encodingInfo() 方法的 configuration 无效,则会抛出该异常,这可能是由于以下任何原因

  • 该类型不是视频或音频,
  • contentType 不是有效的编解码器 MIME 类型,
  • 传递给该方法的媒体配置中存在一些其他错误,包括省略任何 configuration 元素。

示例

js
//Create media configuration to be tested
const mediaConfig = {
  type: "record", // or 'transmission'
  video: {
    contentType: "video/webm;codecs=vp8.0", // valid content type
    width: 1920, // width of the video
    height: 1080, // height of the video
    bitrate: 120000, // number of bits used to encode 1s of video
    framerate: 48, // number of frames making up that 1s.
  },
};

// check support and performance
navigator.mediaCapabilities.encodingInfo(mediaConfig).then((result) => {
  console.log(
    `This configuration is ${result.supported ? "" : "not "}supported,`,
  );
  console.log(`${result.smooth ? "" : "not "}smooth, and`);
  console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
});

规范

规范
媒体功能
# ref-for-dom-mediacapabilities-encodinginfo

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参见