History and situation:
I am currently working on updating a Java application that was developed for a client several years ago (to run on WinXP) and is used to test and educate people with certain hearing impairments. Users who bought this app were equipped with a specific USB sound device and headphones.
One of the most important requirements for this software is that sound must be reproduced for the user at certain decibel sound levels. Using the Java Sound API, the application was developed to dynamically adjust the volume of Windows to the calculated levels (based on measurements taken during calibration of the USB audio device and headphones during development).
Problem:
Now the application needs to be updated to support Windows Vista and Windows 7, however, due to the new Windows sound architecture for each application, I could not find a way to access the Master / System volume using the Java Sound API.
For Windows only, Volume Volume Control is not reduced, since it is relative to the system volume, and there is no way to guarantee that the user will hear the output sound at a certain known level.
- , Java, , ? , - , ? (, JNI C - JNI ... , ?)