명령줄에서 이러한 명령을 사용하여 마스터 볼륨을 변경할 수 있으며 이는 모든 응용 프로그램에 영향을 미칩니다. 하지만 한 응용 프로그램의 볼륨만 변경하려면 어떻게 해야 합니까( XMMS
예:)?
amixer -q set Master toggle # or pactl set-sink-mute 0 toggle
amixer -q sset Master 5%+ unmute # or pactl set-sink-volume 0 -- -5%
amixer -q sset Master 5%- unmute # or pactl set-sink-volume 0 -- +5%
pacmd dump #
흥미롭습니다. 이를 수행하는 GUI 애플리케이션이 있습니다 gnome-control-center sound
.pavucontrol
답변1
pactl 명령을 사용하여 수신기 입력 수를 얻을 수 있습니다.
$ pactl list sink-inputs
...
Sink Input #7119
Driver: protocol-native.c
Owner Module: 12
Client: 6298
Sink: 0
...
Properties:
application.icon_name = "google-chrome"
media.name = "Playback"
application.name = "Chromium"
...
이 번호(#7119)를 사용하여 수신기 입력을 지정할 수 있습니다.
$ pactl set-sink-input-mute 7119 toggle
속성을 사용하여 application.icon_name
애플리케이션을 식별합니다. Chromium을 지정하면 다음과 같은 일이 발생합니다.
#!/bin/sh
LANGUAGE="en_US"
app_name="Chromium"
current_sink_num=''
sink_num_check=''
app_name_check=''
pactl list sink-inputs |while read line; do \
sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
if [ "$sink_num_check" != "" ]; then
current_sink_num="$sink_num_check"
else
app_name_check=$(echo "$line" \
|sed -rn 's/application.name = "([^"]*)"/\1/p')
if [ "$app_name_check" = "$app_name" ]; then
echo "$current_sink_num" "$app_name_check"
pactl set-sink-input-mute "$current_sink_num" toggle
fi
fi
done
답변2
PulseAudio를 위해 Roland Haas가 작성함도구.
설치해야 했습니다 libpulse-dev
linux-libc-dev
libc6-dev
zlib1g-dev
libpcre3-dev
libglib2.0-0
libglib2.0-dev
. 컴파일러(gcc)가 필요할 수도 있습니다 make
.
답변3
내 재생 볼륨 제어 조각은 볼륨을 5% 변경하고 음소거를 전환합니다.
#!/bin/bash
inc() {
playback_input=$(pactl list sink-inputs short | awk '{print $1}' | head -1)
pactl set-sink-input-volume "$playback_input" +5%
}
dec() {
playback_input=$(pactl list sink-inputs short | awk '{print $1}' | head -1)
pactl set-sink-input-volume "$playback_input" -5%
}
mute() {
playback_input=$(pactl list sink-inputs short | awk '{print $1}' | head -1)
pactl set-sink-input-mute "$playback_input" toggle
}
답변4
이 기능을 사용하면 PulseAudio를 사용할 때 모든 애플리케이션의 볼륨을 쉽게 설정할 수 있습니다.
function pacmd-set-app-volume() {
local player="$1"
local volume="$2"
playerSinkIndex="$(pacmd list-sink-inputs | awk '/index:|application.name |application.process.binary / {print $0};' | grep -iC 1 "$player" | awk '/index:/ {print $2}')" # get specific app sink
[[ $playerSinkIndex ]] && pacmd set-sink-input-volume "$playerSinkIndex" "$((volume*65536/100))" # 100% → 65536
}
.bashrc
/ 에 추가할 수 있습니다 .zshrc
.
용법:
pacmd-set-app-volume <loosly_app_name> <volume_percentage> # For eg "MPV Media Player" 55 Or "mpv" "75"
애플리케이션 및 바이너리 이름을 가져옵니다.
pacmd list-sink-inputs | awk '/index:|application.name |application.process.binary / {print $0};'