如何从Java程序调整扬声器音量?
我正在运行Win Vista,在窗口的右下角,时钟旁边有一个扬声器图标,我可以点击它并调整音量,我想知道我的Java程序中是否有办法自动执行此操作如何从Java程序调整扬声器音量?,java,volume,Java,Volume,我正在运行Win Vista,在窗口的右下角,时钟旁边有一个扬声器图标,我可以点击它并调整音量,我想知道我的Java程序中是否有办法自动执行此操作 例如,当我的Java程序启动时,它将卷调到80,当程序退出时,它将卷调回原始级别。如果有办法达到这个效果,我不介意使用Runtime.getRuntime().exec()。Java的一个主要前提是,在它上面编写的应用程序应该可以在任何平台上工作。这就是为什么他们在Java1.4SDK中放弃了对环境变量的支持,但后来又重新启用了它。这就是为什么没有办
例如,当我的Java程序启动时,它将卷调到80,当程序退出时,它将卷调回原始级别。如果有办法达到这个效果,我不介意使用
Runtime.getRuntime().exec()
。Java的一个主要前提是,在它上面编写的应用程序应该可以在任何平台上工作。这就是为什么他们在Java1.4SDK中放弃了对环境变量的支持,但后来又重新启用了它。这就是为什么没有办法用“cls”这样的命令清理Java控制台,因为它可以在某些平台上工作,但在其他平台上则不行
也就是说,您将无法从Java执行这些操作。你可以在C++中创建JNI DLL或者C++或C语言中的应用程序。
有关在C++中执行此操作的更多信息:
看看API。”这是一个关于这方面的教程,特别是(在“更改线路音量”一章中),您可以阅读如何设置音量。这些知识应该提供足够的谷歌关键词来查找示例。我使用以下代码来模拟音量调整:
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);
}
成功了 关于控制台控制的争论被打破了。ANSI序列没有什么问题,只是Windows不支持开箱即用。@Thorbjorn我知道我的示例不适合这种情况。@EricSchafer但你可以使用C#中的Windows API(使用DllImport),对吗?或者使用jna和dll(我想与jni相同)