使用 Java 进程调用 pactl 不起作用

使用 Java 进程调用 pactl 不起作用

我正在使用ProcessJava 类来调用pactl函数。具体来说,我想更改接收器输入的音量。几天前它还能用,但现在不行了。我尝试执行其他命令,它们运行正常。pactl 也没有返回任何错误消息。它似乎已执行但并未改变任何内容。即使调用执行该命令的 shell 脚本也不起作用。

当我直接在终端中复制命令时,它可以正常工作。我遗漏了什么?

Process p = null;
try {
    String command = "pactl set-sink-input-volume 0 " + volumeNew + "%";
    System.out.println(command);
    p = Runtime.getRuntime().exec(new String[] {
            "/bin/bash",
            "-c",
            command });

    BufferedReader br = new BufferedReader(
            new InputStreamReader(p.getInputStream()));
    String s;
    while ((s = br.readLine()) != null)
        System.out.println("line: " + s);
    p.waitFor();
    System.out.println("Ended");
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}

输出:

pactl set-sink-input-volume 0 59%
Ended

相关内容