pulseaudioでネットワーク越しに再生する
自宅ではPCを2台併用をしていますが、ヘッドホンは当然1つで使用したいのでオーディオ分配ケーブルを利用していました。
ただこれはケーブルが邪魔で仕方がないのです。他にもヘッドセットを利用しようとすると分配ケーブルを利用しているとマイク機能が利用できないなど色々問題があります。
物理的には解決が難しい事が分かってきましたので重い腰を挙げてソフトウェア的に解決出来ないものかと調査したところ、pulseaudioはネットワーク機能がある事が分かりました。ということでなんとか設定できたので自分用にメモしておきます。
サーバとクライアントの関係
まず、オーディオはクライアントからサーバに送信してサーバ側の音声として再生する流れです
逆に録音や入力の場合はサーバのマイクからクライアントへオーディオが送信されます
設定
Ubuntu 20.04で設定しましたが、他のディストリでもそう変わりは無いでしょう
まず、 `pulseaudio-zeroconf` をサーバ、クライアントでインストールします
```
# apt install pulseaudio-zeroconf
```
サーバ、クライアント共通の設定
`/etc/pulse/default.pa` に以下を設定します
```
load-module module-native-protocol-tcp
```
サーバ
`/etc/pulse/default.pa` に以下を設定します
IPはクライアントとして許可するIPです
```
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24
```
クライアント
同じく `etc/pulse/default.pa` に以下を設定します
```
load-module module-zeroconf-discover
```
確認
まずは、`pulseaudio` を再起動します
pulseaudioプロセスをkillすれば自動的に再起動されます
まずは適当な音声ファイルを用意して、クライアントで再生して確認します
サーバ側で音声が再生できれば成功です
```
$ PULSE_SERVER=<server ipd> aplay 音声ファイル
```
次はクライアント側でpavucontrolを起動します。再生先のデバイスにサーバ側のデバイスが選択出来ているはずです。
選択して再生できれば成功です。