IJKPlayer是基于FFmpeg的视频直播框架。
1. 下载:
https://github.com/Bilibili/ijkplayer
2. 安装
进入文件夹的根目录,阅读README.md。
首先初始化,运行
./init-ios.sh
然后进入ios目录,运行
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
3. 创建项目
在ios目录中创建新的项目
将ios目录下的IJKMediaPlayer项目拖入新的项目
添加Frameworks和Libraries
4. 让项目跑起来
写一个简单的视图控制器
#import "XYViewController.h"
@interface LiveViewController : XYViewController
@property (nonatomic, copy) NSString * URL;
@end
#import "LiveViewController.h"
#import <IJKMediaFramework/IJKMediaFramework.h>
@interface LiveViewController ()
@property(nonatomic, strong) IJKFFMoviePlayerController * player;
@end
@implementation LiveViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = @"直播";
[self setupView];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.player prepareToPlay];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.player shutdown];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Setup
- (void)setupView {
// 这个一定要有,options是对数据的处理,videotoolbox解码,设置音频视频等属性,都要有这个数据
IJKFFOptions * options = [IJKFFOptions optionsByDefault];
IJKFFMoviePlayerController * player = [[IJKFFMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:self.URL] withOptions:options];
player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
player.view.frame = self.view.bounds;
player.scalingMode = IJKMPMovieScalingModeAspectFit;
// 如果是直播,最好不让他自动播放,如果YES,那么就会自动播放电影,不需要通过[self.player play];就可以播放了
// 但是如果NO,我们需要注册通知,然后到响应比较合适的地方去检测通知,然后必须通过[self.player play];手动播放
player.shouldAutoplay = YES;
self.player = player;
self.view.autoresizesSubviews = YES;
[self.view addSubview:self.player.view];
}
@end
传入直播地址,运行项目。