MediaCapabilities: encodingInfo() 方法
注意:此功能在 Web Workers 中可用。
MediaCapabilities 接口的 encodingInfo() 方法会返回一个 Promise,该 Promise 会解析为测试的媒体配置的编码媒体能力。这包含三个布尔属性 supported、smooth 和 powerefficient,它们描述了设备与该媒体类型的兼容程度。
语法
encodingInfo(configuration)
参数
configuration-
一个包含
type属性以及 video 或 audio 属性(包含相应类型的配置)的对象。type-
正在测试的媒体类型。这有两个可能的值:
record-
表示用于录制媒体的配置,例如使用
MediaRecorder。 webrtc-
表示用于通过电子方式传输(例如,使用
RTCPeerConnection)的配置。注意: Firefox 在此类型中使用transmission,而webrtc不起作用。 transmission非标准-
Firefox 中使用的
webrtc的同义词。
video-
视频媒体源的配置对象。它具有以下属性:
audio-
音频媒体源的配置对象。它具有以下属性:
contentType-
一个包含有效的音频 MIME 类型以及(可选的)
codecs参数的字符串。 channels-
音频轨道使用的声道数。
bitrate-
用于编码音频文件每秒的比特数。
samplerate-
构成音频文件每秒的音频采样数。
返回值
一个 Promise,它会解析为一个包含三个布尔属性的对象。
supported-
如果媒体内容根本无法编码,则为
true。否则为false。 平滑-
如果媒体播放将是流畅的(高质量),则为
true。否则为false。 powerEfficient-
如果媒体播放将是节能的,则为
true。否则为false。
浏览器将报告支持的媒体配置为 smooth 和 powerEfficient,直到设备上的统计数据被记录为止。所有支持的音频编解码器都被报告为节能。
异常
TypeError-
当传递给
encodingInfo()方法的configuration无效时会抛出,原因可能包括以下任何一项:- 类型不是 video 或 audio,
contentType不是有效的编解码器 MIME 类型,- 传递给方法的媒体配置中存在其他错误,包括省略了任何
configuration元素。
示例
// 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.`);
});
规范
| 规范 |
|---|
| Media Capabilities # dom-mediacapabilities-encodinginfo |
浏览器兼容性
加载中…