前幾天突然心血來潮想做一個視頻播放器噪服,但是系統(tǒng)自帶的播放框架什么的太麻煩,所以找了好久的框架胜茧。都快找的懵逼了粘优,才終于決定選MobileVLCKit了。
這個框架如果自己下載下來呻顽,自己編譯在加進(jìn)項(xiàng)目的話雹顺,估計(jì)夠嗆,我弄了半天果斷放棄了廊遍。
推薦使用cocoa pods來導(dǎo)入框架
下面我們就該下載安裝cocoa pods了嬉愧。
我安裝成功的那篇教程忘記保存沒找到了,找了一個差不多的別人的教程
連接:http://blog.csdn.net/ada_dengpan/article/details/50612735
估計(jì)安裝cocoa pods報(bào)錯:安裝CocoaPods報(bào)SSL在深度2驗(yàn)證錯誤:無法獲取本地發(fā)行者證書
終端:sudo gem install -n/usr/local/bin cocoa pods
然后在下一步終端: pod setup 配置下就ok了
進(jìn)入工程目錄:命令窗口輸入 vim Podfile
然后在Podfile里輸入***
platform:ios, '10.2' pod 'MobileVLCKit', '~> 2.2.2' target 'ceshias' do end
ceshias改成你的工程名稱喉前;
終端:pod install
基本到這里估計(jì)你已經(jīng)把框架導(dǎo)入成功了没酣。
導(dǎo)入之后記得添加一下依賴:
libstdc++.6.0.9.tbd libiconv.2.tbd libc++.1.tbd libz.1.tbd libbz2.1.0.tbd
下面說怎么使用了
簡單的播放
創(chuàng)建對象
VLCMediaPlayer * _player = [[VLCMediaPlayer alloc] initWithOptions:nil];
設(shè)置承載播放視頻的view
UIView *playView= =[[UIView alloc]initWithFrame:self.view.frame];
[self.view addSubview:playView];
把view設(shè)置給_player
_player.drawable =playView;
設(shè)置播放地址(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 播放位置(可以設(shè)置當(dāng)前位置 最大位置1.0)
它的代理方法:
VLCMediaPlayerDelegate
當(dāng)時間發(fā)生改變時被饿,可以在該方法中去調(diào)用獲取播放時間和剩余時間
-(void)mediaPlayerTimeChanged:(NSNotification *)aNotification四康;
當(dāng)播放狀態(tài)發(fā)生改變時
-(void)changePlayBtnState:(LWBPlayState )state;
實(shí)現(xiàn)代理VLCMediaThumbnailerDelegate
獲取縮略圖:(好像也要等視頻開始播放才能獲取的到狭握,不然也是空)
VLCMediaThumbnailer *thumbnailer = [VLCMediaThumbnailer thumbnailerWithMedia:self.player.media andDelegate:self];
開始獲取縮略圖
[thumbnailer fetchThumbnail];
獲取縮略圖它會調(diào)用下面兩個代理方法闪金,需要你自己去實(shí)現(xiàn)
獲取縮略圖超時
-(void)mediaThumbnailerDidTimeOut:(VLCMediaThumbnailer *)mediaThumbnailer;
獲取縮略圖成功
-(void)mediaThumbnailer:(VLCMediaThumbnailer *)mediaThumbnailer didFinishThumbnail:(CGImageRef)thumbnail;
下面段代碼可以獲取播放總時長哎垦,但是必須在視頻播放后去獲取囱嫩,不然得到的是零
獲取視頻時間
int AllTime = self.player.media.length.intValue;
獲取視頻剩余時間(獲取的是個負(fù)數(shù))
int remainTime= self.player.remainingTime.intValue;
獲取當(dāng)前的播放進(jìn)度
int currentTime = self.player.time.intValue;
MobileVLCKit框架能用到的方法基本這樣了
下面說一些獲取音量,獲取屏幕亮度
音量:
@property(nonatomic,strong)MPVolumeView * volumeView;
@property(nonatomic,strong) UISlider* volumeViewSlider;
_volumeView =[[MPVolumeView alloc]init];
設(shè)置音量大小
_volumeViewSlider.value = 0.5;
for (UIView *view in [_volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
_volumeViewSlider = (UISlider*)view;
_volumeViewSlider.backgroundColor = [UIColor yellowColor];
break;
}
}
要間接創(chuàng)建volumeViewSlider漏设,因?yàn)楦静荒苤苯觿?chuàng)建墨闲。只能從MPVolumeView里面獲取
然后你就可以直接volumeViewSlider的value屬性調(diào)節(jié)音量了
屏幕亮度:[UIScreen mainScreen].brightness=0.5;
brightness屬性調(diào)節(jié)屏幕亮度
好了到就說到這里了郑口,在多的估計(jì)我也不知道了鸳碧,能幫到大家我感覺非常的榮幸!寫的不好的話犬性,希望大家不要介意瞻离,謝謝。
下面這個是我對MobileVLCKit進(jìn)行了下封裝
http://git.oschina.net/baisekongjian/iosmobilevlckitdemo
該Demo進(jìn)行了二次封裝 有以下接口 本項(xiàng)目在MobileVLCKit框架上進(jìn)行了二次封裝 有以下接口
- 播放乒裆、暫停套利、停止
- 設(shè)置當(dāng)前播放位置
- 設(shè)置播放速度
- 開始播放視頻時回調(diào)接口
- 獲取縮略圖接口
- 播放狀態(tài)改變時接口
- 播放時間改變時接口
- 播放的視頻總時長
- 視頻下載功能接口
- 讀取已下載的視頻功能接口
- 音量調(diào)節(jié)方法(真機(jī)測試才可以看到效果)
- 屏幕亮度調(diào)節(jié)方法(真機(jī)同上)
- 視頻的快進(jìn)和后退方法
- 自動橫豎屏
- 強(qiáng)制橫豎屏方法(必須把自動橫豎屏標(biāo)記設(shè)置為yes);
- 支持本地播放和網(wǎng)絡(luò)播放 本地播放設(shè)置ptah路徑 網(wǎng)絡(luò)播放設(shè)置url路徑