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

62 篇文章 0 订阅

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开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ijkplayer 是一款适用于 Android 和 iOS 平台的开源播放器,支持常见的音视频格式和协议。本文将介绍如何在 iOS 平台编译 ijkplayer。 ### 1. 安装 Homebrew Homebrew 是 macOS 上的包管理器,可以方便地安装和管理软件。如果您已经安装了 Homebrew,可以跳过此步骤。 在终端中输入以下命令安装 Homebrew: ```bash /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ``` ### 2. 安装编译工具 在终端中输入以下命令安装编译工具: ```bash brew install autoconf automake libtool nasm make cmake pkg-config ``` ### 3. 克隆 ijkplayer 代码 在终端中进入您的工作目录并克隆 ijkplayer 代码: ```bash cd your-work-directory git clone https://github.com/Bilibili/ijkplayer.git ``` ### 4. 编译 ijkplayer 在终端中进入 ijkplayer 目录: ```bash cd ijkplayer ``` 执行 init-ios.sh 脚本,初始化编译环境: ```bash ./init-ios.sh ``` 执行 compile-ffmpeg.sh 脚本,编译 FFmpeg: ```bash cd ios ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all ``` 执行 compile-ijk.sh 脚本,编译 ijkplayer: ```bash ./compile-ijk.sh clean ./compile-ijk.sh all ``` 编译完成后,可以在 ios 目录下找到编译出的 ijkplayer.framework 文件。 ### 5. 使用 ijkplayerijkplayer.framework 文件拖入您的工程中,并在需要使用的地方引入头文件: ```swift import IJKMediaFramework ``` 创建 IJKFFMoviePlayerController 对象,并设置相关参数: ```swift let player = IJKFFMoviePlayerController(contentURL: url, with: options) player?.view.frame = self.view.bounds self.view.addSubview(player!.view) ``` 其中,url 是视频地址,options 是 IJKFFOptions 对象,可以设置相关参数,例如: ```swift let options = IJKFFOptions.byDefault() options?.setPlayerOptionIntValue(1, forKey: "videotoolbox") ``` 最后,调用 prepareToPlay 方法准备播放: ```swift player?.prepareToPlay() ``` 至此,您已经成功编译和使用了 ijkplayer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值