我正在使用Process
Java 类来调用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