2014年3月1日 星期六

Raspberry Pi : 以 rPlay 進行 AirPlay mirroring

去年剛玩 Raspberry Pi 時,一直在找 AirPlay mirroring 的解決方案,只看到有人到處貼可行的影片,卻沒有更進一步的資訊,之後「熱」退了,也沒再留意相關的訊息。昨天在別人不要的筆電上灌好 EzGo 後,想看看 Linux 上是否有 AirPlay mirroing 的可能,關鍵字打下去,淨是 Raspberry Pi 的相關文章,就這麼挖到了去年就發佈的「rPlay」,更棒的是,居然有提供試用的 license key ,我先依別人文章中的建議程序安裝 rPlay,試用非鏡像的部份,順便發 e-mail 要授權碼,果然如網友所描述的,不到 12 小時就收到  license key,試了一下,真的可以讓 Raspberry Pi 接收來自 iPad 的 AirPlay mirroring 資料並在 RPi 所接的螢幕上顯示。這年頭真的是能人處處有,現在不可能的事,不代表以後不行。底下稍微將安裝的程序記錄一下。


這次的安裝環境是 2013-05 wheezy-raspbian@Raspberry Pi Model B (512MB)。

iPad AirPlay mirroring @ Raspberry Pi (直拿的畫面)


更新靭體及系統

太久沒用了,首先要更新 Raspberry Pi 的靭體,此部份運氣不好可能會造成重新啟動以後開不了機,強烈建議先將 SD 上備份後再進行 (嗚~我玩兩次,第二次時就是失敗的,幸好我還有備份的 image 可以玩。)。

登入後執行底下的指令:

sudo apt-get install rpi-update
sudo rpi-update

第一行幫我們安裝(更新)更新靭體的工具(rpi-update),第二道指令則是開始更新。這部份可能需要花一點點時間,喝個茶稍候一下吧!

接著順便將系統的其它檔案也更新一下,執行底下的指令:

sudo apt-get update
sudo apt-get upgrade

如果進行得順利,就可以 reboot 驗收成果。


安裝 rPlay 所需要的相關 libraries 或工具

rPlay 有一些必須使用的相關工具,我們依照官方建議,執行底下的指令來安裝:

sudo apt-get install libao-dev avahi-utils libavahi-compat-libdnssd-dev libva-dev youtube-dl

接著還需要更新 youtube-dl,執行底下的指令:

sudo youtube-dl --update

看起來,rPlay 有針對 YouTube 的部份特別處理。


下載並安裝 rPlay

首先要下載 rPlay,執行底下的指令下載 rplay-1.0.1:

wget -O rplay-1.0.1-armhf.deb http://www.vmlite.com/rplay/rplay-1.0.1-armhf.deb

有了檔案,我們就可以執行底下指令來安裝 rPlay 的 .deb 檔案:

sudo dpkg -i rplay-1.0.1-armhf.deb

如果安裝成功,rPlay 的服務應該會被自動啟動,在 TCP port 7100 會多一個 rPlay 的管理程式的 web 服務。這時已經可以拿 iDevice 來測試非鏡像的 AirPlay 了。


啟動 AirPlay mirroring 的功能 

想要使用 rPlay 來進行 AirPlay 鏡像就必須要有  license key ,目前官方有在發放授權碼供測試,我們只要發信給底下的信箱,或是到官網的討論區中留言,要一個來測試即可:

info@vmlite.com

該公司的人滿勤快的,收我請求的訊息會以 e-mail 將  license key 寄來,還附上安裝的程序(不過,都是英文的)。

有了  license key ,我們就可以用網頁瀏覽器連到 Raspberry Pi 的 port 7100,假設 RPi 的 IP 是 192.168.2.102,我們就可以用下面的網址來進入 rPlay 的管理界面:

http://192.168.2.102:7100/admin

出現輸入帳號、密碼的認證畫面,就以預設的帳號「admin」和密碼「admin」來登入。

進入管理頁面,捲到網頁的最下方,找「VMLite License key」輸入區,貼上收到的  license key 後,按「Submit」鈕送出,如果出現底下的訊息:

The license key has been successfully set.

表示管理程式已經幫我們將授權碼填入 /etc/rplay.conf 中了,也就是其實我們也可以自己用文字編輯工具修改 /etc/rplay.conf 的內容。

改完設定檔,我們必須重新啟動 rPlay 的服務,設定檔中的內容才會生效,我們可以執行底下的指令:

sudo /etc/init.d/rplay stop
sudo /etc/init.d/rplay start

當然囉,上面的指令也可以用底下這一行代替:

sudo /etc/init.d/rplay restart

如果  license key 沒問題,我們就可以在 iDevices 試試 AirPlay mirroring 的功能了!


試用心得

rPlay 能讓 iPad 的畫面在螢幕上顯現就是件令人感到驚豔的事,鏡像以外的 AirPlay 功能之前就有玩過,舊的經驗僅止於「可以用」,流暢性及操控性不如 Windows 或是 Mac 的部份,個人一直認為是 Raspberry Pi 硬體規格不如一般電腦那麼高的關係。不過 rPlay 和 XBMC 中的 AirPlay 來比,可能因為少了美美的圖形界面佔資源,感覺順多了,特別是多了我們教學上較需要的鏡像功能,在 Web 管理頁面中也有「錄影」的功能。開發團隊感覺很積極,基本上對 rPlay 還滿期待的 (呵~雖然我已經買了 AirServer了)。

目前發現 rPlay 有幾個問題:

  • 服務啟動後,在 iPad 上的 AirPlay  清單中有時並不會馬上出現。將 iPad 的網路關掉再打開後,好像較容易出現。
  • YouTube 非鏡像的 AirPlay 有時會失控,明明在 iPad 這邊已經關掉 AirPlay ,rPlay 卻仍繼續播放,接著開和關的動作就和 iPad 這邊的設定相反。
  • AirPlay 時,無法在 iPad 上控制 RaspberryPi 的音量。
  • rPlay 在使用 AirPlay mirroring 時會向 test.vmlite.com (port 9080, 9090) 通訊,送傳資料檢驗 license key ,因此 AirPlay mirroring 有時要點好幾次才能成功。
  • 如果兩台 iPad 同時 AirPlay 給 rPlay 會很好玩哦~畫面抖動個不停。


FAQ

  • 如何解決「ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front」的錯誤訊息?
執行底的指令來修改音效部份的設定檔:

sudo nano /usr/share/alsa/alsa.conf



pcm.front cards.pcm.front

改為

pcm.front cards.pcm.default



  • 如何調整 Raspberry Pi 的音量?


Raspberry Pi 如果輸出的音量太小,可以試著執行底下指令調整音量:

amixer  sset PCM,0 100%

上面的「100%」將音量開到最大。

或是執行底下指令:

alsamixer

這樣就可以鍵盤按鍵來控制音量。



參考網站




1 則留言:

  1. 寄給他兩天了為什麼他都還沒回覆我呢?

    回覆刪除

 
© 2009. Design by Pocket