ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Raspberry Pi(ラズパイ)にスピーカーになってもらうよ

(2022-01-23 初稿 - )

これまでに、Raspberry Piに、BGMサーバやラジオになってもらった。

これはこれで、とても便利だけど、Raspberry Piを単にスピーカー代わりに使うだけなら、もっと簡単に設定できる。

ここで言う「単にスピーカー代わり」をもう少し説明すると、ローカルのPCで曲やストリーム放送を受信、再生して、音声データをRaspberry Piに流すのがスピーカー代わり。

一方、BGMサーバやルトリームラジオは、Raspberry PiがPi内に保存されている曲を再生したり、ストリーム放送を受信して再生する。

ローカルPCからすると、「スピーカー代わり」は負荷が多いけど、手元のPCだから操作はとても簡単。一方、Raspberry Piにまかせる方は、ローカルPCは命令するだけだから、負荷はほとんどないけど、リモートPCを操作するので少し面倒だね。

説明がヘタ過ぎるので、下に図を書いた。(^^ゞ

f:id:hymd3a:20220123201332j:plain

ローカルPCとRaspberry Piの役割

設定

設定は、Raspberry PiにX環境がある場合とない場合で、大きく異なるので、共通部分とX環境あるなしで分けて記述する。

なお、設定は以下のサイトを参考にさせていただいた。多謝。m(__)m

共通

まずは、ローカルPC、Raspberry Piともに、以下のとおりpaprefsパッケージをインストールする。

$ sudo apt install paprefs

以上で共通部分は終了。

Raspberry PiにX環境がある場合

  1. ローカルPC(クライアント)側では、メニューから「設定」、「PulseAudio Preference」を選択
  2. 「Network Access」タブを開いて、「Make discoverable PulseAudio network sound devices abailable locally」にチェックを入れる

f:id:hymd3a:20220123193425p:plain

ローカルPC(クライアント)側の設定
  1. Raspberry Pi(サーバ)側も、メニューから「設定」、「PulseAudio Preference」を選択
  2. 「Network Server」タブを開いて、以下の3つにチェックを入れる。
Enable network access to local sound devices
  Allow other machines on the LAN to discover local sound devices
  Don't require authentication

以上で設定終了。

f:id:hymd3a:20220123194012p:plain

Raspberry Pi(サーバ)側の設定
確認方法

確認は、vlcメディアプレーヤー等で、「オーディオ(A)」メニューを開いて、「オーディオデバイス(D)」の中から、先程設定したRaspberry Piサウンドバイスを選択し、音楽等が鳴れば成功。

Raspberry PiにX環境がない場合

Raspberry PiにX環境がない場合は、少し面倒で、筆者も完な動作ができている状態ではない。

サーバとなるRaspberry Piに以下の設定を行う。

$ cp /etc/pulse/client.conf ~/.config/pulse
$ vi .config/pulse/client.conf
; mod H.Y 2022-01-23
 autospawn = no                          # noに変更
 daemon-binary = /usr/bin/pulseaudio     # コメントを外す
$ cp /etc/pulse/default.pa ~/.config/pulse
$ vi .config/pulse/defaults.pa
(以下の行を追加)
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.11.0/24 auth-anonymous=1
確認方法

X環境がない場合は、vlcメディアプレーヤーの「オーディオデバイス(D)」のメニューにRaspberry Piが表示されない。(-_-;)

では、接続できないかというと、以下のようにすればRaspberry Piの音を鳴らすことができる。

操作は、ローカルPCで行う。

$ PULSE_SERVER=192.168.xxx.xxx cvlc xxxxx.mp3

筆者のところでは、上記のように環境変数をセットして実行するとRaspberry Piから音が鳴るので良しとしている。

もし、もっと良い方法があれば教えてください。