PulseAudio

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

PulseAudioGNOMEKDE などのデスクトップ環境で一般的に使われているサウンドサーバーです。ALSAOSS などの既存のカーネルサウンドコンポーネントを使うサウンドアプリケーションに対して代理として動作します。ALSA が Arch Linux にデフォルトで含まれているため、基本的には ALSA に PulseAudio を含めることになります。

インストール

実行

警告: もし、ユーザーごとに設定ファイル (例えば client.confdaemon.confdefault.paのような)を ~/.config/pulse/ または ~/.pulse/ にコピーしたのならば、パッケージで提供される /etc/pulse/ 内のファイルの変更にも追随するようにしてください。そうしなければ、PulseAudio は設定エラーで起動しなくなるかもしれません。
ノート:
  • PulseAudio の動作には D-Bus が必要です。
  • およその X11 環境では、X11 セッションの起動時に pulseaudio が自動的に起動されます。

X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:

$ pulseaudio --start

次のコマンドで PulseAudio を停止できます:

$ pulseaudio -k

イコライザー

pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。

equalizer sink と dbus-protocol モジュールをロードする

$ pactl load-module module-equalizer-sink
$ pactl load-module module-dbus-protocol

GUI フロントエンドをインストールして実行する

python-pyqt4 をインストールし、以下を実行します。

$ qpaeq
ノート: もし qpaeq が動作しなければ、 pavucontrol をインストールして、メディアプレイヤーの動作中に "ALSA Playback on" を "FFT based equalizer on ..."へ変更するとよいでしょう。

起動時に イコライザーと dbus モジュールをロードする

お好みのエディタで /etc/pulse/default.pa を開き、以下の行を追記します。

### Load the integrated pulseaudio equalizer and dbus module
load-module module-equalizer-sink
load-module module-dbus-protocol

バックエンドの設定

ALSA

ノート: この追加選択パッケージは、x86_64 環境で動作させる場合で、(Wineのような) 32 ビットプログラムでも音を鳴らすときには必要なものです。

PulseAudio をサポートせず ALSA をサポートするアプリケーションのためには、ALSA のための PulseAudio プラグインをインストールすることが推奨されます。このパッケージは、ALSA に PulseAudio を利用させるために必要なファイル /etc/asound.conf も含んでいます。

アプリケーションに ALSA の OSS エミュレーションをやめさせ PulseAudio を迂回させない(そうして、他のアプリケーションの音声出力を防ぐ)ためには、起動時に snd_pcm_oss モジュールがロードされないようにします。このモジュールが現在ロードされていたら (lsmod | grep oss で確認可能)、以下を実行してモジュールを無効にしましょう:

# rmmod snd_pcm_oss

ALSA/dmix でハードウェアデバイスを占有しない

ノート: This section describes alternative configuration, which is generally not recommended.

ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。

  • pulseaudio-alsa パッケージを削除してください、ALSA アプリケーションと PulseAudio の互換レイヤーが含まれています。削除した後、ALSA アプリは Pulse につかまることなく ALSA を直接使うようになります。
  • /etc/pulse/default.pa を編集してください。
バックエンドドライバーをロードする行を探してアンコメントしてください。以下のように device パラメータを追加してください。それから autodetect モジュールをロードする行をコメントアウトしてください。
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
# load-module module-udev-detect
# load-module module-detect
  • 任意: kdemultimedia-kmix を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
  • コンピュータを再起動して、alsa と pulseaudio のアプリケーションを同時に実行して見て下さい。同時に音声を鳴らすことができるはずです。
PulseAudio ボリュームの操作が必要なときは pavucontrol を使って下さい。

OSS

OSS にしか対応していないプログラムを PulseAudio に出力させる方法は複数存在します:

ossp

ossp パッケージをインストールして osspd サービスを起動してください。

padsp ラッパー (PulseAudio の一部)

OSS を使うプログラムは padsp を使って起動することで PulseAudio で動作するようにできます:

$ padsp OSSprogram

例:

$ padsp aumix
$ padsp sox foo.wav -t ossdsp /dev/dsp

以下のようなカスタムラッパースクリプトも使えます:

/usr/local/bin/OSSProgram
#!/bin/sh
exec padsp /usr/bin/OSSprogram "$@"

PATH/usr/bin よりも先に /usr/local/bin が来るようにしてください。

GStreamer

GStreamer で PulseAudio を使うには、gst-plugins-goodgstreamer0.10-good-plugins をインストールする必要があります。

OpenAL

OpenAL Soft はデフォルトで PulseAudio を使いますが、明示的に設定することもできます:

/etc/openal/alsoft.conf
drivers=pulse,alsa

libao

libao の設定ファイルを編集してください:

# /etc/libao.conf
default_driver=pulse

