Raspberry Pi3でAirPlayを利用してみた

shairport-syncを導入することで、Raspberry Pi3をAirPlay端末にすることができ、Raspberry Pi3側でiPhoneやMacなどの音声を出力することができます。ここではRaspberry Pi3におけるAirPlayについて解説していきます。

bash


# ビルドに開発ツールや必要なライブラリをインストール
$ sudo apt-get install -y build-essential git xmltoman autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

# 作業ディレクトの作成/移動
$ mkdir work
$ cd work

# ソースコードをダウンロード
$ git clone https://github.com/mikebrady/shairport-sync.git

# Makefileを作成
$ cd shairport-sync
$ autoreconf -i -f
$ ./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd

# ビルド
$ make

# サービスを起動するユーザ/グループを作成
$ sudo getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
$ sudo getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null

# インストール
$ sudo make install

# サービスの自動起動を設定
$ sudo systemctl enable shairport-sync

# 設定ファイルの編集
$ sudo nano /etc/shairport-sync.conf

# 音量を100%に設定する。
$ sudo amixer cset numid=1 100%

# サービスの起動
$ sudo systemctl start shairport-sync.service

shairport-sync.conf


...
// General Settings
general =
{
  name = "Raspberry Pi3"; // AirPlayレシーバーの名前
  interpolation = "soxr"; // SoXリサンプラーを有効化
  ignore_volume_control = "yes"; // ボリュームコントロールを無視
...

音声出力について

bash


# 現在の設定を表示
$ amixer cget numid=3

# アナログ出力を優先
$ amixer cset numid=3 1

# HDMI出力を優先
$ amixer cset numid=3 2

# 出力先をシステムで判断
$ amixer cset numid=3 0