IJKMediaFramework的制作使用流程

首先,你可以直接找到一个现成的framework包拖进项目中使用,当然你需要在工程中添加framework必要的库文件。见文章底部

这里提供一个framework包下载地址:

链接: https://pan.baidu.com/s/1o7KntW2 密码: 99t8

本文主要介绍IJKMediaFramework的制作过程。

IJKMediaFramework的github的地址: https://github.com/Bilibili/ijkplayer

不管使用什么方法,将文件下载到本地。

readme中提供的下载方法是利用终端git命令:

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

cd ijkplayer-ios

git checkout -B latest k0.7.8.1

我是用source tree 直接拉取的;

下载完成之后:

1.终端中打开下载下来的ijk文件夹

cd ijkplayer(下载的项目所在路径)

2.运行init-ios.sh脚本(过程为下载ffmpeg)

./init-ios.sh

tip:1-2步可以直接在项目中找到init-ios.sh文件拖进终端后回车;

3.打开IJKPlayer文件夹下ios文件夹

cd ios(下载的项目下ios文件夹所在路径)

4.运行脚本 clean

./compile-ffmpeg.sh clean

5.运行脚本 all 编译 ffmpeg

./compile-ffmpeg.sh all

tip:3-5步可以直接找到文件拖进终端 执行clean和all 两个操作。

compile-ffmpeg.sh路径 clean 回车

compile-ffmpeg.sh路径 all     回车


打开IJKMediaPlayer工程

打开IJKMediaPlayer工程


点击最上面的IJKMediaFramework-点击Edit-Scheme.

点击最上面的IJKMediaFramework-点击Edit-Scheme

将run的Build Configuration方式改为release

将run的Build Configuration方式改为release


设置framework下需要暴露的头文件。(没有特殊需求一般不需要修改)(免去此步,直接cmd+b编译)


设置framework下需要暴露的头文件。(一般不需要修改)(免去此步,直接cmd+b编译)

分别在真机和模拟器环境下编译cmd+b


打开项目product目录查看framework在finder下查看
分别为真机和模拟器的framework


合并framework

需要注意的是,framework不能直接合并

需要合并的文件为IJKMediaFramework.framework下的IJKMediaFramework文件。

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


合并的命令



合并后的文件


最终的包


Tip:如果在终端中输入上述命令行后遇到如下错误:

crun: error: active developer path (“/Applications/Xcode 2.app/Contents/Developer”) does not exist, use xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or see man xcode-select)

可以输入

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

最后用合并完成的IJKMediaFramework替换掉真机生成的.framework文件中的IJKMediaFramework;

此时真机中的IJKMediaFramework.framework 就是我们需要的framework

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

系统的framework库可以忽略,xcode会自动链接。tbd的必须添加

如果编译错误尝试添加libstdc++.tbd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容