IJKPlayer(哔哩哔哩播放器)研究(二)(2019-01-235)
IJKMediaFramework.framework使用
环境准备
XCode
一、导入依赖库
在项目工程中引用IJKMediaFramework.framework
(黄框选中区域)和其他依赖库(红框选中区域),如下图:
二、新建控制器实现播放功能
新建播放控制器
//导入头文件
#import <IJKMediaFramework/IJKMediaFramework.h>
//设置宏定义视屏播放链接(视屏播放链接为网上随便找的)
#define MovieUrlStr @"http://fms.cntv.lxdns.com/live/flv/channel84.flv"
//初始化播放器
- (void)useFFPlayer {
//IJKplayer属性参数设置
IJKFFOptions *options = [IJKFFOptions optionsByDefault];
[options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_frame" ofCategory:kIJKFFOptionCategoryCodec];
[options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@"skip_loop_filter" ofCategory:kIJKFFOptionCategoryCodec];
[options setOptionIntValue:0 forKey:@"videotoolbox" ofCategory:kIJKFFOptionCategoryPlayer];
[options setOptionIntValue:60 forKey:@"max-fps" ofCategory:kIJKFFOptionCategoryPlayer];
[options setPlayerOptionIntValue:256 forKey:@"vol"];
//初始化播放器
self.ffPlayer = [[IJKFFMoviePlayerController alloc] initWithContentURLString:MovieUrlStr withOptions:options];
self.ffPlayer.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
self.ffPlayer.view.frame = self.view.bounds;
self.ffPlayer.scalingMode = MPMovieScalingModeAspectFit;
//设置缓存大小,太大了没啥用,太小了视频就处于边播边加载的状态,目前是10M,后期可以调整
[self.ffPlayer setPlayerOptionIntValue:10* 1024 *1024 forKey:@"max-buffer-size"];
self.ffPlayer.shouldAutoplay = true;
self.view.autoresizesSubviews = true;
[self.view insertSubview:self.ffPlayer.view atIndex:1];
}
//在viewDidLoad中调用初始化播放器
- (void)viewDidLoad {
[super viewDidLoad];
//初始化播放器,准备播放
[self useFFPlayer];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = true;
//准备播放
[self.ffPlayer prepareToPlay];
//播放
[self.ffPlayer play];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.navigationController.navigationBar.hidden = false;
//暂停
[self.ffPlayer pause];
//关闭
[self.ffPlayer shutdown];
}
至此,播放器的播放功能实现。