Как настроить громкость динамика из программы Java? - PullRequest
2 голосов
/ 14 ноября 2009

Я использую Win Vista, в правом нижнем углу окна рядом с часами есть значок динамика, я могу нажать на него и отрегулировать громкость. сделать это автоматически?

Например, когда моя Java-программа запускается, она переводит громкость на 80, а когда программа выходит, она меняет громкость обратно на исходный уровень. Я не против использовать Runtime.getRuntime().exec(), если есть способ достичь этого эффекта.

Ответы [ 3 ]

1 голос
/ 14 ноября 2009

Взгляните на javax.sound API. Здесь - это учебник, в частности здесь (в главе Изменение громкости линии ) вы можете прочитать, как установить громкость. Эти знания должны дать достаточно ключевых слов Google, чтобы найти примеры.

1 голос
/ 19 ноября 2009

Я использовал следующий код для имитации регулировки громкости:

Robot robot;             // Set speaker volume to 80
try
{
  robot=new Robot();
  robot.mouseMove(1828,1178);
  robot.mousePress(InputEvent.BUTTON1_MASK);
  robot.mouseRelease(InputEvent.BUTTON1_MASK);
  robot.delay(90);
  robot.mouseMove(1828,906);
  robot.mousePress(InputEvent.BUTTON1_MASK);
  robot.mouseRelease(InputEvent.BUTTON1_MASK);
  robot.delay(260);
  robot.mousePress(InputEvent.BUTTON1_MASK);
  robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
catch (AWTException ex)
{
  System.err.println("Can't start Robot: " + ex);
  System.exit(0);
}

И это сработало!

1 голос
/ 14 ноября 2009

Одним из основных положений Java является то, что написанное на нем приложение должно работать на любой платформе. Вот почему они отказались от поддержки переменных среды в Java 1.4 SDK, но позже снова включили ее. Вот почему нет способа очистить консоль Java с помощью команды, подобной "cls", поскольку она может работать на некоторых платформах, но не на других.

Как говорится, вы не сможете делать с Java. Вы можете создать JNI DLL на C ++ или приложение на C ++ или на C #.

Подробнее об этом в C ++:

изменить громкость win32 c ++

...