RaspberryPi4とBluetoothスピーカーをペアリングさせて、複数台のPCから使えるDLNA対応オーディオにする

RaspberryPiとBluetoothスピーカーをペアリングさせ、それをDLNA対応オーディオにします。
PCで DLNAに対応した音楽再生プレーヤからサウンド再生できます。
これにより、1つのBluetoothスピーカーを複数のPCから共有できます。

なお、ここでの設定手順の OS は Ubuntu Server 20.04 LTS です。


RaspberryPi4 の Ubuntuインストール


次の記事の「RaspberryPi4 の Ubuntuインストール」に従って作業してください。

RaspberryPi4でBluetoothスピーカーを接続する: パソコン鳥のブログ


BluetoothスピーカとRaspberryPi4の接続


次の記事の「BluetoothスピーカとRaspberryPi4の接続」以降に従って設定してください。

RaspberryPi4でBluetoothスピーカーを接続する: パソコン鳥のブログ

MPD、upmpdcli の設定


RasyberryPi で MPD、upmpdcli をインストールします。

MPD(Music Player Daemon )はサーバーサイドの音楽再生アプリです。
upmpdcli は、UPnP メディアレンダラーに対応した、MPD のフロントエンドです。

次のコマンドでインストールします。


sudo add-apt-repository ppa:jean-francois-dockes/upnpp1
sudo apt-get update
sudo apt-get install upmpdcli
sudo apt-get install mpd


続けて、mpd をシステム権限ではなく、ローカルユーザー権限で動作するようにします。

次のコマンドを実行し、システムで mpd を起動しないようにします。
(別途、この後の手順で mpd をユーザー権限で起動するように設定します)


sudo systemctl stop mpd.socket
sudo systemctl stop mpd
sudo systemctl disable mpd.socket
sudo systemctl disable mpd


また、Ubuntu デフォルトではmpd はユーザーごとに、ログイン/ログアウトのたびに 起動・終了されます。
これを、ログインせずとも自動起動するようにします。

一般ユーザーでログインしている状態で(rootでは無いこと)、次のコマンドを実行します。


mkdir -p ~/.config/systemd/user/
cp /etc/systemd/user/default.target.wants/mpd.service ~/.config/systemd/user/


下記ファイルの行の内容を変更します。

~/.config/systemd/user/mpd.service

ExecStart=/bin/true


続けて、次のコマンドを実行します。
XXXXX はユーザ名に置き換えてください。


mkdir .mpd
sudo cp /etc/mpd.conf .mpd/
sudo chown XXXXX .mpd/mpd.conf


mpd.conf の次の行を変更します。
XXXXX はユーザ名に置き換えてください。

.mpd/mpd.conf

log_file          "/home/XXXXX/.mpd/mpd.log"
pid_file          "/home/XXXXX/.mpd/mpd_pid"
state_file        "/home/XXXXX/.mpd/state"
user              "XXXXX"


また、.mpd/mpd.conf の audio_output の箇所で、mixer_type を "software" にします。
これが無いと、PCのMPDクライアント(音楽再生プレーヤ)で音量調節できません。


audio_output {
        type            "alsa"
        name            "My ALSA Device"
#       device          "hw:0,0"        # optional
#       mixer_type      "hardware"      # optional
        mixer_type      "software"
           :


次に、先の手順「BluetoothスピーカとRaspberryPi4の接続」で作成した start_pulseaudio.sh の末尾に mpd を起動するための行を追加します。
次のようになります。


/bin/sleep 60
mkdir -p /tmp/$(id -u)/pulse
export PULSE_RUNTIME_PATH="/tmp/$(id -u)/pulse"
/usr/bin/pulseaudio -D --exit-idle-time=-1
~/connect_bt.sh
/usr/bin/mpd --no-daemon ~/.mpd/mpd.conf >/dev/null 2>&1 &


ここまで出来たら、設定完了です。
RaspberryPi を再起動してください。

起動後、上のスクリプトの ~/connect_bt.sh が実行されると、Bluetoothスピーカが接続されます。

その後、mpd が起動されますが、mpd 起動してから 1分ほどたつと、DLNA対応の音楽再生プレーヤで再生可能になります。


foobar2000 での設定


DLNA対応の音楽再生プレーヤとして、foobar2000 での使い方を説明します。

Windows 上の foobar2000 で UPnP/DLNA Renderer, Server, Control Point コンポーネントと、UPnP MediaRenderer Output コンポーネントをインストールします。
インストールは下記記事を参照してください。

foobar2000でDLNA対応オーディオで聴く為の設定: パソコン鳥のブログ

コンポーネントのインストール後、foorba2000で、Fileメニュー - Preferences - Playback - output - Device で UpMpd を選択します。

画像

これで、foorba2000 の再生が、RaspberryPi とペアリングした Bluetoothスピーカで行われます。


同時に複数台のPCで再生したらどうなる?


複数台のPCで同時に、foorba2000 で再生しても、音が合成されては鳴りません。
後から再生したものだけが鳴ります。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント