javascriptbrowserheadphones

How to detect whether a headphone is inserted or removed in JavaScript?


Is there any event in JavaScript, I can listen to in browser, through which we can know whether headphones are inserted or removed?

I assume if we are able to iterate over devices of audio output in JavaScript, is there a possibility, we can deduct the change in the number of audio output devices?


Solution

  • You can use the following: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices

    example:

    navigator.mediaDevices.addEventListener('devicechange', () => {
      // Do whatever you need to with the devices
      // Maybe use enumerateDevices() to see what connected
    });
    

    You could check the devices already connected from the following or call it on devicechange:

    navigator.mediaDevices.enumerateDevices()
      .then(devices => {
        // Check the connected devices
        console.log(devices);  
      });