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 で再生しても、音が合成されては鳴りません。
後から再生したものだけが鳴ります。

コメント

タイトルとURLをコピーしました