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

2016年可謂是直播元年, 大多數做直播的時候使用 FFMpeg. IJKMediaFramework也是基于FFMpeg封裝 使用起來比較簡單.
ijkplayer 就是一款做視頻直播的框架, 也是基于FFMpe, 支持 AndroidiOS, 網上也有很多集成說明, 但是本人覺得還是不夠詳細, 在這里我把我在 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, 在這里不做介紹, 如下圖:


第二種集成方法是把 ijkplayer 打包成framework導入工程中使用. 下面開始介紹如何打包IJKMediaFramework.framework,
步驟如下:

1.打開工程IJKMediaPlayer.xcodeproj, 位置如下圖:


2.工程打開后設置工程的 scheme, 具體步驟如下圖:


編輯 scheme
選擇 release

3.設置好 scheme 后, 分別選擇真機和模擬器進行編譯, 編譯完成后進入 Finder, 如下圖:


進入 Finder 后, 可以看到有真機和模擬器兩個版本的編譯結果, 如下圖:


下面開始合并真機和模擬器版本的 framework, 注意不要合并錯了, 合并的是這個文件, 如下圖:


使用終端進行合并, 命令行具體格式為:

lipo -create "真機版本路徑" "模擬器版本路徑" -output "合并后的文件路徑"

合并后如下圖:


重點來了! 需要用合并后的IJKMediaFramework把原來的IJKMediaFramework替換掉, 如下圖:


上圖中的1、2兩步完成后, 綠色框住的那個IJKMediaFramework.framework文件就是我們需要的框架了, 可以復制粘貼出來, 后期我們需要導入工程使用.

四. iOS工程中集成IJKPlayer

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

在項目中使用的時候需要導入的依賴庫:

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 <IJKMediaFramework/IJKMediaFramework.h>
    // 直播視頻
    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];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容