AudioPick Versions Save

A Chrome Extension to pick a preferred audio output device for HTML5 audio and video elements

v0.3.10

4 months ago
  • Improve debug logging, e. g. inject enableDebug into content scripts running in world MAIN.
  • Fully support Deezer and SoundCloud.
  • Add a smartMicAccess mode (enabled via checkbox in the Popup) which significantly reduces microphone permissions granted by the extension.
  • Add an info message to the popup header.
  • Add a site info heading with favicon, host/domain and micPolicy.
  • No longer offer the communications device to be picked.
  • Improve default device label on Windows (and possibly MacOS).
  • Improve demo page (resources/index.*), e. g. add an AudioContext and a video in iframe example.
  • Fix/enhance communication with sub-frames, but disable injecting into all_frames for now, since changing sinkIds in sub-frames only works on same-origin or when the iframe specifies allow="microphone".

v0.3.9

5 months ago
  • Add a Popup / UI option to enable/disable content script debug messages.
  • Detect and respect site Permissions-Policy for microphone access, e. g. on https://stackoverflow.com
  • Work around a Chrome on linux bug/issue where the service worker does not wake up (fast enough) from inactive state on message events.

v0.3.8

5 months ago
  • Rewrite for Manifest V3
  • New enhanced Popup / UI with dark/light mode support
  • New icon / logo
  • Allow to store (star) a preferred audio device per domain
  • Remove option to set a global preferred device for the browser
  • Inject a content script into world:MAIN in order to find media elements which havent't been inserted into the DOM tree, i. e. sites like Spotify and SoundCloud should now work, too.
  • Minimize the number of microphone permissions added/managed by the extension
    • by resetting the permission back to ask when the default device has been chosen again for a tab/domain
    • by not having a global preferred device for the browser anymore

v0.2.2

7 years ago
  • revert page_action back to browser_action
  • code cleanup

v0.2.1

7 years ago
  • quick fix to prevent a loop caused by the observer

v0.2.0

7 years ago
  • substitute calls to getUserMedia() by get_help_with_GUM, i. e. write directly to contentSettings['microphone'] thereby allowing the modification of audio/video on unencrypted pages
  • code cleanup + better diagnostic output
  • fixes to handling of asynchronous actions, especially promises
  • overwrite devices for an entire frame set, i. e. when sub frames ask the background page for the default_no, it asks the top frame and passes this information back to the sub frame
  • popup only ever asks the top frame for its current sink_no

v0.1.4

7 years ago
  • Add 'use strict' to all scripts.
  • Inject the content script into all frames so that setSinkId() now also works for embedded audio/video (over HTTPS).
  • Only call getUserMedia() on a site (once) when a call to setSinkId actually fails. This should greatly reduce the number of sites added to the list of microphone exceptions.
  • Change browser_action into page_action
  • Immediately commit changes to the popup device list (commit button removed)
  • Remember the last temporary sink_no choice of a content page when creating the popup device list for it