设置电脑音量

我想制作一个java程序

  1. 从文件中读取一行(ex.File text is:“Hello”)
  2. 如果Line =“Hello”那么
  3. 如果计算机音量> 1则获得计算机音量,然后音量=音量/ 2

我不知道这个程序的音量部分怎么样。 我过去一小时在网上看过,我似乎无法了解如何做到这一点,或者甚至可能。

我忘了添加(我正在使用Windows 7)

我编写了一个用于控制音量的实用程序类,使用方式如下:

Audio.setMasterOutputVolume(0.5f); 

源代码在这里: https : //github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java

您可以复制和使用代码。

以下是使用终端命令成功设置系统主卷的方法(我正在使用运行OS X 10.10的Mac):

 public static void setOutputVolume(float value) { String command = "set volume " + value; try { ProcessBuilder pb = new ProcessBuilder("osascript","-e",command); pb.directory(new File("/usr/bin")); StringBuffer output = new StringBuffer(); Process p = pb.start(); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = reader.readLine())!= null) { output.append(line + "\n"); } System.out.println(output); } catch(Exception e) { System.out.println(e); } } 

value可以是.1到7.0之间的任何值,你可以像这样调用方法:

 setOutputVolume(3.5f); 

这将使系统体积大约为其最大值的一半。 我不知道在Windows中设置系统卷的任何命令行选项,如果有人知道,也许他们可以插入?

我知道这个问题很老,但也许我的回答可以帮助其他人。 我找到了一个有用的工具 (下载链接位于页面底部)。 使用此工具,您可以调整系统音量并执行许多其他操作(例如打开CD驱动器)。 只需下载它并将nircmd.exe放在硬盘上的某个位置。 然后编写以下内容以调整音量:

 Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(pathToNircmdexe + " setsysvolume 32767.5"); 

这会将您的系统音量设置为50.要设置音量,您需要选择0到65535之间的数字。如果要使用0到100之间的数字,请使用以下方法。 它将转换您想要的音量(通过使用简单的数学:D)

 public void setSystemVolume(int volume) { if(volume < 0 || volume > 100) { throw new RuntimeException("Error: " + volume + " is not a valid number. Choose a number between 0 and 100"); } else { double endVolume = 655.35 * volume; Runtime rt = Runtime.getRuntime(); Process pr; try { pr = rt.exec(nircmdFilePath + " setsysvolume " + endVolume); pr = rt.exec(nircmdFilePath + " mutesysvolume 0"); } catch (IOException e) { e.printStackTrace(); } } } 

注意:遗憾的是这仅适用于Windows,

“因为Java是跨平台的,所以它不能做平台特定的事情,比如改变音量或你想做什么来控制操作系统。你需要使用操作系统独特的API层来完成它。” 资源