IJKMediaFramework第三方库的合并集成及使用

2016年可谓是直播元年, 大多数做直播的时候使用 FFMpeg. IJKMediaFramework也是基于FFMpeg封装 使用起来比较简单.
ijkplayer 就是一款做视频直播的框架, 也是基于FFMpe, 支持 Android 和 iOS, 网上也有很多集成说明, 但是本人觉得还是不够详细, 在这里我把我在 iOS 中如何集成ijkplayer的流程记录一下!

一. 下载ijkplayer
二. 编译 ijkplayer
三. 打包IJKMediaFramework.framework框架
四. iOS工程中集成IJKPlayer
五. 使用 IJKMediaFramework第三方库

一. 下载ijkplayer

ijkplayer 解压后文件夹里面有android 和iOS 的.

二. 编译 ijkplayer

说是编译 ijkplayer, 其实是编译 FFMpeg.
下面开始一步步编译:

  1. 打开终端, cd 到jkplayer-master文件夹中, 也就是下载完解压后的文件夹.
  2. 终端执行命令行./init-ios.sh, 这一步是去下载 FFMpeg 的, 时间稍微会久一点, 耐心等一会就好.
  3. 在第2步中下载完成后, 终端执行cd ios, 也就是说进入到 ios目录下.
  4. 进入 ios 文件夹后, 在终端依次执行./compile-ffmpeg.sh clean./compile-ffmpeg.sh all命令, 编译 FFMpeg, 也就是README.md中这两步.编译时间也较久, 耐心等待一会就好.

三. 打包IJKMediaFramework.framework框架

集成 ijkplayer 有两种方法:
第一种方法是按照IJKMediaDemo工程中那样, 直接导入工程IJKMediaPlayer.xcodeproj, 在这里不做介绍, 如下图:


IJKMediaFramework第三方库的合并集成及使用_第1张图片

第二种集成方法是把 ijkplayer 打包成framework导入工程中使用. 下面开始介绍如何打包IJKMediaFramework.framework,
步骤如下:

1.打开工程IJKMediaPlayer.xcodeproj, 位置如下图:


IJKMediaFramework第三方库的合并集成及使用_第2张图片

2.工程打开后设置工程的 scheme, 具体步骤如下图:


IJKMediaFramework第三方库的合并集成及使用_第3张图片
编辑 scheme
IJKMediaFramework第三方库的合并集成及使用_第4张图片
选择 release

3.设置好 scheme 后, 分别选择真机和模拟器进行编译, 编译完成后进入 Finder, 如下图:


IJKMediaFramework第三方库的合并集成及使用_第5张图片

进入 Finder 后, 可以看到有真机和模拟器两个版本的编译结果, 如下图:


IJKMediaFramework第三方库的合并集成及使用_第6张图片

下面开始合并真机和模拟器版本的 framework, 注意不要合并错了, 合并的是这个文件, 如下图:


IJKMediaFramework第三方库的合并集成及使用_第7张图片

使用终端进行合并, 命令行具体格式为:

lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径"

合并后如下图:


IJKMediaFramework第三方库的合并集成及使用_第8张图片

重点来了! 需要用合并后的IJKMediaFramework把原来的IJKMediaFramework替换掉, 如下图:


IJKMediaFramework第三方库的合并集成及使用_第9张图片

上图中的1、2两步完成后, 绿色框住的那个IJKMediaFramework.framework文件就是我们需要的框架了, 可以复制粘贴出来, 后期我们需要导入工程使用.

四. iOS工程中集成IJKPlayer

新建工程, 导入合并后的IJKMediaFramework.framework

IJKMediaFramework第三方库的合并集成及使用_第10张图片

在项目中使用的时候需要导入的依赖库:

AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
libbz2.tbd
libz.tbd
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework

导入框架后, 在ViewController.m进行测试, 首先导入IJKMediaFramework.h头文件, 编译检查是否有错, 如果无错则说明集成成功!

五.使用 IJKMediaFramework第三方库

这里在ViewController.m文件中使用IJKMediaFramework框架进行测试使用

#import 
    // 直播视频
    self.url = [NSURL URLWithString:@"http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"];
//    self.url = [NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"];

    _player = [[IJKFFMoviePlayerController alloc] initWithContentURL:self.url withOptions:nil];
    UIView *playerView = [self.player view];
    UIView *displayView = [[UIView alloc] initWithFrame:self.view.bounds];
    self.playerView = displayView;
    self.playerView.backgroundColor = [UIColor blackColor];
    [self.view addSubview:self.playerView];
    
    playerView.frame = self.playerView.bounds;
    playerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.playerView insertSubview:playerView atIndex:1];
    [_player setScalingMode:IJKMPMovieScalingModeAspectFill];
    [self installMovieNotificationObservers];

你可能感兴趣的:(IJKMediaFramework第三方库的合并集成及使用)