IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android、iOS ijkplayer编译步骤及相关问题解决 -> 正文阅读

[移动开发]Android、iOS ijkplayer编译步骤及相关问题解决

一、iOS

? ? ?基于B站开源代码编译(https://github.com/bilibili/ijkplayer

  1. :准备一台Mac电脑,本文使用macOS 12.1
  2. :安装XCode开发工具,本文使用xcode 13.4.1
  3. :安装 homebrew、git和yasm软件
  4. :打开终端运行窗口,进入一个自己的开发文件夹,执行:git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
  5. :执行命令:cd ijkplayer-ios
  6. :执行命令:git checkout -B latest k0.8.8 本文是基于k0.8.8分支
  7. :执行命令:./init-ios.sh (这一步会完成一些初始化工作,并去GitHub拉取FFmpeg代码)
    1. 如果操作文件时没有权限,请执行 chmod 777 init-ios.sh 来修改为可读可写权限, 下面遇到类似错误,同样方式处理即可
  8. :执行命令:./init-ios-openssl.sh 初始化https相关内容?

  9. :执行命令:cd ios (进入iOS文件夹)
  10. :执行命令:./compile-openssl.sh all? 编译https相关内容
  11. :执行命令:./compile-ffmpeg.sh clean 不必每次都clean 除非有ffmpeg相关修改
  12. :执行命令:./compile-ffmpeg.sh all 编译ffmpeg库,此步骤十分重要,ijkplayer就是基于ffmpeg来封装
    1. 关于遇到module.shmodule-lite.sh 命令行找不到等问题的解决方案
      1. 直接来到和ios平级的config文件夹下,执行rm module.sh 删除module.sh
      2. 然后回到根目录下执行 ./init-config.sh即可(此步骤会自动拷贝module-lite.sh文件内容到module.sh)
    2. 关于遇到:error:unknown derective .arch armv7-a的报错的解决方案
      1. 方案一、删除armv7(32位)相关架构的编译代码,iPhone5s以上的手机都是64位的cup架构了,应用商店也不在支持armv7(32),因此支持删除也是可以的,具体实现如下
        1. 修改 ios文件夹下compile-ffmpeg.sh?

          第24行 改为: FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
          第120行 改为: if [ "FFTARGET"="armv7s"?o"?FF_TARGET" = "arm64" ]; then
          第159行 改为: echo " compile-ffmpeg.sh arm64|i386|x86_64"

      2. 方案二、兼容armv7
        1. 到ios/tools文件夹下,修改do-compile-ffmpeg.sh文件
        2. 在187行(行数可能会变化,找这行代码为准 :FF_XCRUN_CC="xcrun?-sdk?$FF_XCRUN_SDK?clang")下面添加如下内容:

          echo?"-----?zhangshun?modify?for?armv7?----------?begin"
          if?[?"$FF_ARCH"?=?"arm64"?]
          then
          ????FF_AS="gas-preprocessor.pl?-arch?aarch64?--?$FF_XCRUN_CC"
          else
          ????FF_AS="gas-preprocessor.pl?--?$FF_XCRUN_CC"
          fi
          echo?"-----?zhangshun?modify?for?armv7?----------?end"
    3. 关于缓存问题的解决方案:
      1. 执行./compile-ffmpeg.sh clean 清除之前构建内容即可
  13. :编译完成后 用xcode 打开ios/IJKMediaDemo/IJKMediaDemo.xcoderoj运行看效果
  14. :导出库文件,放到其他项目中使用

二、Android

基于B站开源代码编译(https://github.com/bilibili/ijkplayer

由于Window下直接编译坑太多,建议安装Ubuntu系统进行编译

  1. :安装Ubuntu系统,并进入
  2. :下载Android?NDK r10e(官方建议r10e的版本)注意是Linux版本
  3. :配置NDK环境变量,注意在Ubuntu下配置
  4. :安装 git 、AndroidStudio 并配置SDK环境变量 注意是在Ubuntu下面操作
  5. :打开终端运行窗口,进入一个自己的开发文件夹,执行:git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
  6. :执行命令:cd ijkplayer-android
  7. :执行命令:git checkout -B latest k0.8.8 本文是基于k0.8.8分支
  8. :执行命令:./init-android.sh (这一步会完成一些初始化工作,并去GitHub拉取FFmpeg代码)
    1. 如果操作文件时没有权限,请执行 chmod 777 init-android.sh 来修改为可读可写权限, 下面遇到类似错误,同样方式处理即可
  9. :执行命令:./init-android-openssl.sh 初始化https相关内容?

  10. :执行命令:cd android/contrib
  11. :执行命令:./compile-openssl.sh armv7a 编译https相关内容,指定了armv7a,也可以写all 编译所有的cpu架构
  12. :执行命令:./compile-ffmpeg.sh clean 不必每次都clean 除非有ffmpeg相关修改
  13. :执行命令:./compile-ffmpeg.sh armv7a 编译ffmpeg库,此步骤十分重要,ijkplayer就是基于ffmpeg来封装
    1. 关于遇到module.shmodule-lite.sh 命令行找不到等问题的解决方案
      1. 直接来到和android平级的config文件夹下,执行rm module.sh 删除module.sh
      2. 然后回到根目录下执行 ./init-config.sh即可(此步骤会自动拷贝module-lite.sh文件内容到module.sh)
    2. 关于缓存问题的解决方案:
      1. 执行./compile-ffmpeg.sh clean 清除之前构建内容即可
  14. :执行命令? cd.. 回到 android目录下
  15. :执行./compile-ijk.sh armv7a? 也可以选择all? 根据需求来定
  16. :拷贝编译生成的so进行使用即可
    1. android--ijkplayer--ijkplayer-armv7a--src--main--libs
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:08:24  更:2022-09-24 21:08:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 5:24:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码