有没有做过ios ios11airplay镜像的 用代码设备并且用代码连接到设备上

airplay(苹果公司制定的无线通讯技术)_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
?苹果公司制定的无线通讯技术
(苹果公司制定的无线通讯技术)
airPlay是的在4.2及OS X Mountain Lion中加入的一种播放技术,可以将iPhone、、iPad及(需要OS X Mountain Lion)上的视频镜像传送到支持Airplay的设备(如:音箱、)中播放。使用Airplay需要iOS4.2版本的设备或Mac电脑上的10.1以上版本。视频镜像则需要iOS 5及OS X Mountain Lion。
airplay简介
AirPlay是由美国推出的无线技术。日苹果公司发布的10.1软件全面支持AirPlay无线技术。
AirPlay无线技术允许用户在许可的扬声器底座、影音接收器和立体声系统等设备上使用整个iTunes资料库 无线同步播放音乐。
iPad版本的4.2也将支持AirPlay无线技术。[1]
选择“多个扬声器”
airplay特点
1.一曲同播:用户只需在 iTunes 的扬声器下拉菜单中选中&多个扬声器&就可以同时在多个扬声器上播放同一首歌曲。 2.查看乐曲详情:AirPlay能传输音乐的相关信息;歌曲名称、表演者、已播放时间和专辑封面等信息都可显示在支持AirPlay且配有图形显示屏的扬声器上。
airplay使用
用户只需使用音频电缆将立体声系统或扬声器插入AirPort Express上的音频端口,或者将支持AirPlay的输出设备连接到与iTunes资料库相同的本地网络。[2]
当在同一局域网(WIFI)内,有支持AirPlay的设备时,用户在 Mac 或 PC 上打开 iTunes 10 或更高版本并以Apple ID开启Genius!将会在 iTunes 窗口的右下角看到一个 AirPlay 按钮。点按该 AirPlay 按钮可以控制将内容传送到什么地方。
airplay支持AirPlay的产品
目前,除了官方的Apple TV支持AirPlay外,已经有越来越多的第三方设备支持AirPlay功能。比如传统的家庭影院与HIFI产品中,马兰士和天龙的新品功放和网络播放器已经率先支持AirPlay功能,并且部分iPod dock产品也已能够使用无线播放。如:NA7004、AVR-1912、AVR-2312、AVR-3312等。另外Airplay在家用PC上崭露头角,第三方软件MorefunTV全方位支持多屏Airplay多屏互动技术。
最新消息,公司推出了一款发烧产品,也具有支持AirPlay的功能。用户可以利用WiPlug把iphone、ipad上的多媒体内容(图片,音乐和视频)通过wifi传到电视机上播放出来,这样一台普通的电视就可以通过WiPlug变成了智能电视了。
对于广大果粉来讲这款产品的设计也非常的苹果
,外观为纯白色插头形状。直接插在接线板上省去了电源线和适配线达到了一个简而美的效果。
现在产品版本,已经可以让用户实现把iphone和ipad的整个屏幕,都投到电视机或者投影仪上显示,极大的方便了商务上的应用。AirPlay是iOS中一个很酷的功能,通过Wi-Fi连接支持AirPlay的设备,然后使用镜像功能就能在其他设备显示内容,播放声音。有很多大型的游戏都支持AirPlay,这样比如连接电视时,那么iPhone就完全变成了游戏手柄,而电视显示游戏画面。由于大部分的iOS用户都没有使用Apple TV,因此多屏幕的应用比较少使用。但这并不能否定AirPlay的强大功能。本文将介绍使用AirServer软件在Mac或Windows上实现AirPlay的功能,进而介绍通过编程实现多屏幕显示的方法。
1、使用AirServer软件实现AirPlay
AirServer是一个极其强大的软件,能够通过软件的方式完全实现Apple TV的功能。大家可以到Google之,有免费的试用版。下图就是其图标:
在安装好AirServer后,打开,可以看到标志在Mac的工具栏上:
OK,接下来就是将iPhone与Mac连接起来,可以使用iPhone上的热点,用Mac连接,或者在Mac上建立一个热点,让iPhone连接Wifi。
连接好之后,双击iPhoneHome键,拉到音量调节界面,如下:
点击右边的AirPlay按键,弹出设置界面:
选择第二个,也就是Mac:
打开镜像,完成。这样没有错误的情况下,在Mac上就实现了AirPlay的镜像,如下图:
接下来你可以播放视频,音乐来测试一下效果。如果有点卡的话,可以考虑重启一下wifi,这样传输速度会快一点。
2、编程实现多屏幕。
在可以使用AirPlay之后,我们要实现多屏幕,也就是在电脑上显示的和iOS设备上显示的内容不一样。
2.1 基本原理
获取新的屏幕信息---&创建一个新的Window---&将新的Window对应的Screen屏幕设置为新的屏幕---&设置新的屏幕的UI显示
我们知道,一般情况下,我们在开发过程中只使用一个window(UIWindow),而且一般在AppDelegate文件中创建,一般情况下我们甚至完全不用理会window。一样的,screen(UIScreen)我们除了通过它来获取一些屏幕信息之外也不会做任何处理,比较屏幕也只有一块。那么现在要实现多屏幕就不一样了。我们要创建新的window,获取新的screen,并且将window和screen联系在一起,这样要在这个window中显示的内容就可以显示在这个新的屏幕当中。
STEP 1:检查是否有多的屏幕存在,如果有,那么直接设置。一般先在viewController中设置一个UIWindow和UIScreen的实例:
@property (nonatomic,strong) UIWindow *externalW
@property (nonatomic,strong) UIScreen *externalS
然后,检查:
- (void)checkForExistingScreenAndInitializeIfPresent
if ([UIScreen screens].count & 1) {
self.externalScreen = [[UIScreen screens] objectAtIndex:1];
NSLog(@&external screen :%@&,self.externalScreen);
CGRect screenBounds = self.externalScreen.
self.externalWindow = [[UIWindow alloc] initWithFrame:screenBounds];
self.externalWindow.screen = self.externalS
// Set the initial UI for the window for example
UILabel *screenLabel = [[UILabel alloc] initWithFrame:screenBounds];
screenLabel.text = @&Screen 2&;
screenLabel.textAlignment = NSTextAlignmentC
screenLabel.font = [UIFont systemFontOfSize:100];
UIViewController *externalViewController = [[UIViewController alloc] init];
externalViewController.view.frame = screenB
[externalViewController.view addSubview:screenLabel];
self.externalWindow.rootViewController = externalViewC
self.externalWindow.hidden = NO;
在这里通过screens Method来判断是否屏幕数大于1,如果是意味着有别的屏幕连接到iOS设备,这时获取这个屏幕。
对于window初始化然后关键是要设置其Frame,一般就是设置成屏幕大小,全屏。然后将window的screen设置为外部屏幕。然后就可以进行window相关view,viewController的设置,上面的代码只是一个小例子。最后设置window 的hidden为NO。
对于上面这种情况,主要是针对iOS在启动应用之前就已经AirPlay了,那么,如果是启动应用后才要打开AirPlay呢?
当然有办法------notification
STEP 2:Notification检查屏幕的连接情况。
UIScreen有两个notification可以检查屏幕的连接情况:
UIScreenDidConnectNotification
UIScreenDidDisconnectNotification
一旦屏幕连接上或断开iOS设备,就会发出上面的notification。这样就简单了,设置一下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect:) name:UIScreenDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidDisconnect:) name:UIScreenDidDisconnectNotification object:nil];
然后进行相关的处理。
#pragma mark - Notifications Handler
- (void)screenDidConnect:(NSNotification *)notification
NSLog(@&connect&);
self.externalScreen = notification.
// Handle the configuration below......
- (void)screenDidDisconnect:(NSNotification *)notification
NSLog(@&disconnect&);
if (self.externalWindow) {
self.externalWindow.hidden = YES;
self.externalScreen =
self.externalWindow =
这样差不多就搞定了。基本上在iOS开发中主要是view的编辑,因为在新的屏幕中分辨率不一样,要进行特定的设置。
【本文为原创文章,如需转载,请注明出处!来自songrotek的Blog】
本文已收录于以下专栏:
相关文章推荐
琢磨AirPlay的经历:/bbs/read.php?tid-103810-page-6.html
iOS 开发 高级:通过AirServe...
iOS 4.3出来的时候,苹果有了个神奇的功能它可以神奇的将iphone,ipad的音频传输到appletv, airport-express基座上;也可以将照片传输给apple tv...
AirPlay是苹果公司的在iOS4.2及OS X Mountain Lion中加入的一种播放技术,可以将iPhone、iPod touch、iPad及Mac(需要OS X Mountain Lion...
最近在学习关于airplay相关协议,将了解到的内容记录下来,如有理解错误,请大神指正。
Airplay可以实现将设备中音频、视频、图像通过本地无线网络发送远端设备;Airplay功能实现利用...
PC上实现AirPlay功能的软件
发表于 2013
年 1 月 30 日
有IOS设备的用户现在有福了,小子今天要推荐的就是一款在PC下实现AirPlay功能的软件——R...
     公司在2015年5月立项做一款硬件类产品,使用SOC(CPU+DSP)芯片方案做一款高清会议室终端,除了会议功能之外,需要具备多路无线投屏功能。项目从5月份立项、历经搭建团队、研发...
iOS 4.3出来的时候,苹果有了个神奇的功能它可以神奇的将iphone,ipad的音频传输到appletv, airport-express基座上;也可以将照片传输给apple
前段时间刚做完Airplay的相关应用,现在就开发的一点经验和大家分享一下。
首先,说说Airplay吧,Airplay可以将iPhone,iPad或iPodtouch等设备上的视频、音频以及图...
1 Airplay背景知识
Airplay属于局域网内异构设备之间分享多媒体数据的一种通信协议。Airplay设备有客户端和服务器之分,一般将小屏IOS设备实现为Airplay客户端,大屏幕设备...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)中国领先的IT技术网站
51CTO旗下网站
Android平台Airplay的实现方法
如果Android机顶盒能够支持IOS设备的Airplay协议,实现为Airplay服务器,能够接收和处理来自IOS设备的多媒体数据(视频、照片和音乐),将能提高Android机顶盒的竞争力。本文将介绍Android平台Airplay的实现方法,希望对您有所帮助。
作者:佚名来源:csdn| 13:33
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平台的较少哦)
Description
The&best&app&for&turning&your&Mac&into&an&AirPlay&screen
Turn&your&Mac&or&PC&into&an&AirPlay&screen
Another&app&to&turn&your&Mac&into&and&AirPlay&screen
Mac&AirPlay&receiever
Turns&you&Macintosh&into&an&Airplay&receiver&(Objective&C)
C#&based&AirPlay&screen&for&windows&and&AirPlay&server&source&code
An&AirPlay&server&written&in&Python
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, 总会成功的。
学会了Android平台Airplay的实现方法,潘可璞改芎透吒凰璞附换ィ故怯幸凰烤薜摹2还Airplay不是唯一技术,DLNA,WifiDisplay也有类似功能。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
关注热点关注热点原创
24H热文一周话题本月最赞
讲师:30426人学习过
讲师:51835人学习过
讲师:83027人学习过
精选博文论坛热帖下载排行
当前,开源框架层出不穷,它为用户提供了通用的解决方案,同时也增加了用户的学习难度。开源是一把“双刃剑”,一方面它共享了资源,提供了...
订阅51CTO邮刊}

我要回帖

更多关于 airplay开源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信