1

I'm developing an application that needs to control the volume level of other processes on a Windows 7+ system. To do this I plan to make use of Windows Core Audio, in particular I am testing out the solution provided here.

At the moment I am just printing out the values of the different processes in the mixer like so:

foreach (string name in EnumerateApplications())
{
    txt.Text += "[" + name + "][" + Test.GetApplicationVolume(name) + "]\r\n";
}

txt is a Textbox on a form.

Everything is working fine with the exception of Adobe Flash Player (v. 11.7.700.169). I am able to read the correct volume level for, say, Firefox, but Flash just doesn't show up. Additionally, I have two sessions that have no name but don't seem to be related to Flash.

Volume mixer

The output of my program is (note: I have two Firefox windows open):

[@%SystemRoot%\System32\AudioSrv.Dll,-202][0]
[][100]
[][100]
[Mozilla Firefox][78]
[Mozilla Firefox][78]

My question is: why is Flash not being enumerated? Why don't I see an entry for ~50%?

I've spent a long time digging around and the best I could find is this bug report at Adobe. Although it doesn't specifically address my problem, it mentions something about an issue with the volume controller session... could be related?

Community
  • 1
  • 1
ose
  • 4,065
  • 2
  • 24
  • 40

0 Answers0