Appears that java’s sound API’s work well for single streams, and even for setting the input from the microphone, but not for setting the master volume level in Vista/Windows 7.
refs:
Java Sound API to access the system/master volume control in Vista and Win 7
How to adjust speaker volume from Java program?
Changing master volume level
only works on XP for the master volume
Anybody have something that’ll work for all of them (without compatibility mode or controlling the mouse to increase volume level [robot-like]).
seeing as there appears to be no native solution, my current method is to use jna to send keyboard strokes for “keyboard volume up and down”:
https://superuser.com/questions/82229/how-to-control-master-volume-in-windows-7/86227#86227
You might be able to create a dll then hook into it that is “vista volume aware” and could actually control it right, and call methods on that, using jna.
ffi/jna/jnr/jacob (to access IAudioEndpointVolume etc.) might work. (appears jna doesn’t really support COM?) ffi looks scary too, in that regard.
Could possibly use a java COM bridge to do the same. So next thought is to try either bridj or jacob