ijkplayer:来自哔哩哔哩的开源播放器



下面就整理一下从下载,编译,到成功集成播放的过程


一、下载、编译

首先我们看看Github上的Readme



git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.6.2

./init-ios.sh

cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

# Demo
#     open ios/IJKMediaDemo/IJKMediaDemo.xcodeproj with Xcode
# 
# Import into Your own Application
#     Select your project in Xcode.
#     File -> Add Files to ... -> Select ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
#     Select your Application's target.
#     Build Phases -> Target Dependencies -> Select IJKMediaFramework
#     Build Phases -> Link Binary with Libraries -> Add:
#         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
#
#         ... (Maybe something else, if you get any link error)
#




第一步、先将源码克隆到本地



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





第二步、然后进入项目文件夹,执行init-ios.sh,这一步是去下载ffmepg,可能会比较慢,耐心等待


cd ijkplayer-ios
./init-ios.sh





第三步、下载执行完成之后进入ios目录执行编译


cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all




完成




二、项目集成




下载编译完成之后可以进入ios文件夹,找到IJKMediaDemo项目,直接测试,这是来自官方的Demo

ios/IJKMediaDemo/IJKMediaDemo.xcodeproj



接下来,我们就把编译好的IJKPlayer集成进我们的项目




第一步、新建或打开一个Xcode项目,如图




ios 音视频开发框架 ios开源视频软件_ios




第二步、将编译好的IJKPlayer项目添加进你自己的项目



Xcode -> File -> Add Files to ...




ios 音视频开发框架 ios开源视频软件_IJKPlayer_02




选择编译好的ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj




ios 音视频开发框架 ios开源视频软件_ios 音视频开发框架_03

ios 音视频开发框架 ios开源视频软件_ios 音视频开发框架_04





第三步、选中项目,点击Build Phase,找到Target Dependencies,点击加号添加,选择IJKMediaFramwork




ios 音视频开发框架 ios开源视频软件_开源_05




第四步、继续在Build Phase中选择Link Binary with Libraries,点击添加,把以下FramwWork都添加进去


#         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




全部完成后如图:




ios 音视频开发框架 ios开源视频软件_IJKPlayer_06




这时候就成功的把IJKPlayer集成到项目中了,下面介绍一种方法,将编译好的IJKPlayer打包成FrameWork静态库,更加“便携”



完成



三、打包FrameWork


第一步、还是进入到ios目录,找到IJKMediaPlayer文件夹,这个就是编译好的IJKPlayer,打开IJKMediaPlayer.xcodeproj,点击Edit Scheme




ios 音视频开发框架 ios开源视频软件_播放器_07




选择Release






ios 音视频开发框架 ios开源视频软件_IJKPlayer_08




第二步、设置好 scheme 后, 分别选择真机和模拟器,然后分别Command + B进行编译,然后进入Finder找到打包好的IJKMediaFrameWork





ios 音视频开发框架 ios开源视频软件_播放器_09





上面的是真机版本的,下面的是模拟器版本的,然后要将他们合并



ios 音视频开发框架 ios开源视频软件_IJKPlayer_10





要合并的文件如下图




ios 音视频开发框架 ios开源视频软件_ios_11





合并的命令为:lipo -create "真机版本IJKMediaFramework路径" "模拟器版本IJKMediaFramework路径" -output "目标文件路径/IJKMediaFramework"




合并完成后,用新生成的IJKMEdiaFramework,覆盖Release-iphoneos文件夹内,IJKMediaFramework.framework中的IJKMEdiaFramework,然后Release-iphoneos文件夹内的IJKMediaFramework.framework就是打包好的最终版本,可以直接作为静态库添加到项目中使用,过程可能有点复杂,有问题大家可以在留言中和我交流。