iOS - IJKPlayer 相关

ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS!在这里详细的记录下之前在 iOS 中如何集成ijkplayer,以备后用!

第一、下载 ijkplayer

ijkplayer下载地址

下载后解压,解压目录如下:

iOS - IJKPlayer 相关_第1张图片
图片.png

第二、编译 ijkplayer

说是编译 ijkplayer, 其实是编译 ffmpeg, 在这里我们已经下载好了ijkplayer, 所以 github 上README.md中的Build iOS那一步中有一些步骤是不需要的!下列是步骤:

    1.打开终端, cd 到jkplayer-master文件夹中, 也就是下载完解压后的文件夹, 如下图:
iOS - IJKPlayer 相关_第2张图片
图片.png
    2.执行命令行./init-ios.sh, 这一步是去下载 ffmpeg 的, 时间会久一点, 耐心等一下!

    3.在第2步中下载完成后, 执行cd ios, 也就是进入到 ios目录中, 如下图:
iOS - IJKPlayer 相关_第3张图片
图片.png
    4.进入 ios 文件夹后, 在终端依次执行./compile-ffmpeg.sh clean和./compile-ffmpeg.sh all命令, 编译 ffmpeg!

第三、打包IJKMediaFramework.framework框架

    1.集成 ijkplayer 有两种方法: 一种方法是按照IJKMediaDemo工程中那样, 直接导入工程IJKMediaPlayer.xcodeproj!

    2.是把 ijkplayer 打包成framework导入工程中使用!打包步骤如下:

        1)打开demo 
iOS - IJKPlayer 相关_第4张图片
图片.png
        2)打开后是这样的,如图:
iOS - IJKPlayer 相关_第5张图片
图片.png
        3)并打开设置工程的scheme,具体步骤如图:
iOS - IJKPlayer 相关_第6张图片
图片.png
iOS - IJKPlayer 相关_第7张图片
图片.png
        4)设置好 scheme 后, 分别选择真机和模拟器按 Command + R 进行编译, 编译完成后, 进入 Finder, 如下图: 
iOS - IJKPlayer 相关_第8张图片
图片.png
        5)进入 Finder 后, 可以看到有真机和模拟器两个版本的编译结果, 如下图:
iOS - IJKPlayer 相关_第9张图片
图片.png
        6)下面开始合并真机和模拟器版本的 framework, 注意不要合并错了, 合并的是这个文件, 如下图: 
iOS - IJKPlayer 相关_第10张图片
图片.png
        7)打开终端, 进行合并, 命令行具体格式为:  :lipo -create 真机版本路径 模拟器版本路径 -output 合并后的文件路径 (注:空格不能省去)!

            注意点:

                  1.常规的需要合并 真机版framework 和模拟器版framework ,需要用到 lipo指令:lipo -create 真机版本路径 模拟器版本路径 -output 合并后的文件路径 (注:空格不能省去)!示例:

                路径1:/Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/Products/Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework
        
                路径2:/Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/Products/Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework
        
                合并后的路径及名称:/Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/IJKMediaFramework 
        
                lipo -create /Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/Products/Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework /Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/Products/Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output /Users/XXX/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-giggdwtupptvcyalfbtxfhwssrix/Build/IJKMediaFramework 
    
            2.报错及注意点
    
                1)指令之间的空格不能省去
                2)报错:fatal error: can't map input file 
        
                    原因是因为 framework 路径格式输入错误,需要将 xxxFramework.framework 改成 xxxFramework.framework/xxxFramework
    
                3)报错:can't move temporary file
    
                    原因是因为 合并后的 路径格式输入错误,需要在路径后面加入合并后你起的文件名称 ,/Users/Zhuge_Su/Desktop 改成 /Users/Zhuge_Su/Desktop/xxx.framework  (xxx需要自己自定义)

        8)合并后如下图:
iOS - IJKPlayer 相关_第11张图片
图片.png
        9)下面很重要, 需要用合并后的IJKMediaFramework把原来的IJKMediaFramework替换掉, 如下图, 希望你能看懂:
iOS - IJKPlayer 相关_第12张图片
图片.png
        10)上图中的1、2两步完成后, 绿色框住的那个IJKMediaFramework.framework文件就是我们需要的框架了, 可以复制出来, 稍后我们需要导入工程使用!

第四、iOS工程中集成ijkplayer

    1.新建工程, 导入合并后的IJKMediaFramework.framework以及相关依赖框架以及相关依赖框架,如下图:
iOS - IJKPlayer 相关_第13张图片
图片.png
    2.导入框架后, 在ViewController.m进行测试, 首先导入IJKMediaFramework.h头文件, 编译看有没有错, 如果没有错说明集成成功.

你可能感兴趣的:(iOS - IJKPlayer 相关)