コマンドラインからpactlで音量を変更する件に関して

PulseAudioをコマンドラインから操作するのにpactlというコマンドがあります。
pactl set-sink-volume 0 +5%
でサウンドボリュームを上げることが出来たのですが、パソコン前面のサウンド出力にヘッドフォンを接続するとこのコマンドではエラーが出てしまいました。
エラーは以下の通り。
シンク情報の取得に失敗しました: そのようなエンティティはありません

さてPaulseAudioについて調べてみると、どうもコマンド内の「0」の部分が他の値に切り替わったための模様。なんとか調べてこの値を変更してやると、ちゃんとボリューム操作することが出来ました。

自分は上のコマンドをキーボードショートカットに割り当てて、それでボリューム操作をしています。ただその場合だと値が変わる度にコマンドを変更するのはめんどうです。
ただパソコン前面のサウンド出力を使わなければ変わることはないとは思います。現に数カ月くらいはまったく問題なかったですし。

で、ネットでいくつか検索してみると、値については「@DEFAULT_SINK@」というのが使えるとのこと。上のエラーメッセージにも出てますがシンクというのが関連してるんでしょう。詳しくはPaulseAudio内でのシンクの扱いがどうなってるのか調べる必要があるのですが、ちょっとめんどうになりそうなので今回はお試しでそのまま使ってみます。
この値を使うと、コマンドは以下のようになります
pactl set-sink-volume @DEFAULT_SINK@ +5%
これだと値が変わっても柔軟に対応出来そうな感じがします(まだそれほど確かめてはいませんが)。

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

gnuplot : グラフにグリッド線を描く方法(set grid)