自製「AirPort Express」實現 iPhone、iPod、iPad、Mac 透過 AirPlay 無線播放音樂

by 11/05/2014 0 意見

還記得當年 iPod 的廣告 嗎? 只要手上拿著 iPod、頭上掛著耳機,馬上就晉升成世上最潮的那群人;不過,獨樂樂不如眾樂樂,接上一組超重低音的大喇叭,化身成 DJ,跟大家一起分享自己最愛的音樂,那更是潮爆了!!!

可是,為了要接上喇叭,非得接上一條長長的 3.5mm 訊號線就算了;iPod 不能放在自己的手上,只能黏在喇叭旁邊也勉強接受;但是為了換個歌曲,還要專程跑到喇叭旁邊當壁花換歌,那可就遜到最高點了.....

所以,Apple 為我們達成了 iPod 在手,音樂無窮的目標,就是要透過 AirPlay 這個技術來實現我們的願望。


AirPlay 是 Apple 開發的一種無線播放技術,透過 WiFi 讓 iPhone、iPad、iPod、Mac 可以不用連接其他線材,就可以讓音樂、影片及照片串流遠端播放到支援 AirPlay 的設備上,如 AppleTV、AirPort Express ... 等;在初期只支援音樂串流的時代被命名為 AirTunes。

以下的示範環境就以 CentOS 6.5 x86 為接收端,負責連接喇叭播放音樂,而 iPhone 4S + iOS 8.1 為傳送端,使用 Youtube App 播放影片,負責送出背景音樂,來進行所有的實作。


注意事項

  • 僅支援音樂的傳送,不支援影片及照片串流的傳送,所以就算我們播放影片,也是只有音樂會傳過去,畫面依然只會在 iPhone 的螢幕上顯示。
  • 所有傳送端及接收端的設備,不論是有線還是無線,都必須連到同一個網段的區域網路裡。
  • App 本身必須支援 AirPlay,若是不支援的話,就算 iPhone 已經連上了 AirPlay,同樣無法遠端播放。

安裝主程式


我們要用到的是 shairport 這一個套件,它原本是由 Perl 寫成的,後來 改用 C 重寫,需要用到的相依套件有 OpenSSLlibaoPulseAudioavahi

先安裝必要的相依套件。
yum -y install openssl-devel libao-devel pulseaudio-libs-devel alsa-lib-devel avahi-devel alsa-utils
中間過程省略 ...

安裝 Git
yum -y install git
中間過程省略 ...

用 Git 把原始碼從 GitHub 複製下來。
git clone https://github.com/abrasive/shairport.git

接著進行編譯。
cd shairport

./configure

make


安裝過程沒有出現錯誤訊息的話,就可以測試是否能正常啟動了。
./shairport -a 'My AirPort Speaker'

出現「Starting Shairport」及「 Listening for connections.」的訊息後,便代表編譯成功,就可以按 Ctrl + C 停止 shairport 的服務。

我們可以看一下所有的可用參數。
./shairport -h

最後,就可以用我們自訂的顯示名稱在背景運作了。
./shairport -a 'My AirPort Speaker' -d


iPhone 連線播放


只有一個最重要的動作,就是讓 iPhone 的 WiFi 連上與 CentOS 相同網段的區域網路即可。



在 iOS 8 裡,從畫面下方往上滑入,打開控制中心。


iOS 只要偵測到有支援 AirPlay 的設備,就會自動出現 AirPlay 的選項。


預設是由 iPhone 本身的喇叭播放。

改成 AirPlay 喇叭即可。

或是在支援 AirPlay 的 App 裡切換就可以了。

OK!!!
Let's enjoy our favorite music with AirPlay Speaker .......


異常排除

  • 啟動 shairport 的時候,出現「FATAL: could not bind any listen sockets! Shutting down...」的錯誤訊息。

    這代表 shairport 已經被啟動成背景服務了,無法重覆啟動。

  • shairport 連接的喇叭沒有聲音。

    確認 CentOS 裡的音效卡被靜音或設定太小聲了,可調整的音量範圍由 0 到 64 之間 (0% 到 100%)。
    amixer set Master 64 unmute

系列文章


參考資料


更新紀錄

  • 2014/11/05 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

0 意見 :

張貼留言