前几天突然心血来潮想做一个视频播放器,但是系统自带的播放框架什么的太麻烦,所以找了好久的框架。都快找的懵逼了,才终于决定选MobileVLCKit了。
这个框架如果自己下载下来,自己编译在加进项目的话,估计够呛,我弄了半天果断放弃了。
推荐使用cocoa pods来导入框架
下面我们就该下载安装cocoa pods了。
我安装成功的那篇教程忘记保存没找到了,找了一个差不多的别人的教程
连接:http://blog.csdn.net/ada_dengpan/article/details/50612735
估计安装cocoa pods报错:安装CocoaPods报SSL在深度2验证错误:无法获取本地发行者证书
终端:sudo gem install -n/usr/local/bin cocoa pods
然后在下一步终端: pod setup 配置下就ok了
进入工程目录:命令窗口输入 vim Podfile
然后在Podfile里输入***
platform:ios, '10.2' pod 'MobileVLCKit', '~> 2.2.2' target 'ceshias' do end
ceshias改成你的工程名称;
终端:pod install
基本到这里估计你已经把框架导入成功了。
导入之后记得添加一下依赖:
libstdc++.6.0.9.tbd libiconv.2.tbd libc++.1.tbd libz.1.tbd libbz2.1.0.tbd
下面说怎么使用了
简单的播放
创建对象
VLCMediaPlayer * _player = [[VLCMediaPlayer alloc] initWithOptions:nil];
设置承载播放视频的view
UIView *playView= =[[UIView alloc]initWithFrame:self.view.frame];
[self.view addSubview:playView];
把view设置给_player
_player.drawable =playView;
设置播放地址(url)
_player.media=[VLCMedia mediaWithURL:[NSURL URLWithString:@"http://edge.ivideo.sina.com.cn/6265508.flv?KID=sina,viask&Expires=1497283200&ssig=Fm93rOHyRd"]];
播放
[self.player play];
一个简单的播放就完成了,
下面说一些方法
-(BOOL)play; 播放
-(void)pause; 暂停
-(void)stop; 停止
属性:
rate 播放速度(正常速度 1.0)
position 播放位置(可以设置当前位置 最大位置1.0)
它的代理方法:
VLCMediaPlayerDelegate
当时间发生改变时,可以在该方法中去调用获取播放时间和剩余时间
-(void)mediaPlayerTimeChanged:(NSNotification *)aNotification;
当播放状态发生改变时
-(void)changePlayBtnState:(LWBPlayState )state;
实现代理VLCMediaThumbnailerDelegate
获取缩略图:(好像也要等视频开始播放才能获取的到,不然也是空)
VLCMediaThumbnailer *thumbnailer = [VLCMediaThumbnailer thumbnailerWithMedia:self.player.media andDelegate:self];
开始获取缩略图
[thumbnailer fetchThumbnail];
获取缩略图它会调用下面两个代理方法,需要你自己去实现
获取缩略图超时
-(void)mediaThumbnailerDidTimeOut:(VLCMediaThumbnailer *)mediaThumbnailer;
获取缩略图成功
-(void)mediaThumbnailer:(VLCMediaThumbnailer *)mediaThumbnailer didFinishThumbnail:(CGImageRef)thumbnail;
下面段代码可以获取播放总时长,但是必须在视频播放后去获取,不然得到的是零
获取视频时间
int AllTime = self.player.media.length.intValue;
获取视频剩余时间(获取的是个负数)
int remainTime= self.player.remainingTime.intValue;
获取当前的播放进度
int currentTime = self.player.time.intValue;
MobileVLCKit框架能用到的方法基本这样了
下面说一些获取音量,获取屏幕亮度
音量:
@property(nonatomic,strong)MPVolumeView * volumeView;
@property(nonatomic,strong) UISlider* volumeViewSlider;
_volumeView =[[MPVolumeView alloc]init];
设置音量大小
_volumeViewSlider.value = 0.5;
for (UIView *view in [_volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
_volumeViewSlider = (UISlider*)view;
_volumeViewSlider.backgroundColor = [UIColor yellowColor];
break;
}
}
要间接创建volumeViewSlider,因为根本不能直接创建。只能从MPVolumeView里面获取
然后你就可以直接volumeViewSlider的value属性调节音量了
屏幕亮度:[UIScreen mainScreen].brightness=0.5;
brightness属性调节屏幕亮度
好了到就说到这里了,在多的估计我也不知道了,能帮到大家我感觉非常的荣幸!写的不好的话,希望大家不要介意,谢谢。
下面这个是我对MobileVLCKit进行了下封装
http://git.oschina.net/baisekongjian/iosmobilevlckitdemo
该Demo进行了二次封装 有以下接口 本项目在MobileVLCKit框架上进行了二次封装 有以下接口
- 播放、暂停、停止
- 设置当前播放位置
- 设置播放速度
- 开始播放视频时回调接口
- 获取缩略图接口
- 播放状态改变时接口
- 播放时间改变时接口
- 播放的视频总时长
- 视频下载功能接口
- 读取已下载的视频功能接口
- 音量调节方法(真机测试才可以看到效果)
- 屏幕亮度调节方法(真机同上)
- 视频的快进和后退方法
- 自动横竖屏
- 强制横竖屏方法(必须把自动横竖屏标记设置为yes);
- 支持本地播放和网络播放 本地播放设置ptah路径 网络播放设置url路径