How to change the audio volume while speakers remain disabled/muted?

0

By default, when you change music volume when muted, Windows will automatically unmute the speakers. Is there a way to stop Windows from unmuting the speakers? In other words, is there a way to change the volume while the speakers remain muted?


I have an ASUS gaming notebook. When sound plays while I have my headphones plugged in, both the headphones and the notebook's speakers play the sound. Normally the speakers would not make a sound when headphones are plugged in, but now they do, due to the fact that my notebook's audio port is damaged. This is very annoying, as I want to be able to play music only through my headphones.

Disabling the speakers playback device is not an option, because doing that will also disable the headphones audio. Windows does not see the plugged in headphones as a separate playback device.

Now the interesting part: I do not know if this is a bug, or intended, or maybe happening because my audio port is damaged, but if I mute my speakers, my headphones will not be muted. This bug/feature/miracle is very useful to me, as I can now play music only through my headphones.

However, I often want to change the volume, but doing this will unmute the speakers again. That's why I'm asking:

How to change the audio volume while speakers remain disabled/muted?

Rudey

Posted 2014-10-01T12:40:02.723

Reputation: 773

Answers

1

I ended up programming a WPF tray application that changes the volume on key press myself. Here's the GitHub link. Currently listens to CTRL + Shift + F10, F11 & F12 to mute, decrease and increase volume without actually unmuting the speakers.

Rudey

Posted 2014-10-01T12:40:02.723

Reputation: 773

1

It can be done from powershell as such.

Function Set_Audio ($volume){
If(-not([bool]!($Volume%2))){$Volume = $volume + 1}
$volume = $volume / 2
$wshShell = new-object -com wscript.shell;1..50 | % {$wshShell.SendKeys([char]174)};1..$Volume | % {$wshShell.SendKeys([char]175)}
$wshShell.SendKeys([char]173)
}

# Use like this.
Set_Audio -Volume 100
Set_Audio -Volume 50

Knuckle-Dragger

Posted 2014-10-01T12:40:02.723

Reputation: 1 817

See here for more - http://stackoverflow.com/a/21362870

– Knuckle-Dragger – 2014-10-02T16:36:53.423

PowerShell seems like a great tool for this! I'm not very familiar with PowerShell, but there's an issue with the function above: it does not set the audio, but increments it. Using negative values does not seem to lower the audio though. – Rudey – 2014-10-02T16:51:58.673

@RuudLenders valid range is 1-100 as a percentage. To lower the volume, use a lower number (but not a negative number) – Knuckle-Dragger – 2014-10-02T17:11:06.733

What I meant with increments is that when my volume is currently 10, calling Set_Audio -Volume 20 puts the volume on 30. – Rudey – 2014-10-02T18:57:43.187