コマンドラインでこれらのコマンドを使用してマスターボリュームを変更できます。これはすべてのアプリケーションに影響します。しかし、1つのアプリケーションのボリュームのみを変更するにはどうすればよいですか(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};'