MediaCapabilitiesInfo

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

Media Capabilities API的**MediaCapabilitiesInfo** 接口在 MediaCapabilities接口的 MediaCapabilities.encodingInfo()MediaCapabilities.decodingInfo() 方法返回的 promise 完成时变得可用。它提供了媒体类型是否支持,在编码或解码此媒体时是否流畅和能效等信息。

属性

MediaCapabilitiesInfo 接口包含 3 个布尔属性:

  • supported: 给出 MediaConfiguration 中定义的属性,确定指定的媒体内容能否完全被 编码 (如果 MediaEncodingConfiguration 已设置) 或 解码 (如果 MediaDecodingConfiguration 已设置) 。如果是,supportedtrue. 否则为 false.
  • smooth: 给出 MediaConfiguration 中定义的属性,确定指定的媒体内容在回放时能否高质量和流畅。如果 supportedtrue, 并且回放时将流畅,smoothtrue, 否则为 false.
  • powerEfficient: 给出 MediaConfiguration 中定义的属性,确定指定的媒体内容在回放时能否高能效。如果 supportedtrue, 并且回放时将高能效,powerEfficienttrue, 否则为 false.

浏览器将报告一个支持的媒体配置为 smoothpowerEfficient 直到此设备的统计信息被记录。所有受支持的音频编解码器将报告为高能效。

范例

js
// 测试的 MediaConfigurationconst mediaConfig = {
    type : 'file',
    audio : {
        contentType : "audio/ogg",
        channels : 2,
        bitrate : 132700,
        samplerate : 5200
     },
};

// 检查支持和性能
navigator.mediaCapabilities.decodingInfo(mediaConfig).then(result => { // result 包含媒体兼容信息
    console.log('This configuration is ' +
        (result.supported ? '' : 'not ') + 'supported, ' +             // 配置的媒体能否被用户代理解码?
        (result.smooth ? '' : 'not ') + 'smooth, and ' +               // 是否流畅?
        (result.powerEfficient ? '' : 'not ') + 'power efficient.').   // 是否高能效?
});

规范

Specification
Media Capabilities
# ref-for-dom-mediacapabilities-encodinginfo

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
encodingInfo

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

参考