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

原创 2016年08月31日 16:33:24


实现类似腾讯视频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 --- 音量调节视图MPVolumeView的使用

在之前的一篇文章 iOS — 使用AVFoundation的AVAudioPlayer来播放音频中,简单介绍了AVAudioPlayer的使用。其中通过AVAudioPlayer对象实例的volume...

iOS_隐藏系统音量(MPVolumeView初探)

有些应用会需要我们隐藏系统的音量 HUD 提示框,之前我们都是用 “MPMusicPlayerController” 来进行隐藏,但在iOS7.0之后我们发现可以使用 “MPVolumeView” 来...

iOS调整系统屏幕亮度和音量

一 iOS调整系统屏幕亮度 在iOS5.0以前,无法直接修改系统屏幕亮度,到了iOS5.0以后,苹果给开发者提供了相应的API,避免了之前间接调整屏幕亮度的假象,使之更加方便。 1 调整屏幕亮度相...

自定义实现MPVolumeView音量控件

http://blog.csdn.net/theonezh/article/details/8158420 http://www.cnblogs.com/cate/ios/ http://www.cn...
  • l_ch_g
  • l_ch_g
  • 2013年08月17日 12:39
  • 9990

自定义实现MPVolumeView音量控件

在ios中可以使用MPVolumeView来调节音量,缺点是UI是固定的,而且静音的时候会显示“No Volume Available”。自定义的volume view能避免这些问题。 自定义的...

airplay按钮

自定义一个全局的button,然后添加MPVolumeView拿到里面的button进行更换。     MPVolumeView *volumeView = [[MPVolumeView all...

使用Platium库开发dlna投屏功能

这几天公司的应用(iOS端)上要加一个dlna的功能,就是局域网内设备投屏控制的一个功能,并提供移动端控制。因为三方库Platinum是使用C++写的,所以我被分配去做库的Objective-C封装的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android4.4 Framework分析——广播的注册(BroadcastReceiver)和发送(sendbroadcast)过程分析

在Android应用程序框架中,Activity和Service类都继承了ContextWrapper类,因此,我们可以在Activity或者Service的子类中调用registerReceiver...

移动设备无线投屏到电视机

移动设备无线投屏到电视机主要有三种种技术:AirPlay、DLNA与Miracast技术。 DNLA,Digital Living Network Alliance,是索尼、英特尔、微软等发起的一套 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视频播放器上实现AirPlay投屏功能
举报原因:
原因补充:

(最多只允许输入30个字)