移动端设计研发开源工具技巧iOS Developer

MobileVLCKit框架的使用和一些方法

2017-06-11  本文已影响1880人  星彬

前几天突然心血来潮想做一个视频播放器,但是系统自带的播放框架什么的太麻烦,所以找了好久的框架。都快找的懵逼了,才终于决定选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

89B96827-6576-49C5-B135-DCCFBA1EFD63.png
该Demo进行了二次封装 有以下接口 本项目在MobileVLCKit框架上进行了二次封装 有以下接口
上一篇 下一篇

猜你喜欢

热点阅读