A Chrome Extension to pick an audio output device for HTML5 audio and video elements.
In 0.4.0 manifest v3 was implemented.
- known issue: switching audio device immediately on page start causes glitches.
In 0.3.0 saving deviceId for a domain became possible.
The extension patches HTML5 audio and video .play() method and manipulates the sinkId
in order to switch to the desired audio output device.
It also does not and will never work with AudioContext cause setSinkId() is not implemented for it.
To not overhead every page with script injection sometimes it requires to pause/play media on initialization.
Note that the API requires a successful call to getUserMedia()
for every site with audio sinks that
need to be manipulated.
To get a production build, you can run:
npm run build
To get a development build, you can run:
npm run watch
The main difference is that watch
will automatically turn on verbose logging and setup the necessary machinery to
automatically reload the extension whenever a change is made in the code.
No matter the type of build you pick, you will have to load the dist
folder as an unpacked extension in your browser.