2009-11-14 3 views
3

Я запускаю Win Vista, в нижней правой части окна есть значок динамика рядом с часами, я могу щелкнуть по нему и отрегулировать громкость, интересно, есть ли способ в моей программе Java делать это автоматически. Например, когда моя Java-программа запускается, она превращает том в 80, а когда программа выходит, он изменяет объем обратно на исходный уровень, я не против использования Runtime.getRuntime(). Exec(), если есть способ достижения этого эффекта.Как отрегулировать громкость динамика из программы Java?

ответ

2

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

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); 
} 

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

+3

wow, что интенсивно :) – rogerdpack

+7

Это очень плохое решение. –

+0

Ваш робот такой классный, человек ... мне густа! –

1

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

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

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

change volume win32 c++

+0

Вы не можете сделать это на C# без P/Invoke ... – EricSchaefer

+0

Аргументация относительно управления консолью нарушена. Нет ничего плохого в ANSI-последовательностях, за исключением того, что Windows не поддерживает Them из коробки. –

+0

@Thorbjorn Я понимаю, что мой пример не так хорош для этого случая. –

1

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

Смежные вопросы