IOS开源播放器ijkplayer从编译到播放(上)

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


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

一、下载、编译

首先我们看看Github上的Readme

  1. git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios  
  2. cd ijkplayer-ios  
  3. git checkout -B latest k0.6.2  
  4.   
  5. ./init-ios.sh  
  6.   
  7. cd ios  
  8. ./compile-ffmpeg.sh clean  
  9. ./compile-ffmpeg.sh all  
  10.   
  11. # Demo  
  12. #     open ios/IJKMediaDemo/IJKMediaDemo.xcodeproj with Xcode  
  13. #   
  14. # Import into Your own Application  
  15. #     Select your project in Xcode.  
  16. #     File -> Add Files to ... -> Select ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj  
  17. #     Select your Application's target.  
  18. #     Build Phases -> Target Dependencies -> Select IJKMediaFramework  
  19. #     Build Phases -> Link Binary with Libraries -> Add:  
  20. #         IJKMediaFramework.framework  
  21. #  
  22. #         AudioToolbox.framework  
  23. #         AVFoundation.framework  
  24. #         CoreGraphics.framework  
  25. #         CoreMedia.framework  
  26. #         CoreVideo.framework  
  27. #         libbz2.tbd  
  28. #         libz.tbd  
  29. #         MediaPlayer.framework  
  30. #         MobileCoreServices.framework  
  31. #         OpenGLES.framework  
  32. #         QuartzCore.framework  
  33. #         UIKit.framework  
  34. #         VideoToolbox.framework  
  35. #  
  36. #         ... (Maybe something else, if you get any link error)  
  37. #   
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)
# 

第一步、先将源码克隆到本地
  1. git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios  
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

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

 
   第三步、下载执行完成之后进入ios目录执行编译 
  
  1. cd ios  
  2. ./compile-ffmpeg.sh clean  
  3. ./compile-ffmpeg.sh all  
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

完成


二、项目集成


下载编译完成之后可以进入ios文件夹,找到IJKMediaDemo项目,直接测试,这是来自官方的Demo
  1. 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都添加进去
  1. #         IJKMediaFramework.framework  
  2. #  
  3. #         AudioToolbox.framework  
  4. #         AVFoundation.framework  
  5. #         CoreGraphics.framework  
  6. #         CoreMedia.framework  
  7. #         CoreVideo.framework  
  8. #         libbz2.tbd  
  9. #         libz.tbd  
  10. #         MediaPlayer.framework  
  11. #         MobileCoreServices.framework  
  12. #         OpenGLES.framework  
  13. #         QuartzCore.framework  
  14. #         UIKit.framework  
  15. #         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





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



要合并的文件如下图




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


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


IJKPlayer的编译和集成就介绍到这,基本的使用将在下篇介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Terry_Solar/article/details/52743485
个人分类: IOS开发

猜你喜欢

转载自blog.csdn.net/mengzhengjie/article/details/80386162