星期五, 5月 12, 2017

Raspberry Pi 筆記(四十三):Pi 也能當作Airplay音效輸出,安裝 Shairport Sync

[2017/05/12]
很早之前就知道 Pi 可以作為 AirPlay 的接收器,只是一直沒有試著安裝相關套件,作為 iPhone 的無線播放器。昨天剛完成使用 Pi 作為 AirPrint 無線列印伺服器,就順便試著安裝 AirPlay 所需的套件,作為無線音樂的播放器。

可以在 Pi 系統執行 AirPlay 的套件,較為著名的是 Shairport,自2014 年以後作者就沒有持續再更新了。還好,其他好心人士將這套改寫成 Shairport Sync,Shairport Sync是 Shairport 1.0 的一個分支。目前最新的版本是V3.0,相較於過去的版本,提升了更好的音量控制、支持Apple ALAC解碼器及支援到最高 32 bits 的音效。唯一比較可惜的是 Shairport Sync不支援影片或照片串流傳送。以下就來看看如何安裝 Shairport Sync:




[安裝步驟]

(1) 安裝相依性套件
$ sudo apt-get install build-essential git xmltoman
$ sudo apt-get install autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev
$ sudo apt-get install avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev 

(2) 下載原始程式:
$ git clone https://github.com/mikebrady/shairport-sync.git

(3) 變更目錄,執行重新設定:
$ cd shairport-sync
$ autoreconf -i -f

(4) 執行參數設定:
$ ./configure --with-alsa --with-stdout --with-pipe --with-avahi \
              --with-ssl=openssl --with-metadata --with-systemd 

(5) 編譯程式:
$ make

(6) 安裝:
$ sudo make install

(7) 設定用戶群組
要完成安裝,需要定義 shairport-sync 的群組及用戶。這是一個安全措施,要讓這個帳號沒有登入的權限,且具有 audio 群組的成員身份,才能存取音效硬體。
$ sudo groupadd -r shairport-sync
$ sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync

• 如果要在 Pi 開機後自動啟動 Shairport Sync,可輸入:
$ sudo systemctl enable shairport-sync

• 重新啟動Shairport Sync
$ sudo systemctl start shairport-sync

[設定USB音效卡]

我使用的USB音效卡是 Uptech SA120,接上後不需安裝驅動程式,即可使用。但是要播放音樂,需要將設定由 3.5mm 音孔輸出改為USB音效卡介面輸出。

• 執行以下指令,確認 USB音效功能是否正常:
$ lsusb 

如下圖紅線部分,USB可正常被讀取。

• 看一下目前可播放的 Device有哪幾個?
$ aplay -l 

• 設定音效由 USB輸出,修改 alsa.conf 設定檔,將檔案內如圖片的兩行,由 0 改成 1,改由 Card 1輸出即可。
$ sudo nano /usr/share/alsa/alsa.conf



[iPhone 播放音樂]

按下如左圖紅框處,即可選擇輸出是 iPhone或是 AirPlay 的設備。


[參考資料]

• Github:mikebrady/shairport-sync

Share:

0 意見:

張貼留言