alsa ドライバーの dev=default オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。

ノート: You could possibly also keep the libao standard of outputting to the alsa driver and its default device if you install pulseaudio-alsa since the ALSA default device then is PulseAudio.

ESD

PulseAudio は enlightened sound daemon (ESD) を完全に置き換えます。PulseAudio が動作している時、ESD クライアントは PulseAudio に何もしなくても出力できるはずです。

デスクトップ環境

X11

ノート: 前に述べた通り、もし DE をインストールしているのならば、/etc/X11/xinit/xinitrc.d/pulseaudio/etc/xdg/autostart/ のファイルによって PulseAudio は自動的に起動するはずです。

PulseAudio が動作しているかどうか確認してください:

$ ps aux | grep pulse
 facade   1794  0.0  0.0 360464  6532 ?        S<l  15:33   0:00 /usr/bin/pulseaudio --start
 facade   1827  0.0  0.0  68888  2608 ?        S    15:33   0:00 /usr/lib/pulse/gconf-helper

PulseAudio が動いておらず X を使っている場合は、以下で PulseAudio と必要な X11 のプラグインを手動で起動できます:

$ start-pulseaudio-x11

Gnome, KDE, Xfce を使ってないために ~/.xinitrc/etc/X11/xinit/xinitrc.d のスクリプトを (サンプルファイル /etc/skel/.xinitrc のように) 読み込まないときは、次のコマンドでブート時に PulseAudio を起動できます:

~/.xinitrc
/usr/bin/start-pulseaudio-x11

GNOME

GNOME 3 から、GNOME は PulseAudio と完全に統合したため特に設定は必要ありません。

KDE 3

PulseAudio は aRts との完全な互換性はありません。KDE 3 のユーザーは PulseAudio を使えません。ただし最近のバージョンの PulseAudio では障害が取り除けるかもしれません:

参照: http://www.pulseaudio.org/wiki/PerfectSetup KDE 3 はデフォルトで artsd サウンドサーバを使っています。しかしながら、artsd は Esound バックエンドを使うように設定することが可能です。kcmartsrc (グローバルな設定は /etc/kde または /usr/share/config、ユーザー別の設定は .kde/share/config にあります) を以下のように編集してください:

[Arts]
Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c drkonqi -l 3 -f
NetworkTransparent=true
SuspendTime=1

KDE Plasma ワークスペースと Qt4

PulseAudio は KDE/Qt4 アプリケーションによって使われます。詳しくは PulseAudio wiki の KDE のページ を見て下さい。

PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。

phonon-gstreamer バックエンドを Phonon に使っている場合、gstreamer0.10-good-plugins をインストールして GStreamer も PulseAudio を使うように設定してください。

load-module module-device-manager/etc/pulse/default.pa に追加するのが有用です。

さらに、KMix や pavucontrol の KDE 代替として AUR から kdeplasma-applets-veromixAUR が利用できます。

KMix/Veromix が起動時に PulseAudio への接続に失敗する場合は /etc/pulse/client.conf を編集して autospawn = noautospawn = yes に置き換える必要があるかもしれません。

Xfce

Xfce で動いているアプリケーションは PulseAudio を使うことができます。PulseAudio の設定を管理するには pavucontrol を使います。

アプリケーション

Audacious

Audacious は PulseAudio にもとから対応しています。利用するためには、Audacious で 設定→オーディオ→出力プラグイン で「PulseAudio 出力」に設定しましょう。

Java/OpenJDK 6

Pulseaudio と Java のサウンドに書かれているように padsp を使って java のラッパーを作成してください。

Music Player Daemon (MPD)

PulseAudio を使うように MPD設定 してください。MPD/Tips and Tricks#MPD and PulseAudio を参照。

MPlayer

MPlayer はネイティブで PulseAudio 出力をサポートしており "-ao pulse" オプションを使います。PulseAudio への出力をデフォルトに設定することも可能で、ユーザー別の設定には ~/.mplayer/config で、システム全体では /etc/mplayer/mplayer.conf で設定します:

/etc/mplayer/mplayer.conf
ao=pulse

Skype (x86_64)

lib32-libpulse をインストールしてください。そうしないと通話をしようとした時に次のエラーが発生します: "Problem with Audio Playback"。

guvcview

PulseAudio で guvcview を使用するとウェブカメラからの入力で音声入力が中止され音声が記録されないことがあります。次を実行して確認できます:

$ pactl list sources

音声ソースが "suspended" になっている場合 /etc/pulse/default.pa の以下の行を:

load-module module-suspend-on-idle

次のように修正してください:

#load-module module-suspend-on-idle

PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。

トラブルシューティング

PulseAudio/トラブルシューティングを見て下さい。

参照