iOS 做視頻播放器的時(shí)候有一個(gè)很大的坑,就是系統(tǒng)的自帶的播放器有很大的限制,有些格式的視頻無(wú)法播放
這個(gè)時(shí)候我們就要借助一下第三方庫(kù)等其他方式來(lái)實(shí)現(xiàn),VLC就是其中一個(gè)筹误,而且可以說(shuō)是最好的一個(gè)
第一次接觸VLC到官網(wǎng)去下載,很多人都會(huì)挑選最新的去下載癣缅,認(rèn)為最新的是最完美的厨剪,可是下載完以后,集成近項(xiàng)目后發(fā)現(xiàn)出現(xiàn)錯(cuò)誤了
MobileVLCKit(libvideotoolbox_plugin_la-videotoolbox.o)
這個(gè)錯(cuò)誤我也找了好久友存,發(fā)現(xiàn)并不能解決祷膳,后來(lái)發(fā)現(xiàn),VLC最新的不一定好用屡立,所以我就又找了一個(gè)直晨,最后才成功使用。VLC庫(kù)非常大
以下內(nèi)容都是手動(dòng)添加
百度云下載鏈接:https://pan.baidu.com/s/11gwgTP24EG4GIv86GRPldg 密碼:10hy
下載完成后將庫(kù)導(dǎo)進(jìn)項(xiàng)目,開(kāi)始配制環(huán)境
首先添加依賴(lài)庫(kù)勇皇。
AudioToolbox.framework
VideoToolbox.framework
CoreMedia.framework
CoreVideo.framework
CoreAudio.framework
AVFoundation.framework
MediaPlayer.framework
libstdc++.6.0.9.tbd
libiconv.2.tbd
libc++.1.tbd
libz.1.tbd
libbz2.1.0.tbd
由于庫(kù)是C++編寫(xiě)的罩句,需要接一個(gè)文件改成.mm后
在Build Setting 設(shè)置中 搜索C++ Standard Library 改為GNU模式
然后就可以使用了。
播放視頻
首先敛摘、引入#import <MobileVLCKit/MobileVLCKit.h>頭文件
接下來(lái)創(chuàng)建對(duì)象
@property (nonatomic,strong) VLCMediaPlayer *player;//播放器
@property (nonatomic,strong) UIView *videoView;//展示的View
在下來(lái)就是使用播放器门烂,方法有很多,我就先寫(xiě)一個(gè)播放的
_videoView = [[UIView alloc] initWithFrame:CGRectMake(0, SafeAreaTopHeight, SCREEN_WIDTH,200)];
NSString *path=[[NSBundle mainBundle] pathForResource:@"testvideo" ofType:@"mov"];
[self.view addSubview:_videoView];
_player = [[VLCMediaPlayer alloc] initWithOptions:nil];
_player.drawable =_videoView;
_player.media = [VLCMedia mediaWithURL:[NSURL fileURLWithPath:path]];
[_player play];
視頻獲取縮略圖
首先引入頭文件
import <MobileVLCKit/VLCMediaThumbnailer.h>
import <MobileVLCKit/MobileVLCKit.h>
然后遵守以下協(xié)議
VLCMediaThumbnailerDelegate
創(chuàng)建對(duì)象
@property (strong,nonatomic) VLCMediaThumbnailer *thumbnailer;
然后就是直接使用
/**
創(chuàng)建獲取縮略圖對(duì)象
@param path 視頻地址
*/
- (void)getVideoImage:(NSString*)path{
//創(chuàng)建對(duì)象有兩種類(lèi)型,一種是網(wǎng)絡(luò)視頻,另一種是本地視頻 網(wǎng)絡(luò)視屏用[VLCMedia mediaWithURL:path] 本地 [VLCMedia mediaWithPath:path]
// _thumbnailer = [VLCMediaThumbnailer thumbnailerWithMedia:[VLCMedia mediaWithURL:path] andDelegate:self];
_thumbnailer = [VLCMediaThumbnailer thumbnailerWithMedia:[VLCMedia mediaWithPath:path] andDelegate:self];
[_thumbnailer fetchThumbnail];
}
/**
獲取視頻縮略圖超時(shí)
@param mediaThumbnailer mediaThumbnailer
*/
- (void)mediaThumbnailerDidTimeOut:(VLCMediaThumbnailer *)mediaThumbnailer{
_imageView.image = [UIImage imageNamed:@"homepage_tabheaderview_back.png"];
}
/**
協(xié)議回調(diào)獲取縮略圖
@param mediaThumbnailer mediaThumbnailer
@param thumbnail 視頻縮略圖
*/
- (void)mediaThumbnailer:(VLCMediaThumbnailer *)mediaThumbnailer didFinishThumbnail:(CGImageRef)thumbnail{
UIImage *image = [UIImage imageWithCGImage:thumbnail];
if (image == nil) {
image = [UIImage imageNamed:@"homepage_tabheaderview_back.png"];
} else {
_imageView.image = image;
}
}
以上就是VLC的簡(jiǎn)單使用着撩,希望對(duì)大家有用