最近想在 Raspberry Pi 上播放音樂,於是在網路上搜尋了一下,發現可以透過 Apple AirPlay 技術讓 Raspberry Pi 成為家庭音樂中心,這邊將這幾天的搜尋成果整理了一下。
讓 Raspberry Pi 發出聲音
想讓 Raspberry Pi 發出聲音一般方法有:
- 透過 HDMI interface。
- 透過 3.5mm audio jack。
所以可以先選定想要輸出聲音的硬體界面,我這邊是選擇將耳機插入 3.5mm 的耳機孔。
在 Raspberry Pi 開機之後,我們第一次事先確認 Linux Kernel 是否已載入 Sound Module。
1 | lsmod | grep snd_bcm2835 |
如果沒有載入音效模組的話,便手動載入:
1 | sudo modprobe snd_bcm2835 |
成功載入後,我們接下來進行進一步的設定。
首先設定 Raspberry Pi 聲音輸出的界面:
1 | amixer cset numid=3 n |
上述 “n” 的值代表:
- 0: 自動,會自動偵測以 HDMI or 3.5mm audio jack 為輸出界面,但 HDMI 的優先權高於 3.5mm audio jack。
- 1: 強制以 3.5mm audio jack 輸出。
- 2: 強制以 HDMI 輸出。
另外 Raspberry Pi 也提供一個程式 alsamixer
讓我們透過 GUI 界面讓我們進行一些進階設定。
在進入 GUI 界面後,我們透過方向鍵 ↑↓ 來調整音量大小,按下 ESC 鍵離開。
接下來我們試試看有沒有聲音吧。
1 | aplay /usr/share/sounds/alsa/Front_Center.wav |
這時你應該可以從耳機上聽到一段人聲。
使用 OMXPlayer 播放
一個簡單播放 Mp3 的方式便是透過 OMXPlayer。
1 | sudo apt-get install omxplayer |
OMXPlayer 是很強大的播放程式,除了支援 Raspberry Pi SoC 的硬體視訊加速功能外,也可以直接透過命令列直接播放影片。
以下簡單介紹幾種用法。
播放一個影片檔:
1 | omxplayer video.mp4 |
使用 HDMI 播放影片檔:
1 | omxplayer -o hdmi video.mp4 |
AirPlay with Raspberry Pi
AirPlay 是 Apple 的一種播放技術,可以將 Mac & iDevice 上的 Video or Audio 送到支援 AirPlay 的設備上進行播放,換句話說只要買一個支援 AirPlay 的藍芽喇叭,就可以把 iPhone 上的音樂送到藍芽喇叭上播放;買一個 Apple TV,就可以把 iPad 上的日劇透過 AirPlay 送到家中的大螢幕上觀看,真是太方便的功能啊。
如果不想買貴鬆鬆的藍芽喇叭,那麼發揮 Maker 的浪漫,拿家裡的電腦喇叭透過 Raspberry Pi 來實現 AirPlay 也是可以的喔。
首先更新系統,並下載必要的程式。
1 | sudo apt-get update |
shairport
shairport 是一個模擬 AirPort Express 並作為接受 AirPlay 串流音樂的程式,雖然不支援 AirPlay v2 (影像及照片串流),但用作播放音樂使用的話,其實是很不錯的。
shairport 的作者已經聲明不再維護該專案了。
安裝 shairport:
1 | git clone https://github.com/abrasive/shairport.git |
現在拿出 iPhone 播放音樂,開啟 AirPlay,並選擇 AirPi,好了,現在有音樂了!
參考資料:
- http://trouch.com/2012/08/03/airpi-airplay-audio-with-raspberry/
- https://github.com/abrasive/shairport
- http://cagewebdev.com/index.php/raspberry-pi-getting-audio-working/
- http://atceiling.blogspot.tw/2014/02/raspberry-pi.html#.VXVXJ2CbS7M
- http://www.raspberrypi-spy.co.uk/2013/06/raspberry-pi-command-line-audio/