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 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
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
第二步、然后进入项目文件夹,执行init-ios.sh,这一步是去下载ffmepg,可能会比较慢,耐心等待
- cd ijkplayer-ios
- ./init-ios.sh
cd ijkplayer-ios ./init-ios.sh
第三步、下载执行完成之后进入ios目录执行编译
- cd ios
- ./compile-ffmpeg.sh clean
- ./compile-ffmpeg.sh all
cd ios ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all
完成
下载编译完成之后可以进入ios文件夹,找到IJKMediaDemo项目,直接测试,这是来自官方的Demo
- ios/IJKMediaDemo/IJKMediaDemo.xcodeproj
ios/IJKMediaDemo/IJKMediaDemo.xcodeproj
接下来,我们就把编译好的IJKPlayer集成进我们的项目
第一步、新建或打开一个Xcode项目,如图
第二步、将编译好的IJKPlayer项目添加进你自己的项目
Xcode -> File -> Add Files to ...
选择编译好的ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
第三步、选中项目,点击Build Phase,找到Target Dependencies,点击加号添加,选择IJKMediaFramwork
第四步、继续在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
# 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
全部完成后如图:
这时候就成功的把IJKPlayer集成到项目中了,下面介绍一种方法,将编译好的IJKPlayer打包成FrameWork静态库,更加“便携”
完成
三、打包FrameWork
第一步、还是进入到ios目录,找到IJKMediaPlayer文件夹,这个就是编译好的IJKPlayer,打开IJKMediaPlayer.xcodeproj,点击Edit Scheme
选择Release
第二步、设置好 scheme 后, 分别选择真机和模拟器,然后分别Command + B进行编译,然后进入Finder找到打包好的IJKMediaFrameWork
上面的是真机版本的,下面的是模拟器版本的,然后要将他们合并
要合并的文件如下图
- 合并的命令为:lipo -create "真机版本IJKMediaFramework路径" "模拟器版本IJKMediaFramework路径" -output "目标文件路径/IJKMediaFramework"
合并的命令为:lipo -create "真机版本IJKMediaFramework路径" "模拟器版本IJKMediaFramework路径" -output "目标文件路径/IJKMediaFramework"
合并完成后,用新生成的IJKMEdiaFramework,覆盖Release-iphoneos文件夹内,IJKMediaFramework.framework中的IJKMEdiaFramework,然后Release-iphoneos文件夹内的IJKMediaFramework.framework就是打包好的最终版本,可以直接作为静态库添加到项目中使用,过程可能有点复杂,有问题大家可以在留言中和我交流。