1.下载ijkplayer框架
下载地址:https://github.com/Bilibili/ijkplayer
打开ijkplayer-master文件夹
找到README.md打开,并找到如下内容,这些就是编译ijkplayer的步骤,由于我们是从github上下载的,所以只需理会红色框框圈住的部分即可
2.下载ffmpeg
按照步骤,先打开终端,cd到ijkplayer-master文件夹目录下
命令如下类似:
cd /Users/xxx/xxx/framework/ijkplayer-master
然后执行第一步:
./init-ios.sh
这步是去下载 ffmpeg ,下载到 ijkplayer-master / extra 目录下,这个过程会久一点,网络好就快点,如下图:
3.编译ffmpeg
下载完成后,执行 cd ios 进到ios文件夹,然后依次执行
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
编译ffmpeg,这个时间会久一些,要耐心等待。
4.打包成IJKMediaFramework框架
按这个目录 ijkplayer-master/ios/IJKMediaPlayer 进入,打开项目,如下图:
按箭头所示,选择这个IJKMediaFramework
然后按下图所示,选择Edit Scheme
选择release
设置完scheme后,分别选择真机和模拟器进行编译
进入编译后的文件夹
可看到编译的库,此处我只编译了真机的版本
如果要讲模拟器和真机编译出来的库合成一个,可在终端用以下命令:
lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径"
5.项目中集成
在项目中添加 IJKMediaFramework.framework,并添加依赖库,依赖库可在README.md中查看,如下图:
(此处偷一下图),图中少了一个库:libstdc++.6.0.9.tbd
最后写了一点测试代码测试下,如下:
#import "ViewController.h"
#import <IJKMediaFramework/IJKMediaPlayer.h>
@interface ViewController ()
@property (atomic, strong) NSURL *url;
@property (atomic, retain) id <IJKMediaPlayback> player;
@property (strong, nonatomic) UIView *playerView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.playerView.hidden = NO;
self.url = [NSURL URLWithString:@"http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"];
_player = [[IJKFFMoviePlayerController alloc] initWithContentURL:self.url withOptions:nil];
UIView *playerView = [_player view];
playerView.frame = self.playerView.frame;
playerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.playerView insertSubview:playerView atIndex:1];
[_player setScalingMode:IJKMPMovieScalingModeAspectFill];
// [self installMovieNotificationObservers];
[self.player prepareToPlay];
[self.player play];
}
#pragma mark - getter
- (UIView *)playerView{
if (!_playerView) {
_playerView = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:_playerView];
}
return _playerView;
}
参考链接:
http://www.jianshu.com/p/1f06b27b3ac0