MediaCapabilities.encodingInfo()
The MediaCapabilities.encodingInfo()
method, part of the MediaCapabilities
interface of the Media Capabilities API, returns a promise with the tested media configuration's capabilities information; this contains the three Boolean properties supported
, smooth
, and powerefficient
, which describe how compatible the device is with the type of media.
Syntax
encodingInfo(mediaEncodingConfiguration)
Parameters
mediaEncodingConfiguration
-
A valid MediaEncodingConfiguration
dictionary containing a valid media encoding type of record
or transmission
and a valid media configuration: either an AudioConfiguration
or VideoConfiguration
dictionary.
Return value
A Promise
fulfilling with an object containing three Boolean attributes:
-
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.
Exceptions
A TypeError
is raised if the MediaConfiguration
passed to the encodingInfo()
method is invalid, either because the type is not video or audio, the contentType
is not a valid codec MIME type, or any other error in the media configuration passed to the method, including omitting any of the media encoding configuration elements.
Examples
const mediaConfig = {
type : 'record',
video : {
contentType : "video/webm;codecs=vp8.0",
width : 1920,
height : 1080,
bitrate : 120000,
framerate : 48
}
};
navigator.mediaCapabilities.encodingInfo(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 |
encodingInfo |
67 |
79 |
63 |
No |
54 |
15.4 |
No |
67 |
63 |
No |
15.4 |
No |
See also