Start

heckmeck!

Nerd content and
cringe since 1999
Alexander Grupe
Losso/AttentionWhore

May I present to you: The worst possible way to react on volume changes in a media player. I don’t know if any other video streaming platforms do this, but here’s ARD Mediathek from Germany’s public broadcasting station ARD:

It might be a little hard to make out, but in the video you see:

  • The Windows slider for the system-wide volume control on the left,
  • the video player with its own volume control, and
  • my hand fiddling around with my USB volume control thingie.

If you look closely, you will notice that the volume control knob – one of these handy gadgets:

– is controlling both the system-wide (global) volume and the media player’s own playback volume. You may also see why this is confusing:

  • It is hard to adjust the media player’s volume in small steps, as it gets adjusted in two places at once, doubling the effect.
  • The media player’s volume control might “hit a wall” while the global volume still has room for adjustment, or vice versa. This way, the perceived playback volume isn’t related to the angle of the volume knob anymore: The global volume setting and playback volume setting can and will differ in surprising ways, depending on when and how much you turned the knob.
  • For example: If I want to turn down the volume real quick, the media player’s playback might be muted way before the global volume is muted. So, while I might think I’ve muted everything and can make a telephone call without interruptions, the overall system isn’t really muted, and a messenger notification or some other system sound might pop in very loudly.

If you add the mute function to the mix – the USB knob mutes everything when you press it – you can maneuver yourself into a situation where the global system volume and the media player disagree on whether everything is muted or not. You will not be able to unmute the stream unless you use your mouse to explicitly unmute the media player only.

What’s going on?

Apparently, the browser receivces “global volume adjustment” events, or at least the input events causing the change in system-wide volume.

I have mixed feelings about this – a mix of anger and disgust.

Peeking into the player’s source code, it appears that, yes, there are indeed volume control key events, and that some programmer tried to be clever and handle them in the player:

    ...
    case "audiovolumeup":
        s.stopImmediatePropagation(),
        s.preventDefault(),
        this.handleVolume(10);
        break;
    case "audiovolumedown":
        s.stopImmediatePropagation(),
        s.preventDefault(),
        this.handleVolume(-10);
        break;

This is madness! Why would you ever want to react on a global volume change request in the browser? Why does the browser even see those events? (All this is also applicable to your keyboard’s volume control keys, by the way, if you happen to have one of them fancy “multimedia keyboards”…)

It’s stupid – let’s use it!

Instead of just ranting about this, I decided to make use of this stupid feature. Plug in your USB volume control and play a nice round of Knob-Out – a breakout clone where you control the paddle on the bottom of the screen with your volume control knob!

Click to play

For obvious reasons, the volume will change between loud and quiet while playing. :)

previous next close
eie