Что определяет, какие возможности перечисляются методом MediaStreamTrack.getCapabilities ()? - PullRequest
0 голосов
/ 25 октября 2018

Я работал над приложением getUserMedia и WebRTC, которое требует от меня использования информации, возвращаемой getConstraints () , getCapabilities () и getSettings() методы MediaStreamTrack.

При тестировании использование getCapabilities () на дорожке, соответствующей внешней веб-камере, может вернуть что-то вроде ...

aspectRatio: {max: 1920, min: 0.000925925925925926}
deviceId: ""
exposureCompensation: MediaSettingsRange {max: 2047, min: 3, step: 1}
exposureMode: (2) ["manual", "continuous"]
facingMode: []
focusMode: (2) ["manual", "continuous"]
frameRate: {max: 30, min: 1}
groupId: ""
height: {max: 1080, min: 1}
whiteBalanceMode: ["manual"]
width: {max: 1920, min: 1}
zoom: MediaSettingsRange {max: 5, min: 1, step: 1}

... но если focusDistance или colorTemperature (или других потенциальных членов, перечисленных здесь ) нет в списке возможностей, то что определяет управляемые настройки для камеры или другого мультимедийного устройства?

Будет ли ответ на этот вопрос также применяться к мобильным устройствам, таким как планшеты или телефоны на базе Android или iOS, которые имеют встроенные камеры и микрофоны?

1 Ответ

0 голосов
/ 28 октября 2018

Возможности, возвращаемые track.getCapabilities(), являются пересечением четырех вещей:

  1. Источник дорожки.Треки getUserMedia и getDisplayMedia имеют разные возможности.
  2. track.kind.Например, аудио возможности не возвращаются для видеодорожек и наоборот.
  3. Возможности, поддерживаемые браузером.
  4. Возможности, поддерживаемые устройством.

Вы узнаете, какие возможности поддерживает браузер, например:

console.log(navigator.mediaDevices.getSupportedConstraints());

Затем вы, как правило, полагаетесь на документацию и спецификацию, чтобы узнать, какие возможности применимы к какому методу и kind.

Новые версии браузеров, как правило, поддерживают большевозможностей.Не все браузеры пока поддерживают getCapabilities().Например, Firefox пока не , хотя в противном случае он поддерживает ограничения.

По этой причине всегда лучше проверять, что поддерживается - как показано выше, - прежде чем полагаться на возможность.

Для указанных вами возможностей, focusDistance и colorTemperature, они определены для дорожек, возвращаемых getUserMedia, но определены в спецификации расширения mediacapture-image, поэтому они должны отображаться, если ониподдерживаютсяИх отсутствие означает, что они не поддерживаются.

...