С помощью WebRTC несложно дать пользователю возможность выбирать источники аудио и видео в браузере. Однако не все веб-приложения для видео реализуют управление выбором источника видео с веб-камеры.
В некоторых браузерах это не проблема. Например, и Firefox, и Edge позволяют пользователям выбирать источник видео для каждого сайта отдельно. Однако хотя Google Chrome позволяет выбрать веб-камеру по умолчанию через специальный URL chrome://settings/content/camera, этот выбор камеры по умолчанию не используется WebRTC. Многие пользователи жаловались на это на форумах Google Chrome, но решения пока не предвидится.
Поэтому пользователи, которые работают с приложениями без выбора источника видео (например, vMix) в браузере без выбора источника видео по сайтам (например, Chrome), оказываются в тупике. Видеоприложения, не позволяющие выбрать камеру, в итоге делают произвольный выбор, а значит, пользователь может не суметь использовать нужную ему камеру.
К счастью, есть быстрый трюк, который позволяет заставить веб-приложение для видео в Chrome выбрать конкретную камеру.
Вот как это сделать для сервиса vmixcall.com от vMix:
- Откройте Chrome и начните сеанс видеочата.
- Откройте «Инструменты разработчика» в Chrome с помощью комбинации клавиш
⌥ Option+⌘ Cmd+iили через менюMore Tools→Developer Tools. - Вставьте следующий код на вкладку «Консоль», открытую по умолчанию, и нажмите 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. Если этот способ у вас не сработал, сообщите нам об этом в комментариях или свяжитесь с нами напрямую — мы поможем.
Вот как это выглядит:
Если вы хотите избежать необходимости в этом в будущем, порекомендуйте своему видеопровайдеру добавить выбор источника видео в приложение.
