视频播放器上实现AirPlay投屏功能


实现类似腾讯视频App 投影到电脑或电视上的功能

先明确几个问题:

1.多屏互动功能中 iphone设备基于AirPlay协议,Android设备基于DLNA协议;

2.原理是把正在播放的视频推送到同一网络中的其它播放设备,如电视、手机、电脑,它们共享这一视频播放;


先上代码:

MPVolumeView *volume = [[MPVolumeView alloc] initWithFrame:CGRectMake(0, 100, 50, 50)];
volume.showsVolumeSlider = NO;
[volume sizeToFit];
[VideoView addSubview:volume];

是不是很简单,你们确定一下就能理解?说一下我遇到的问题:

1.当时有点懵,MPVolumeView 不是控制视频音量么,找了些资料也都没说清楚,代码倒是都差不多,后来找到官方解析(官方地址)总算是明白了,MPVolumeView 不只控制音量,它生成的是AirPlay picker 这么个连体婴儿,包含volumeSlider(音量) 和 routeButton(类似个小电视图标的airplay),它们是默认显示的,这就是为啥自定义只想显示小电视时需要 volume.showVolumeSlider = No。


2.再说下这个VideoView是啥,因为我是自定义的播放器,播放器上有一个透明view来放开始/结束按钮、播放进度条、放大/缩小按钮、收藏按钮等等,实际就是放在播放器视图上。


3.当时这么写后run,模拟器上显示不出来,加了背景色却一直显示,也知道需要在真机上调,心里却还是有一些嘀咕,怎么在真机上调也成了个问题;在Mac上下了AirPlayer Pro不仅是付费的,手机也查不到这个设备,后来用的AirServer,手机本身的AirPlayer 终于能找到电脑了;然后再调试播放视频的时候这个小电视图标也显示出来了,再编码设定显示的合理位置。


GitHub上建了个基于CC视频的应用:https://github.com/tony574273719/CCVideoPlayer


你可能感兴趣的:(ios,AirPlay,MPVolumeView,AirServer,投屏)