NetBSD上のpkgsrc/www/firefoxで、複数のオーディオデバイスを切り替えてみよう

これは、NetBSD Advent Calendar 2020の20日目の記事です。

はじめに

標準のpkgsrc/www/firefoxをNetBSDで使うときは、標準ではSun audio backendを使うことになります。 ですが、私はpkgsrc/audio/pulseaudioを使っています。 その場合には、複数のオーディオデバイスを簡単に選べるようにしました。 pulseaudio-13.0nb9以降を使ってください。 ちなみに、WebRTCのオーディオ入力デバイスの切り替えにも便利です。 ただし、Bluetooth A2DP再生の場合には対応できていません(pad(4)は認識させていないため)。

複数のオーディオデバイスがある場合とはどのような場合かと言うと、例えばUSBオーディオデバイスが存在する場合です。 私の場合には、USB接続のヘッドセットを接続すると2つ目のオーディオデバイスが発生します。

PulseAudioとFirefoxをビルドする

PulseAudioを使うには、以下のようにpkgsrc/www/firefoxをビルドすると良いでしょう。

# cd /usr/pkgsrc/www/firefox-l10n
# make PKG_OPTIONS.firefox=pulseaudio install

ちなみに、少なくとも最近のpkgsrc/www/firefoxでは、英語(en_US)ロケールであってもpkgsrc/www/firefox-l10nをインストールしておくことをお勧めします。

オーディオ出力デバイスの切り替え

これは、Firefoxではなく、PulseAudioの方で設定します。 pkgsrc/audio/pulseaudioに含まれているpactlコマンドを使い、以下のようにすると良いでしょう。 私のローカルpkgsrcツリーでは、pkgsrc/audio/pulseaudioは14.0になっているので、module.versionは14.0になっています。 ここでは、/dev/audio0とそれへのシンボリックリンクである/dev/audio、/dev/audio1の2系統が存在していることが分かります。

$ pactl list
(snip)
Module #6
        Name: module-oss
        Argument: mmap=0 device=/dev/audio
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "OSS Sink/Source"
                module.version = "14.0"

Module #7
        Name: module-oss
        Argument: mmap=0 device=/dev/audio0
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "OSS Sink/Source"
                module.version = "14.0"

Module #8
        Name: module-oss
        Argument: mmap=0 device=/dev/audio1
        Usage counter: n/a
        Properties:
                module.author = "Lennart Poettering"
                module.description = "OSS Sink/Source"
                module.version = "14.0"
(snip)

それでは、/dev/audio1で再生するように切り替えてみましょう。以下のように実行します。

$ pactl set-default-sink oss_output.audio1

これで、USB接続ヘッドセットの方から音が出るようになりました。

Firefoxでのオーディオ入力デバイスの切り替え

FirefoxのWebRTCのオーディオ入力デバイスは、WebRTCがオーディオ入力を要求する場合の選択肢が複数になるので、そこで選択できるようになります。 /dev/audio1を選択する場合のポップアップの例を下図に示します。

これで、Firefox関連で自由にオーディオ入出力を設定できると思います。

No comments:

Post a Comment

ローカルで大容量・多数のファイルをバックアップしたい場合

ネットワーク経由ではなく、ローカルのハードディスクドライブ間で多数・大容量のファイルをバックアップしたい場合にも、私は rsync を使っている。 途中経過を表示してくれるし、途中で止まってしまった場合にもリカバリーが簡単だろうという意図である。 幸運にも途中で止ま...