ijkplayer-ohos HarmonyOS NEXT版本编译

打印 上一主题 下一主题

主题 1788|帖子 1788|积分 5364

概要

基于OpenHarmonyOS,编译ijkplayer。
先提供一个完备版本,是基于华为官方开源代码,修改配置文件,增加ffmpeg等相关库,拉取的代码,可以直接在DevEco Studio Release(5.0.3.900)编译,断点调试,并运行。
代码地点:git clone https://gitee.com/cwyanggit/oho_ijkplayer_full.git
代码拉取后,需要更新下署名,File->roject Structure->Signing Configs,具体也可以看下华为官网,会在工程目录build-profile.json5中自动天生唯一的signingConfigs
上面的代码是颠末一步一步调试过来的,踩了一些坑,尤其是开始C语言代码是不能高亮,不能转定义,不能断点调试,颠末多次测试,已经解决上面问题,但是不是最终解决方案,已经提交工单,等华为方面查看。具体解决过程可以从看看git 日志。
以下是华为官方代码,一步步编译利用过程,最后配置需要更改,需要参考上面提供的代码。
一、准备OpenHarmony SDK 编译情况

1.下载SDK

从 openHarmony SDK 官方发布渠道下载SDK
链接:https://gitee.com/openharmony-sig/oh-inner-release-management/blob/master/Release-Testing-Version.md

   ​ 说明:可以同时下载对应的系统镜像(这里提供的是 32bit OHOS 镜像下载),背面依次为 Windows/Linux 情况下的 SDK,SDK 分为两个版本 full 版本和 public 版本。这两个版本的 SDK 中关于 c/c++ 编译的部分是类似的,因此我们下载那个都一样( full 版本的 SDK 在 ets 层提供了更多的 API )。再背面是 mac 情况的OHOS SDK 。根据本身情况自行下载对应版本的 SDK 。
  2.解压SDK

  1. tar -zxvf version-Master_Version-OpenHarmony_3.2.10.3-20230105_163913-ohos-sdk-full.tar.gz
复制代码
进入解压得到 ohos_sdk 目录,可以看到 Linux 和 windows 两个平台的 SDK 目录,我们进入 linux
  1. ohos@ubuntu20:~/tools/OH_SDK$ cd ohos-sdk
  2.     ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ ls
  3.     linux  windows
  4.     ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ cd linux/
  5.     ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ ls
  6.     ets-linux-x64-4.0.1.2-Canary1.zip  native-linux-x64-4.0.1.2-Canary1.zip     toolchains-                        linux-x64-4.0.1.2-Canary1.zip
  7.     js-linux-x64-4.0.1.2-Canary1.zip   previewer-linux-x64-4.0.1.2-Canary1.zip
复制代码
解压 Linux 情况下的 OHOS SDK 工具包,得到对应的工具目录。由于我们是 c/c++ 库的编译,我们只关注 native 目录。
3.配置情况变量

   vi ~/.bashrc
添加:export OHOS_SDK=/home/ohos/tools/OH_SDK/ohos-sdk/linux
生存退出后:source ~/.bashrc
  二、配置OpenHarmony交叉编译情况

利用lycium框架快速交叉编译三方库前怎样举行情况配置。
1.下载lycium框架代码

  1. git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git
复制代码
2.拷贝编译工具

  1. cd lycium/Buildtools                        # 进入到工具包目录
  2. sha512sum -c SHA512SUM                      # 可校验工具包是否正常, 若输出"toolchain.tar.gz: OK"则说明工具包正常,否则说明工具包异常,需重新下载
  3. tar -zxvf toolchain.tar.gz                  # 解压拷贝编译工具
  4. cp toolchain/* ${OHOS_SDK}/native/llvm/bin  # 将命令拷贝到工具链的native/llvm/bin目录下
复制代码
三、编译ffmpeg

   #编译库
cd tpc_c_cplusplus/lycium
./build.sh FFmpeg-ff4.0
    #库地点目录
tpc_c_cplusplus/lycium/usr/FFmpeg-ff4.0
  四、编译ijkplayer

1.下载ijkplayer代码

  1. git clone https://gitee.com/openharmony-sig/ohos_ijkplayer.git
复制代码
2.编译soundtouch

  1. 1. 把ohos_ijkplayer/doc目录下的soundtouch-ijk文件夹拷贝到lycium框架代码中的tpc_c_cplusplus/thirdparty目录下
  2. 2. 在lycium文件夹执行./build.sh soundtouch-ijk
  3. 3. 在lycium\usr目录下编译出soundtouch的静态库和头文件
复制代码
3.编译libyuv

  1. 1. 把ohos_ijkplayer/doc目录下的libyuv-ijk文件夹拷贝到lycium框架代码中的tpc_c_cplusplus/thirdparty目录下
  2. 2. 在lycium文件夹执行./build.sh libyuv-ijk
  3. 3. 在lycium\usr目录下编译出libyuv的静态库和头文件
  4. 注意:第二步需要拉取github代码,如果执行失败,可以将libyuv-ijk中的HPLKBUILD文件中的url和source更新下,如下:
  5. url="https://gitee.com/cwyanggit/libyuv/branches"
  6. source="https://gitee.com/cwyanggit/libyuv/repository/archive/ijk-r0.2.1-dev.zip"
复制代码
4.拷贝库文件

  1. 1. 把编译生成的ffmpeg文件夹拷贝到ijkplayer/src/main/cpp/third_party/ffmpeg下
  2. 2. 把编译生成的openssl、soundtouch、yuv的文件夹,拷贝到工程的ijkplayer/src/main/cpp/third_party下
  3. 3. 如下图所示:
复制代码

5.编译ijkplayer

  1. 1. 使用DevEco Studio打开ijkplayer,建议使用HarmonyOS NEXT Beta1版本IDE
  2. 2. 可以新建一个空的C++ native项目,然后将新建的项目中的hvigor/hvigor-config.json5文件,替换掉ohos_ijkplayer/hvigor/hvigor-config.json5文件
  3. 3. File->Sync and Refresh Project
  4. 4. Build->Rebuild Project
复制代码
总结

当前编译是基于Harmony SDK API 10以上编译,需要HarmonyOS NEXT 系统才可以测试。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表