有没有办法从终端更改单个应用程序的音量?我找到了一种方法来更改掌握音量,amixer -D pulse sset Master 50%
但我希望能够更改单个应用程序的音量,就像在 中一样pavucontrol
。我的用途是编写脚本。
答案1
我发现解决方案隐藏在评论在 unix.stackexchange 上。使用pactl list sink-inputs
查找应用程序的接收器输入号码。然后使用pactl set-sink-input-volume [sink number] [volume percent]
设置应用程序的音量。
答案2
此功能可轻松设置任何应用程序的音量。
function pacmd-set-app-volume() {
local player="$1"
local volume="$2"
firstPlayerSinkIndex="$(pacmd list-sink-inputs | awk '/index:|application.name |application.process.binary / {print $0};' | grep -iB 1 "$player" | awk '/index:/ {print $2; exit}')" # get specific app sink
[[ $firstPlayerSinkIndex ]] && pacmd set-sink-input-volume "$firstPlayerSinkIndex" "$((volume*65536/100))" # 100% → 65536
}
可以添加到.bashrc
/ .zshrc
。
用法:
pacmd-set-app-volume <loosly_app_name> <volume_percentage>
例如:
pacmd-set-app-volume "MPV Media Player" 55 # Or "mpv" "75"