API возможностей медиа
Базовая Широко доступна *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
Примечание: Эта функция доступна в Web Workers.
API возможностей медиа позволяет разработчикам определять возможности устройства по декодированию и кодированию, предоставляя информацию, например, о поддержке медиа и о том, должна ли воспроизведение быть плавной и энергоэффективной, с обратной связью в реальном времени о воспроизведении для лучшего адаптивного потокового вещания и доступа к информации о свойствах дисплея.
Концепции
Существует множество кодеков видео и аудио. Разные браузеры поддерживают разные типы медиа, и новые типы медиа постоянно разрабатываются. С помощью API возможностей медиа разработчики могут гарантировать, что каждый пользователь получает лучшую скорость передачи данных и экономию места для своего браузера, устройства и операционной системы.
Использование аппаратного или программного декодирования устройством влияет на плавность и энергоэффективность декодирования видео и эффективность воспроизведения. API возможностей медиа позволяет определить, какие кодеки поддерживаются и насколько эффективно будет воспроизведение медиафайла с точки зрения плавности и энергоэффективности.
API возможностей медиа предоставляет более мощные функции, чем, скажем, MediaRecorder.isTypeSupported() или HTMLMediaElement.canPlayType(), которые только охватывают общую поддержку браузера, а не производительность. API также предоставляет возможность доступа к информации о свойствах дисплея, такой как поддерживаемая гамма, возможности динамического диапазона и обратную связь в реальном времени о воспроизведении.
Для проверки поддержки, плавности и энергоэффективности кодирования и декодирования видео или аудиоконтента используйте методы MediaCapabilities интерфейса encodingInfo() и decodingInfo().
Информация о возможностях медиа позволяет веб-сайтам включить адаптивное потоковое вещание для изменения качества контента на основе фактического качества, воспринимаемого пользователем, и реагировать на использование ЦП/графического процессора в реальном времени.
Интерфейсы
MediaCapabilities-
Предоставляет информацию о декодирующих возможностях устройства, системы и браузера на основе кодеков, профилей, разрешения и битрейтов. Эта информация может быть использована для предоставления пользователю оптимальных потоков медиа и определения, должна ли воспроизведение быть плавной и энергоэффективной.
Расширения для других интерфейсов
-
Объект
MediaCapabilities, который может предоставлять информацию о декодирующих и кодирующих возможностях для данного формата медиа и возможностях вывода. -
Объект
MediaCapabilities, который может предоставлять информацию о декодирующих и кодирующих возможностях для данного формата медиа и возможностях вывода.
Примеры
Обнаружение поддержки аудиофайлов и ожидаемой производительности
В этом примере определена конфигурация аудио, затем проверяется, поддерживает ли пользовательский агент декодирование этой конфигурации медиа и будет ли она работать эффективно с точки зрения плавности и энергоэффективности.
if ("mediaCapabilities" in navigator) {
const audioFileConfiguration = {
type: "file",
audio: {
contentType: "audio/mp3",
channels: 2,
bitrate: 132700,
samplerate: 5200,
},
};
navigator.mediaCapabilities
.decodingInfo(audioFileConfiguration)
.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.`);
})
.catch(() => {
console.log(`decodingInfo error: ${contentType}`);
});
}
Спецификации
| Спецификация |
|---|
| Возможности медиа # media-capabilities-interface |
Совместимость с браузерами
| Десктоп | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Media_Capabilities_API |
66 | 79 | 63 | 53 | 13 | 66 | 63 | 48 | 13 | 9.0 | 66 |
decodingInfo |
66["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
79["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
63["Значениеwebrtc параметра type называется transmission.", "До Firefox 101, decodingInfo() игнорировал параметры codecs для кодеков av01 (обрабатывая их как av1)."] |
53["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
13 | 66["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
63["Значениеwebrtc параметра type называется transmission.", "До Firefox for Android 101, decodingInfo() игнорировал параметры codecs для кодеков av01 (обрабатывая их как av1)."] |
48["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
13 | 9.0["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
66["codecs строка может содержать любой поднабор необязательных параметров (должны быть все или ни одного).", "Возникают ошибки, если codecs строка содержит неожиданные символы (должен быть оценен строка до символа)."] |
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/Media_Capabilities_API