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];

}

至此,播放器的播放功能实现。

results matching ""

    No results matching ""