博客> iOS - IJKPlayer 相关
iOS - IJKPlayer 相关
2017-08-16 03:33 评论:0 阅读:53 OS_JJ
ios ijkplayer 相关

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

第一、下载 ijkplayer

ijkplayer下载地址

下载后解压,解压目录如下:  65FA397F-FD6F-4F2A-8923-968DBC6D2384.png

第二、编译 ijkplayer

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

    1.打开终端, cd 到jkplayer-master文件夹中, 也就是下载完解压后的文件夹, 如下图:

 B9C6A6CF-3DBB-48A9-B27D-0A561B89FD2A.png

    2.执行命令行./init-ios.sh, 这一步是去下载 ffmpeg 的, 时间会久一点, 耐心等一下!

    3.在第2步中下载完成后, 执行cd ios, 也就是进入到 ios目录中, 如下图:

 3744DC45-EFA8-4EA8-8788-F0B573C46EE8.png

    4.进入 ios 文件夹后, 在终端依次执行./compile-ffmpeg.sh clean和./compile-ffmpeg.sh all命令, 编译 ffmpeg!

第三、打包IJKMediaFramework.framework框架

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

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

        1)打开demo 

 609F005B-5BBD-42DC-AA6C-0716DF0B8739.png

        2)打开后是这样的,如图:

 462B462C-B758-4614-B8B8-28454696FACC.png

        3)并打开设置工程的scheme,具体步骤如图:

 D501770D-0823-4D9D-AB45-D82EA703A8D3.png  31B8C341-4B82-4776-92FB-CA4B1DD38AD6.png

        4)设置好 scheme 后, 分别选择真机和模拟器按 Command + R 进行编译, 编译完成后, 进入 Finder, 如下图: 

 886969BA-8EC8-48B8-B093-6B8D14955E00.png

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

 E9483B4A-E819-4BFD-B364-F1E98D115AEA.png

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

 BB3274A4-333A-4145-A654-66F7F7743B0E.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)合并后如下图:

 B5E73BCC-8E36-40C7-9244-B11AEA7C64CF.png

        9)下面很重要, 需要用合并后的IJKMediaFramework把原来的IJKMediaFramework替换掉, 如下图, 希望你能看懂:

 AB8412EE-8D51-412F-91FF-891F57F61C8D.png

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

第四、iOS工程中集成ijkplayer

    1.新建工程, 导入合并后的IJKMediaFramework.framework以及相关依赖框架以及相关依赖框架,如下图:

 5ADFB71F-66F1-4907-A212-FDBC685B9C84.png

    2.导入框架后, 在ViewController.m进行测试, 首先导入IJKMediaFramework.h头文件, 编译看有没有错, 如果没有错说明集成成功.
收藏
0
sina weixin mail 回到顶部