MediaCapabilities: метод encodingInfo()
Базовая Широкодоступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Примечание: Эта функция доступна в Потоках Web Workers.
Метод encodingInfo() интерфейса MediaCapabilities возвращает промис, который выполняется с возможностями тестируемой конфигурации медиа для кодирования. Он содержит три булевых свойства supported, smooth, и powerefficient, которые описывают совместимость устройства с типом медиа.
Синтаксис
encodingInfo(configuration)
Параметры
configuration-
Объект со свойством
typeи либо свойствомvideoилиaudio, содержащим конфигурацию соответствующего типа:type-
Тип тестируемого медиа. Принимает одно из двух значений:
record-
Представляет конфигурацию для записи медиа, например, с помощью
MediaRecorder. webrtc-
Представляет конфигурацию, предназначенную для передачи электронными средствами (например, с помощью
RTCPeerConnection). Примечание: Firefox используетtransmissionдля этого типа, иwebrtcне работает. transmissionНестандартный-
Синоним
webrtcдля использования в Firefox.
video-
Объект конфигурации для видеоисточника медиа. Он имеет следующие свойства:
contentType-
Строка, содержащая допустимый тип MIME видео, и (необязательно)
codecsпараметр. width-
Ширина видео.
height-
Высота видео.
bitrate-
Количество бит, используемых для кодирования одной секунды видеофайла.
framerate-
Количество кадров, составляющих одну секунду воспроизведения видео.
audio-
Объект конфигурации для аудиоисточника медиа. Он имеет следующие свойства:
contentType-
Строка, содержащая допустимый тип MIME аудио, и (необязательно)
codecsпараметр. channels-
Количество каналов, используемых аудиодорожкой.
bitrate-
Количество бит, используемых для кодирования одной секунды аудиофайла.
samplerate-
Количество аудиосэмплов, составляющих одну секунду аудиофайла.
Возвращаемое значение
Промис Promise, который выполняется с объектом, содержащим три булевых атрибута:
supported-
true, если медиаконтент может быть закодирован вообще. В противном случае, значениеfalse. smooth-
true, если воспроизведение медиа будет плавным (высокого качества). В противном случае, значениеfalse. powerEfficient-
true, если воспроизведение медиа будет экономичным по энергопотреблению. В противном случае, значениеfalse.
Браузеры будут сообщать о поддержке конфигурации медиа как smooth и powerEfficient до тех пор, пока не будут записаны статистические данные об этом устройстве. Все поддерживаемые аудиокодеки сообщаются как энергоэффективные.
Исключения
TypeError-
Выбрасывается, если значение
configuration, переданное методуencodingInfo(), недействительно, что может быть по следующим причинам:- тип не видео или аудио,
contentTypeне является допустимым кодеком MIME,- существует какая-либо другая ошибка в конфигурации медиа, переданной методу, включая пропуск каких-либо
configurationэлементов.
Примеры
//Create media configuration to be tested
const mediaConfig = {
type: "record", // or 'transmission'
video: {
contentType: "video/webm;codecs=vp8.0", // valid content type
width: 1920, // width of the video
height: 1080, // height of the video
bitrate: 120000, // number of bits used to encode 1s of video
framerate: 48, // number of frames making up that 1s.
},
};
// check support and performance
navigator.mediaCapabilities.encodingInfo(mediaConfig).then((result) => {
console.log(
`This configuration is ${result.supported ? "" : "not "}supported,`,
);
console.log(`${result.smooth ? "" : "not "}smooth, and`);
console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
encodingInfo |
101 | 101 | 63Значениеwebrtc опции type называется transmission. |
87 | 15.4 | 101 | 63Значениеwebrtc опции type называется transmission. |
70 | 15.4 | 19.0 | 101 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaCapabilities/encodingInfo