AirPlay是苹果公司的在iOS4.2OS X Mountain Lion中加入的一种播放技术,可以将iPhoneiPod touchiPadMac(需要OS X Mountain Lion或更新版)上的视频镜像传送到支持Airplay的设备(如:音箱、Apple TV)中播放。使用Airplay需要iOS4.2版本的设备或Mac电脑上的iTunes10.1以上版本。视频镜像则需要iOS 5OS X Mountain Lion

当用户的设备(Mac, PC, iPod touch, iPhone, iPad)与支持AirPlay技术的音箱在同一无线局域网(WIFI)内的时候,用户在MacPC上打开iTunes 10或更高版本后,就会在iTunes音量条旁边(iTunes 10在窗口的右下角)看到一个AirPlay按钮。点击该AirPlay按钮,然后选择需要同步到的设备,就可以选择将音乐或视频无线同步到设备进行播放。而iPod touch, iPhoneiPad用户则可以在相应的“音乐”,“视频”以及支持AirPlay功能的第三方软件界面找到AirPlay按钮,操作同MacPC

由于AirPlay并非是开源的而且需要逆向获得AirPlay key,所以要实现AirPlay的难度不小,网上流传的AirPlay协议都是非官方的,WirelessDisplay群里有下载好的协议,每次 IOS的升级都会对AirPlay协议进行一定的修改,给刚接触想学习AirPlay的朋友推荐几个简单的AirPlay实现

第一个流传出来的AirPlay是由James Laird大神发布的,原因就是他的女朋友想将自己的ipod无线投到音响上播放,当时只有苹果官方的盒子才能够支持,James Laird一怒之下破解了当时的AirPlay协议,并且公开了Private Apple AirPlay key

https://github.com/abrasive/shairport

这个daemon采用c语言编写,可以进行ios7及以下设备的音频投射,在公司用ipod实测可用。

https://github.com/gpfduoduo/AirPlay-Receiver-on-Android

我天朝人发布的开源项目,支持IOS8.4之前的音视频投屏以及图片推送,经过实测可用。

 

AirPlay版本繁多,协议也比较多:镜像,非镜像,图片,视频,音频,第三方app等等各种协议之间都有差别,以后会慢慢给大家介绍的。

要实现AirPlay的第一步就是要实现iosAirPlay之间的相互发现,可以使用zeroconfmdns等开源协议来实现,下一章会详细介绍介绍这几种发现协议。