如何从Java程序调整扬声器音量?

时间:2009-11-14 16:54:28

标签: java volume

我正在运行Win Vista,在窗口的右下方,时钟旁边有一个扬声器图标,我可以点击它并调整音量,我想知道我的Java程序中是否有方法可以自动执行此操作?

例如,当我的Java程序启动时,它会将音量调到80,当程序退出时,它会将音量调回原始音量。如果有办法实现这种效果,我不介意使用Runtime.getRuntime().exec()

3 个答案:

答案 0 :(得分:1)

Java的一个主要前提是在其上编写的应用程序在任何平台上运行。这就是为什么他们在Java 1.4 SDK中放弃了对环境变量的支持,但后来又重新启用了它。这就是为什么没有办法用“cls”这样的命令来清理Java控制台,因为它可以在某些平台上工作,但在其他平台上却不行。

话虽如此,你将无法用Java做到。您可以使用C ++创建JNI DLL,也可以使用C ++或C#创建应用程序。

有关在C ++中执行此操作的更多信息:

change volume win32 c++

答案 1 :(得分:1)

查看javax.sound API。 Here有关于此的教程,特别是here(在更改行的音量章节中),您可以阅读如何设置音量。这些知识应该提供足够的Google关键字来查找示例。

答案 2 :(得分:1)

我使用以下代码来模拟音量调整:

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

它有效!