最近更新: 2011-05-10

使用 PulseAudio 命令列工具切換應用程式使用的音效設備

Ubuntu 10.04 中的 gnome-volume-control (音效偏好設定)提供一個視覺化的音效控制環境。 但我碰到要讓不同的應用程式分別將音訊輸出到不同音效卡的情形,gnome-volume-control 就做不到。 我只好用命令列工具去指派。

pacmd 是 PulseAudio 的交談式命令控制工具。 可以透過它控制 PulseAudio 的狀況。

$ pacmd 
Welcome to PulseAudio! Use "help" for usage information.
>>>

PulseAudio 官方網站有一份不太容易理解的文件: PulsAudio Command Line Interface

查詢使用中的應用程式
>>> list-sink-inputs
1 sink input(s) available.
    index: 6
	flags: 
	state: RUNNING
	sink: 0 <alsa_output.usb-0d8c_C-Media_USB_Headphone_Set-00-default.analog-stereo>
	client: 31 <Audacious>
  • index: Y - 可用於 move-sink-input 的第一個參數。
  • sink: ? <SINK_DEVICE_NAME> - 目前使用的sink。
  • client: 31 <CLIENT_NAME> - 應用程式名稱。

Sink 是音效輸出,Source 是音效輸入。

另一個用法是 echo list-sink-inputs | pacmd

查詢可用的音效輸出設備
>>> list-sinks
2 sink(s) available.
  index: 0
        name: <alsa_output.usb-0d8c_C-Media_USB_Headphone_Set-00-default.analog-stereo>

  * index: 1
        name: <alsa_output.pci-0000_00_10.1.analog-stereo>

我需要記住的是 name 欄位的設備名稱(不含角括號)。

切換應用程式使用的音效輸出設備

move-sink-input Y SINK_DEVICE_NAME

Y 是用 list-sink-inputs 查到的 index 號碼。 SINK_DEVICE_NAME 是用 list-sinks 查到的設備名稱。 例如:

>>> move-sink-input 6 alsa_output.pci-0000_00_10.1.analog-stereo
音效輸入設備使用的指令則是
  • list-sources - 查詢可用的source (音效輸入設備)。
  • list-source-outputs - 查詢應用程式使用的音效輸入設備。
  • move-source-output - 切換應用程式使用的音效輸出設備。
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/15639369.html