ijkplayer-ohos OpenHarmonyOS(鸿蒙)版本编译

概要

基于OpenHarmonyOS,编译ijkplayer

一、准备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

tar -zxvf version-Master_Version-OpenHarmony_3.2.10.3-20230105_163913-ohos-sdk-full.tar.gz

进入解压得到 ohos_sdk 目录,可以看到 Linux 和 windows 两个平台的 SDK 目录,我们进入 linux

ohos@ubuntu20:~/tools/OH_SDK$ cd ohos-sdk
    ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ ls
    linux  windows
    ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk$ cd linux/
    ohos@ubuntu20:~/tools/OH_SDK/ohos-sdk/linux$ ls
    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
    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框架代码

git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git

2.拷贝编译工具

cd lycium/Buildtools                        # 进入到工具包目录
sha512sum -c SHA512SUM                      # 可校验工具包是否正常, 若输出"toolchain.tar.gz: OK"则说明工具包正常,否则说明工具包异常,需重新下载
tar -zxvf toolchain.tar.gz                  # 解压拷贝编译工具
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代码

git clone https://gitee.com/openharmony-sig/ohos_ijkplayer.git

2.编译soundtouch

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

3.编译libyuv

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

4.拷贝库文件

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

在这里插入图片描述

5.编译ijkplayer

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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值