最近剛好用到透過AirPlay去連一台三爽螢幕,不過是使用MacOS連上去的,也就是讓MacOS的機器不需實體就能連上外接的三爽螢幕。查了一下有人寫了給Linux用的Java based程式,所以來試試看能不能用。
從這個github clone程式:
https://github.com/openairplay/open-airplay
以及下載預先compile好的aprplay.jar
https://github.com/openairplay/open-airplay/releases/tag/0.1.1
安裝相關程式並執行compile:
apt-get install -y default-jdk
apt-get install -y maven
cd open-airplay-master/Java
ant
產生jmdns.jar
接著執行:
java -cp "build/airplay.jar:lib/jmdns.jar" com.jameslow.AirPlay
它開始搜尋目前LAN裡的AirPlay,找不到的話當然沒有任何可連上的目標,如果有,就會顯示它的名稱、IP,點下去之後,可以選解析度。
然後,就沒有然後了!
換用MacOS的機器去連的話,找到AirPlay所提供的螢幕之後點下去,會有一組4位數顯示在對方的螢幕(這要看AirPlay怎麼設定條件,一般是這樣),這時就打在你所操作MacOS這台機器,然後就連上了,等同一個外接螢幕。證明給Linux用的這個Java程式無法如預期的工作。
畢竟AirPlay用的是阿婆公司私有的protocol,並沒有open source,所有試圖連接AirPlay的辦法應該都是走reverse engineering得到的,沒有預期的結果也很正常,不必失望。
這時發現另一個螢幕投射程式
https://github.com/pavlobu/deskreen
可以下載它compile好的可執行程式,包括Linux, Mac, Windows都有,不過已經三年沒再更新。
執行 deskreen 之後它會產生一串位置的 link(例如:http://192.168.1.100:3131/123456), 任何在你同一個 LAN 裡的電腦都可以用瀏覽器打開這個連接字串,然後你在本身電腦上面按下允許,你的螢幕就能投射到對方那一台電腦的螢幕上了(它單純就是投影過去,對方不能操作你的電腦),好像很簡單。
馬上來試,立即成功使用。不過這跟阿婆的AirPlay無關。
也就是只要有瀏覽器的電腦(包括手機、平板、一般電腦)都能被執行deskreen的電腦投影過去,當成另一台外接螢幕。