Spec-Zone.ru › Web APIs

MediaStreamTrack: метод applyConstraints()

Базовая Широко поддерживается *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод applyConstraints() интерфейса MediaStreamTrack применяет набор ограничений к треку. Эти ограничения позволяют веб-сайту или приложению установить идеальные значения и допустимые диапазоны значений для ограниченных свойств трека, таких как частота кадров, размеры, отмена эха и т. д.

Ограничения могут использоваться для обеспечения соответствия медиа определенным вашим предпочтениям. Например, вы можете предпочесть видео высокой плотности, но потребовать, чтобы частота кадров была немного низкой, чтобы поддерживать скорость передачи данных достаточно низкой, чтобы не перегружать сеть. Ограничения также могут указывать идеальные и/или допустимые размеры или диапазоны размеров. Подробнее о применении ваших предпочтительных ограничений см. Применение ограничений в разделе Возможности, ограничения и настройки.

Синтаксис

applyConstraints()
applyConstraints(constraints)

Параметры

constraints Необязательно

Объект MediaTrackConstraints, перечисляющий ограничения, применяемые к ограниченным свойствам трека; все существующие ограничения заменяются новыми значениями, указанными в этом объекте, а любые ограниченные свойства, не включенные в него, восстанавливаются до своих значений по умолчанию. Если этот параметр опущен, все настроенные пользовательские ограничения сбрасываются. Этот объект представляет собой базовый набор ограничений, который должен применяться для разрешения Promise. Объект может содержать расширенное свойство, содержащее массив дополнительных MediaTrackConstraints объектов, которые обрабатываются как точные требования.

Возвращаемое значение

Объект Promise, который разрешается, когда ограничения успешно применены. Если ограничения не могут быть применены, промис отклоняется с помощью объекта OverconstrainedError, который является исключением DOMException с именем OverconstrainedError и дополнительными параметрами, указывающими, что ограничения не могут быть выполнены. Это может произойти, если указанные ограничения слишком строги, чтобы найти соответствие при попытке настроить трек.

Примеры

В следующем примере показано, как указать базовый и расширенный наборы ограничений. Указывается, что страница или веб-приложение нуждается в ширине от 640 до 1280 и высоте от 480 до 720, причем последнее число в каждой паре предпочтительнее. Расширенное свойство дополнительно указывает, что предпочтительный размер изображения составляет 1920 на 1280 или соотношение сторон 1,333, если это значение недоступно. Обратите внимание, что эти ограничения также иллюстрируют то, что спецификация называет стратегией понижения требований.

const constraints = {
  width: { min: 640, ideal: 1280 },
  height: { min: 480, ideal: 720 },
  advanced: [{ width: 1920, height: 1280 }, { aspectRatio: 1.333 }],
};

navigator.mediaDevices.getUserMedia({ video: true }).then((mediaStream) => {
  const track = mediaStream.getVideoTracks()[0];
  track
    .applyConstraints(constraints)
    .then(() => {
      // Do something with the track such as using the Image Capture API.
    })
    .catch((e) => {
      // The constraints could not be satisfied by the available devices.
    });
});

Спецификации

Спецификация
Захват медиа и потоки
# dom-mediastreamtrack-applyconstraints

Совместимость браузеров

Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
applyConstraints 59 12 43 46 11 59 43 43 11 7.0 59
aspectRatio_constraint 59 ≤79 Нет 46 11 59 43 43 11 7.0 59
autoGainControl_constraint 67 ≤79 5546 54 Нет 67 5546 48 Нет 9.0 67
channelCount_constraint 59 ≤79 Нет 46 11 59 Нет 43 11 7.0 59
deviceId_constraint 59 ≤79
43До Firefox 69, Firefox поддерживал только deviceId в ограничениях, передаваемых в getUserMedia().
46 11 59
43Firefox для Android поддерживает только deviceId при использовании в ограничениях, передаваемых в getUserMedia().
43 11 7.0 59
displaySurface_constraint 107 107 Нет 93 11.1 107 Нет 73 11.3 21.0 107
echoCancellation_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59
facingMode_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59
frameRate_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59
groupId_constraint 59 ≤79 70 46 11 59 79 43 11 7.0 59
height_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59
latency_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59
logicalSurface_constraint Нет Нет Нет Нет 11.1 Нет Нет Нет 11.3 Нет Нет
noiseSuppression_constraint 67 ≤79 5546 54 Нет 67 5546 48 Нет 9.0 67
resizeMode_constraint 72 79 Нет 60 Нет 72 Нет 51 Нет 11.0 72
sampleRate_constraint 59 ≤79 Нет 46 11 59 Нет 43 11 7.0 59
sampleSize_constraint 59 ≤79 Нет 46 11 59 Нет 43 11 7.0 59
suppressLocalAudioPlayback_constraint 109 109 Нет 95 Нет 109 Нет 74 Нет 21.0 109
volume_constraint 59 ≤79 Нет 46 11 59 Нет 43 11 7.0 59
width_constraint 59 ≤79 50 46 11 59 50 43 11 7.0 59

См. также

  • MediaStream Image Capture API

© 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/MediaStreamTrack/applyConstraints

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API