Какое событие браузера обнаруживает, когда ваша веб-камера включается / выключается?

В настоящее время я разрабатываю прототип, который регистрирует информацию о видеочате от сторонних служб, таких как 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);
  });
Другие вопросы по тегам