Перейти к основному содержимому

Как изменить источник видео веб-камеры в веб-приложениях, которые этого не поддерживают

Aidan Fitzpatrick

Опубликовано 25 августа 2020 г.· Обновлено 17 ноября 2020 г.

Cover image for: Как изменить источник видео веб-камеры в веб-приложениях, которые этого не поддерживают

С помощью WebRTC несложно дать пользователю возможность выбирать источники аудио и видео в браузере. Однако не все веб-приложения для видео реализуют управление выбором источника видео с веб-камеры.

В некоторых браузерах это не проблема. Например, и Firefox, и Edge позволяют пользователям выбирать источник видео для каждого сайта отдельно. Однако хотя Google Chrome позволяет выбрать веб-камеру по умолчанию через специальный URL chrome://settings/content/camera, этот выбор камеры по умолчанию не используется WebRTC. Многие пользователи жаловались на это на форумах Google Chrome, но решения пока не предвидится.

Поэтому пользователи, которые работают с приложениями без выбора источника видео (например, vMix) в браузере без выбора источника видео по сайтам (например, Chrome), оказываются в тупике. Видеоприложения, не позволяющие выбрать камеру, в итоге делают произвольный выбор, а значит, пользователь может не суметь использовать нужную ему камеру.

К счастью, есть быстрый трюк, который позволяет заставить веб-приложение для видео в Chrome выбрать конкретную камеру.

Вот как это сделать для сервиса vmixcall.com от vMix:

  1. Откройте Chrome и начните сеанс видеочата.
  2. Откройте «Инструменты разработчика» в Chrome с помощью комбинации клавиш ⌥ Option + ⌘ Cmd + i или через меню More Tools → Developer Tools.
  3. Вставьте следующий код на вкладку «Консоль», открытую по умолчанию, и нажмите Enter:
function gotDevices(deviceInfos) {
  // Look for the Reincubate Camo video input device.
  var deviceId;
  for (deviceInfo of deviceInfos) {
    if (deviceInfo.kind === 'videoinput' && deviceInfo.label === 'Reincubate Camo') {
      deviceId = deviceInfo.deviceId
      break;
    }
  }
  if (deviceId) {
    const constraints = {
      audio: true,
      video: { deviceId: { exact: deviceId } }
    };
    navigator.mediaDevices.getUserMedia(constraints).then(gotStream);
  } else {
    console.error('Unable to find Reincubate Camo video input device.');
  }
}
function gotStream (stream) {
  // Tell the vMix Call session to switch to a different stream.
  try {
    session.gotLocalStream(stream);
  } catch {
    console.error('Unable to trigger vMix Call session stream update.');
  }
}
// Ask the browser for a list of media devices.
navigator.mediaDevices.enumerateDevices().then(gotDevices)

После этого Chrome должен автоматически переключиться на источник видео Camo. Если этот способ у вас не сработал, сообщите нам об этом в комментариях или свяжитесь с нами напрямую — мы поможем.

Вот как это выглядит:

Если вы хотите избежать необходимости в этом в будущем, порекомендуйте своему видеопровайдеру добавить выбор источника видео в приложение.


Об авторе

Aidan Fitzpatrick

Основатель, генеральный директор

Aidan основал Reincubate в 2008 году, создав первый в мире инструмент восстановления данных для iOS. С тех пор он превратил компанию в одного из ведущих в мире независимых поставщиков программного обеспечения (ISV), сотрудничая с такими компаниями, как AMD, Qualcomm и HP, чтобы создавать значимые функции машинного обучения для видеопрограмм, главным примером которых служит экосистема приложений Camo. Под руководством Aidan Reincubate четыре раза получала высшую бизнес-награду Великобритании, вошла в список The Sunday Times 100 Tech и была отмечена номинациями на Apple Design Award и в App Store. Его работы и методы нередко цитируются в научных статьях по мобильной криминалистике, а его приглашают выступать на мероприятиях таких компаний, как Google, Microsoft и Snap.


Похожие статьи

Нужна помощь?

Мы стараемся отвечать на все сообщения в течение одного рабочего дня.

support@reincubate.com
Помощь