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

2016年可謂是直播元年, 大多數(shù)做直播的時(shí)候使用 FFMpeg. IJKMediaFramework也是基于FFMpeg封裝 使用起來比較簡單.
ijkplayer 就是一款做視頻直播的框架, 也是基于FFMpe, 支持 AndroidiOS, 網(wǎng)上也有很多集成說明, 但是本人覺得還是不夠詳細(xì), 在這里我把我在 iOS 中如何集成ijkplayer的流程記錄一下!

一. 下載ijkplayer
二. 編譯 ijkplayer
三. 打包IJKMediaFramework.framework框架
四. iOS工程中集成IJKPlayer
五. 使用 IJKMediaFramework第三方庫

一. 下載ijkplayer

ijkplayer 解壓后文件夾里面有android 和iOS 的.

二. 編譯 ijkplayer

說是編譯 ijkplayer, 其實(shí)是編譯 FFMpeg.
下面開始一步步編譯:

  1. 打開終端, cd 到j(luò)kplayer-master文件夾中, 也就是下載完解壓后的文件夾.
  2. 終端執(zhí)行命令行./init-ios.sh, 這一步是去下載 FFMpeg 的, 時(shí)間稍微會(huì)久一點(diǎn), 耐心等一會(huì)就好.
  3. 在第2步中下載完成后, 終端執(zhí)行cd ios, 也就是說進(jìn)入到 ios目錄下.
  4. 進(jìn)入 ios 文件夾后, 在終端依次執(zhí)行./compile-ffmpeg.sh clean./compile-ffmpeg.sh all命令, 編譯 FFMpeg, 也就是README.md中這兩步.編譯時(shí)間也較久, 耐心等待一會(huì)就好.

三. 打包IJKMediaFramework.framework框架

集成 ijkplayer 有兩種方法:
第一種方法是按照IJKMediaDemo工程中那樣, 直接導(dǎo)入工程IJKMediaPlayer.xcodeproj, 在這里不做介紹, 如下圖:


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

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


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


編輯 scheme
選擇 release

3.設(shè)置好 scheme 后, 分別選擇真機(jī)和模擬器進(jìn)行編譯, 編譯完成后進(jìn)入 Finder, 如下圖:


進(jìn)入 Finder 后, 可以看到有真機(jī)和模擬器兩個(gè)版本的編譯結(jié)果, 如下圖:


下面開始合并真機(jī)和模擬器版本的 framework, 注意不要合并錯(cuò)了, 合并的是這個(gè)文件, 如下圖:


使用終端進(jìn)行合并, 命令行具體格式為:

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

合并后如下圖:


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


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

四. iOS工程中集成IJKPlayer

新建工程, 導(dǎo)入合并后的IJKMediaFramework.framework

在項(xiàng)目中使用的時(shí)候需要導(dǎo)入的依賴庫:

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

導(dǎo)入框架后, 在ViewController.m進(jìn)行測(cè)試, 首先導(dǎo)入IJKMediaFramework.h頭文件, 編譯檢查是否有錯(cuò), 如果無錯(cuò)則說明集成成功!

五.使用 IJKMediaFramework第三方庫

這里在ViewController.m文件中使用IJKMediaFramework框架進(jìn)行測(cè)試使用

#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];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容