Linuxで音声出力デバイスを環境変数で切り替える

Linuxで音声出力デバイス環境変数で切り替える方法

概要

環境変数 PULSE_SINK を使うと,音声出力デバイスをかんたんに切り替えることができる

たとえば

$ PULSE_SINK=<出力デバイスの番号>  <コマンド>

とすると,コマンド単位で出力先を変更できる.

出力デバイスの番号を調べるには以下のコマンドが便利

$  pacmd list-sinks | grep -e 'name:' -e 'index:'

たとえば

  • 内蔵オーディオ
  • HDMI接続のディスプレイ付属のスピーカー

の2つの出力デバイスが存在している場合,以下のような出力が得られる

$  pacmd list-sinks | grep -e 'name:' -e 'index:'

  * index: 1
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
    index: 2
        name: <alsa_output.pci-0000_03_00.1.hdmi-stereo-extra1>

この場合

$ PULSE_SINK=1   firefox 

firefoxを起動すれば,firefox の音声は内蔵オーディオデバイスから出力され

$ PULSE_SINK=2  ゲーム

とゲームを起動すれば,ゲームの音声はHDMI接続のディスプレイから再生されるようになる


PULSE_SINKを指定しない場合はデフォルトのデバイスが選択される.上記の例だと * index: 1 の部分で表示されている"*"(アスタリスク)がデフォルトを表していてる.つまり PULSE_SINK=1 がデフォルトの挙動となる.