MediaCapabilities.decodingInfo()
The MediaCapabilities.decodingInfo()
method, part of the Media Capabilities API, returns a promise with the tested media configuration's capabilities info; this contains the three Boolean properties supported
, smooth
, and powerefficient
, which describe whether decoding the media described would be supported, smooth, and powerefficient.
Syntax
mediaCapabilities.decodingInfo(MediaDecodingConfiguration)
Parameters
- MediaDecodingConfiguration
-
A valid
MediaDecodingConfiguration
dictionary containing a valid media decodingtype
offile
ormedia-source
and a valid media configuration: either anAudioConfiguration
or aVideoConfiguration
.
Return value
A Promise
fulfilling with an object containing three Boolean attributes:
-
supported
: Given the properties defined in theMediaConfiguration
, can the specified piece of media content be encoded (ifMediaEncodingConfiguration
is set) or decode (ifMediaDecodingConfiguration
is set) at all? If yes,supported
is true. Otherwise, it is false. -
smooth
: Given the properties defined in theMediaConfiguration
, will the playback of the specified piece of media be high quality? Will it be smooth? Ifsupported
istrue
, and playback will be smooth,smooth
is true, Otherwise, is it false. -
powerEfficient
: Given the properties defined in theMediaConfiguration
, will the playback of the specified piece of media be power efficient? Ifsupported
istrue
, 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.
Exceptions
A TypeError
is raised if the MediaConfiguration
passed to the decodingInfo()
method is invalid, either because the type is not video or audio, the contentType
is not a valid codec MIME type, the media decoding configuration is not a valid value for the media decoding type, or any other error in the media configuration passed to the method, including omitting values required in the media decoding configuration.
Example
//Create media configuration to be tested const mediaConfig = { type : 'file', // or 'media-source' audio : { contentType : "audio/ogg; codecs=vorbis", // valid content type channels : 2, // audio channels used by the track bitrate : 132700, // number of bits used to encode 1s of audio samplerate : 5200 // number of audio samples making up that 1s. }, }; // check support and performance navigator.mediaCapabilities.decodingInfo(mediaConfig).then(result => { console.log('This configuration is ' + (result.supported ? '' : 'not ') + 'supported, ' + (result.smooth ? '' : 'not ') + 'smooth, and ' + (result.powerEfficient ? '' : 'not ') + 'power efficient.') });
Specifications
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
decodingInfo |
66 |
79 |
63 |
No |
55 |
13 |
66 |
66 |
63 |
48 |
13 |
9.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaCapabilities/decodingInfo