关闭

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

标签: iosAirPlayMPVolumeViewAirServer投屏
5337人阅读 评论(0) 收藏 举报


实现类似腾讯视频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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6925次
    • 积分:109
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档