MediaCapabilities: encodingInfo() 方法
encodingInfo()
方法是 MediaCapabilities
接口的方法,它返回一个 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
。 smooth
-
如果媒体播放将是流畅的(高质量),则为
true
。 否则,它为false
。 powerEfficient
-
如果媒体播放将是节能的,则为
true
。 否则,它为false
。
浏览器会将支持的媒体配置报告为 smooth
和 powerEfficient
,直到记录了有关此设备的统计信息。 所有支持的音频编解码器都报告为节能。
异常
TypeError
-
如果传递给
encodingInfo()
方法的configuration
无效,则会抛出该异常,这可能是由于以下任何原因- 该类型不是视频或音频,
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.`);
});
规范
规范 |
---|
媒体功能 # ref-for-dom-mediacapabilities-encodinginfo |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。