Какое событие браузера обнаруживает, когда ваша веб-камера включается / выключается?
В настоящее время я разрабатываю прототип, который регистрирует информацию о видеочате от сторонних служб, таких как Hangouts, Zoom и т. Д.
Пока я не могу получить простое событие для входа в консоль с navigator.mediaDevices.ondevicechange
, Используя последнюю версию Chrome.
https://codepen.io/anon/pen/dqbNKR
Я использую эту ручку, и все, что я хочу сделать, это просто войти в консоль, когда моя видеокамера включается / выключается. Является ondevicechange
правильное событие?
https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/ondevicechange
Событие смены устройства отправляется экземпляру MediaDevices всякий раз, когда мультимедийное устройство, такое как камера, микрофон или динамик, подключено или удалено из системы. Это общее событие без дополнительных свойств.
Я знаю, что могу также посмотреть на потоки определенных элементов, но так как это сторонние сервисы, я не обязательно знаю, на какие элементы смотреть.
Итак, как я могу определить, когда моя веб-камера включается / выключается в стороннем приложении в браузере?
Спасибо за помощь =)
Когда я печатал это, я сталкивался с этим, но должен проверить это.
Как проверить с помощью JavaScript, что веб-камера используется в Chrome
1 ответ
Один из подходов, который, похоже, работает в Chrome 113.0.5672.93 и FF 113.0.1, — это прослушиваниеended
событие на видеодорожках:
navigator
.mediaDevices
.getUserMedia({video: {facingMode: "user"}})
.then(stream => {
stream.getVideoTracks().forEach(track => {
track.addEventListener("ended", () => {
console.log("disabled by user");
});
});
const video = document.createElement("video");
video.srcObject = stream;
video.setAttribute("playsinline", true);
video.play();
})
.catch(err => {
// permission denied
console.error(err);
});