編輯:Android資訊
如果Android機頂盒能夠支持IOS設備的Airplay協議,實現為Airplay服務器,能夠接收和處理來自IOS設備的多媒體數據(視頻、照片和音樂),將能提高Android機頂盒的競爭力。本文將介紹Android平台Airplay的實現方法,希望對您有所幫助。
Airplay屬於局域網內異構設備之間分享多媒體數據的一種通信協議。Airplay設備有客戶端和服務器之分,一般將小屏IOS設備實現為Airplay客戶端,大屏幕設備實現為Airplay服務器。即iPhone, iPad, iPod一般為Airplay客戶端,iTV, Macbook設計為Airplay服務器,在小屏和大屏之間分享視頻、照片和音樂。Airplay屬於私有協議,版權Apple公司所有。
IOS設備的保有量非常大,如果Android機頂盒能夠支持IOS設備的Airplay協議,實現為Airplay服務器,能夠接收和處理來自IOS設備的多媒體數據(視頻、照片和音樂),將能提高Android機頂盒的競爭力。
技術點分析:Airplay服務器端包含3個服務:DNS服務發現服務;基於HTTP協議的Airplay服務和基於UDP的Airtunes服務。DNS服務發現服務,在linux系統中有開源的AVAHI庫,其他兩個服務需要基於Airplay協議去實現。
Airplay客戶端:iPhone, iPad, iPod等IOS設備
Airplay服務器:iTV, Macbook, AndriodTVBox
網絡:Wifi無線局域網
Airplay服務端包含的協議:DNS服務發現協議、HTTP協議、TCP/UDP協議、Airplay協議
Airplay服務端包含的服務:DNS服務發現服務、Airplay服務和Airtunes服務
簡要說明一下:實現Airplay,最重要的有兩步,第一步是:Airplay服務發布,讓IOS設備能發現你;第二步:實現Airplay協議應答, 讓IOS設備能和你交互。Airplay發布服務,Linux系統中原生的Zeroconf協議,用於發布網絡服務。Android平台上並不支持Zeroconf協議。所以需要安裝Linux版本的Avahi,Avahi是Zeroconf協議的Linux實現。Avahi服務發布管理系統,支持跨進程發布,其中跨進程的數據交互是通過DBUS-Service的。DBUS服務,Android原生系統就自帶。
上面介紹了一下系統庫的依賴關系,下面介紹一下如何實現吧。
(1) 修改DUBS-Service(Andriod)服務的權限,默認是藍牙才能訪問,設置為系統級程序都可以訪問。
(2) 編寫一個新的服務【零配置網絡發布服務ZeroconfAvahiService】,其中簡單封裝一下Avahi服務和Avahi-client。並在Android配置文件中,讓該服務自啟動。
(3) AirplayServer程序中,創建Avahi-client,發布Airplay服務。如果IOS設備能發現您的Android設備,恭喜服務發布成功。
(4) 實現AirplayServer實現Airplay協議,完成與IOS設備的圖像、視頻數據的交互。Coding, Debugging, 總會成功的。
學會了Android平台Airplay的實現方法,屌絲設備能和高富帥設備交互,還是有一絲驚艷的。不過Airplay不是唯一技術,DLNA,WifiDisplay也有類似功能。
在Android開發中,我們經常會遇到訪問和加載本地聯系人的情況,畢竟手機中聯系人是最重要的數據之一,很多手機應用都會需要手機聯系人的信息,比如姓名、手機號碼等。
自從開始開發安卓應用,我一直感覺我可以做得更好。我看過不少爛代碼,其中當然有我寫的。安卓系統的復雜性加上爛代碼勢必釀成災禍,所以從錯誤中成長就很重要。我Googl
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃! 這些Android開發的技巧都是我個人的經驗。總共10條,所以我又
Web開發中Chrome、IE、firefox等浏覽器都自帶提供了插件幫助開發者跟蹤http數據,在手機客戶端怎麼實現http數據抓包 呢?Fiddler可以實現