AirPlay 是苹果公司开发的协议, 比较封闭,仅仅用于 iOS/Mac 与apple自己tv:apple-tv之间进行交互,而且不同的IOS版本可能还会有变化,如果你用apple的官方接口应该没有问题,但是网络上对airplay的抓包和分析,不同的版本可能还不一样.
Airplay设备有客户端和服务器之分,一般将小屏IOS设备实现为Airplay客户端,大屏幕设备实现为Airplay服务器。即iPhone, iPad, iPod一般为Airplay客户端,iTV设计为Airplay服务器,在小屏和大屏之间分享视频、照片和音乐。
Airplay服务器端包含3个服务:DNS服务发现服务;基于HTTP协议的Airplay服务和基于UDP的Airtunes服务。DNS服务发现服务,在linux系统中有开源的AVAHI库,其他两个服务需要基于Airplay协议去实现。
Airplay服务端包含的协议:DNS服务发现协议、HTTP协议、TCP/UDP协议、Airplay协议
Airplay服务端包含的服务:DNS服务发现服务、Airplay服务和Airtunes服务
本文整理了目前的一些开源工程:
Airplay 协议源代码, 包括RK3036 SDK https://github.com/xfirefly/Airplay-SDK
Airplay 协议库集合 https://github.com/jamesdlow/open-airplay
一个开源实现, mirroring 延迟久 https://github.com/z80020100/AirplayServer
Raspberry Pi的开源AirPlay镜像服务器。支持iOS 9及更高版本 https://github.com/FD-/RPiPlay
与ShairPort类似的AirPlay服务器实现 https://github.com/juhovh/shairplay