我正在运行Win Vista,在窗口右下角的时钟旁边有一个扬声器图标,我可以点击它来调节音量,我想知道我的Java程序中有没有办法自动做到这一点?
例如,当我的 Java 程序启动时,它会将音量变为 80,当程序退出时,它会将音量变回原来的水平。Runtime.getRuntime().exec()
如果有办法达到这种效果,我不介意使用。
Java 的主要前提之一是在其上编写的应用程序应该可以在任何平台上运行。这就是为什么他们在 Java 1.4 SDK 中放弃了对环境变量的支持,但后来又重新启用了它。这就是为什么无法使用“cls”之类的命令来清理 Java 控制台的原因,因为它可以在某些平台上工作,但在其他平台上却不行。
话虽如此,您将无法从 Java 中进行操作。您可以使用 C++ 创建 JNI DLL,也可以使用 C++ 或 C# 创建应用程序来执行此操作。
有关在 C++ 中执行此操作的更多信息:
看看javax.sound
API。这是一个关于这个的教程,特别是在这里(在改变线的音量一章中)你可以阅读如何设置音量。这些知识应该提供足够的 Google 关键字来查找示例。
我使用以下代码来模拟音量调整:
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);
}
它奏效了!
用鼠标点击打开音量控制后,如果相对调整适合您,您还可以使用上/下键命令调整音量。
import java.awt.event.KeyEvent;
robot.keyPress(KeyEvent.VK_UP);
robot.delay(200);
robot.keyRelease(KeyEvent.VK_DOWN);