Web/API/MediaCapabilitiesInfo

From Get docs

The MediaCapabilitiesInfo interface of the Media Capabilities API is made available when the promise returned by the MediaCapabilities.encodingInfo() or MediaCapabilities.decodingInfo() methods of the MediaCapabilities interface fulfills, providing information as to whether the media type is supported, and whether encoding or decoding such media would be smooth and power efficient.

Properties

The MediaCapabilitiesInfo interface contains three Boolean attribues:

  • supported: Given the properties defined in the MediaConfiguration, can the specified piece of media content be encoded (if MediaEncodingConfiguration is set) or decode (if MediaDecodingConfiguration is set) at all? If yes, supported is true. Otherwise, it is false.
  • smooth: Given the properties defined in the MediaConfiguration, will the playback of the specified piece of media be high quality? Will it be smooth?  If supported is true, and playback will be smooth, smooth is true, Otherwise, is it false.
  • powerEfficient: Given the properties defined in the MediaConfiguration, will the playback of the specified piece of media be power efficient? If supported is true, and playback will be power efficient, powerEfficient is true, Otherwise, is it false.

Browsers will report a supported media configuration as smooth and powerEfficient until stats on this device have been recorded. All supported audio codecs are reported to be power efficient.

Example

// MediaConfiguration to be tested
const mediaConfig = {
    type : 'file', 
    audio : {
        contentType : "audio/ogg",
        channels : 2,   
        bitrate : 132700, 
        samplerate : 5200 
     }, 
}; 

// check support and performance 
navigator.mediaCapabilities.decodingInfo(mediaConfig).then(result => { // result contains the media capabilities information
    console.log('This configuration is ' +                     
        (result.supported ? '' : 'not ') + 'supported, ' +             // Can the media, as configured, be decoded by the user agent
        (result.smooth ? '' : 'not ') + 'smooth, and ' +               // is it smooth?
        (result.powerEfficient ? '' : 'not ') + 'power efficient.')    // is it power efficient?
});

Specifications

Specification Status Comment
Media CapabilitiesThe definition of 'MediaCapabilitiesInfo' in that specification. Draft Initial definition

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

MediaCapabilitiesInfo

Experimental'

Chrome

Full support 66

Edge

Full support ≤79

Firefox

Full support 63

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

Full support 63

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 9.0

powerEfficient

Experimental'

Chrome

Full support 66

Edge

Full support ≤79

Firefox

Full support 63

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

Full support 63

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 9.0

smooth

Experimental'

Chrome

Full support 66

Edge

Full support ≤79

Firefox

Full support 63

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

Full support 63

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 9.0

supported

Experimental'

Chrome

Full support 66

Edge

Full support ≤79

Firefox

Full support 63

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

Full support 63

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 9.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.


See also