设置电脑音量

Cal*_*dos 4 java volume

我想制作一个java程序

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

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

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

Wit*_*tek 7

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

Audio.setMasterOutputVolume(0.5f);
Run Code Online (Sandbox Code Playgroud)

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

您可以复制和使用代码.

  • 在我的 Windows 10 上什么都没做……有人让它工作吗? (3认同)
  • 是的,我允许你做任何你喜欢的事情https://github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java (2认同)

Jus*_*aul 5

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

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(pathToNircmdexe + " setsysvolume 32767.5");
Run Code Online (Sandbox Code Playgroud)

这会将您的系统音量设置为 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

“因为 Java 是跨平台的,所以它无法执行特定于平台的操作,例如更改音量或任何您想要控制操作系统的操作。您需要使用操作系统独特的 API 层来执行此操作。” 来源