AudioEncoder: isConfigSupported() static method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Dedicated Web Workers.

The isConfigSupported() static method of the AudioEncoder interface checks if the given config is supported (that is, if AudioEncoder objects can be successfully configured with the given config).

Syntax

js
AudioEncoder.isConfigSupported(config)

Parameters

config

The dictionary object accepted by AudioEncoder.configure

Return value

A Promise that resolves with an object containing the following members:

supported

A boolean value which is true if the given config is supported by the encoder.

config

A copy of the given config with all the fields recognized by the encoder.

Exceptions

TypeError

Thrown if the provided config is invalid; that is, if doesn't have required values (such as an empty codec field) or has invalid values (such as a negative sampleRate).

Examples

The following example tests if the browser supports several audio codecs.

js
const codecs = ["mp4a.40.2", "mp3", "alaw", "ulaw"];
const configs = [];
for (const codec of codecs) {
  configs.push({
    codec,
    sampleRate: 48000,
    numberOfChannels: 1,
    not_supported_field: 123,
  });
}
for (const config of configs) {
  const support = await AudioEncoder.isConfigSupported(config);
  console.log(
    `AudioEncoder's config ${JSON.stringify(support.config)} support: ${
      support.supported
    }`,
  );
}

Specifications

Specification
WebCodecs
# dom-audioencoder-isconfigsupported

Browser compatibility

BCD tables only load in the browser