Android平臺Airplay的實現方法
如果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協議去實現。
1 Airplay概念圖
Airplay客戶端:iPhone, iPad, iPod等IOS裝置
Airplay伺服器:iTV, Macbook, AndriodTVBox
網路:Wifi無線區域網
Airplay服務端包含的協議:DNS服務發現協議、HTTP協議、TCP/UDP協議、Airplay協議
Airplay服務端包含的服務:DNS服務發現服務、Airplay服務和Airtunes服務
2 部分Airplay開原始碼(Android平臺的較少哦)
Servers | |||
Name | Description | Open | |
AirServer | The best app for turning your Mac into an AirPlay screen | - | |
Reflection | Turn your Mac or PC into an AirPlay screen | - | |
Banana TV | Another app to turn your Mac into and AirPlay screen | - | |
Casual Share | Mac AirPlay receiever | R | |
AirMac | Turns you Macintosh into an Airplay receiver (Objective C) | R | |
Airstream Media Player | C# based AirPlay screen for windows and AirPlay server source code | R | |
Play2Wifi | An AirPlay server written in Python | R |
3 Android平臺上Airplay的實現
簡要說明一下:實現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, 總會成功的。
4 感想
學會了Android平臺Airplay的實現方法,屌絲裝置能和高富帥裝置互動,還是有一絲驚豔的。不過Airplay不是唯一技術,DLNA,WifiDisplay也有類似功能。
相關文章
- Android平臺實現https信任所有證書的方法AndroidHTTP
- 說說android端實現Airplay多屏互動(二)AndroidAI
- Fairplay DRM與混淆實現AI
- Fairplay DRM與混淆實現的研究AI
- 基於Android平臺的RouterSDK設計與實現Android
- Android平臺Camera實時濾鏡實現方法探討(一)--JNI操作BitmapAndroid
- 論文第5章:Android繪圖平臺的實現Android繪圖
- 基於Android平臺實現人臉識別Android
- cocos creator(十三)android平臺返回鍵的監聽實現Android
- Flutter實現Android、iOS跨平臺經驗總結FlutterAndroidiOS
- SAP OData offline store在Android平臺的技術實現Android
- Android 原始碼windows平臺下載方法Android原始碼Windows
- Android 回撥方法的實現Android
- GRPC 多平臺實現RPC
- SAAS雲平臺 成現實
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- 平臺遊戲中走與跳的實現遊戲
- [轉]:多程式等待的跨平臺實現
- 實現 Java 平臺的三種方式(轉)Java
- 直播平臺搭建,vue中實現圖片懶載入的幾種方法Vue
- Android 沉浸式全屏的實現方法Android
- android 實現拍照的2種方法Android
- 在linux平臺實現atoslLinux
- NFS實現跨平臺硬碟共享NFS硬碟
- 直播平臺原始碼,多種方法實現圖片複雜排列原始碼
- 直播平臺原始碼,Android實現密碼顯示與隱藏原始碼Android密碼
- 實體平臺可以親臨現場實體的靠譜平臺18388858011
- 直播平臺軟體開發,一個簡單的Android登入實現demoAndroid
- 美團外賣Android平臺化的複用實踐Android
- 微服務治理平臺的RPC方案實現微服務RPC
- 【quickhybrid】API多平臺支撐的實現UIAPI
- 跨平臺表空間傳輸的實現
- 搭建直播平臺,Android開發之禁止下拉通知欄的方法Android
- Android 圖片平鋪實現方式Android
- Android平臺Camera開發實踐指南Android
- IoT平臺如何實現業務配置中心
- NET平臺下TCP實現IOCP例子TCP
- Django實現教育平臺全程記錄-----後臺管理Django