用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
ijkplayer-ohos HarmonyOS NEXT版本编译
ijkplayer-ohos HarmonyOS NEXT版本编译
南飓风
论坛元老
|
2024-11-13 15:06:38
|
显示全部楼层
|
阅读模式
楼主
主题
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
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 系统才可以测试。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
南飓风
论坛元老
这个人很懒什么都没写!
楼主热帖
零信任介绍
容斥原理
开源SPL助力JAVA处理公共数据文件(txt ...
使用 Helm 安装 MQTT 服务器-EMQX ...
数理逻辑第1-3章
Ubuntu如何安装Mysql+启用远程连接[完 ...
dotnet 修复在 Linux 上使用 SkiaSharp ...
DOS窗口命令和单表简单查询
Java笔记(13) 简单的Lambda表达式 ...
.gitignore文件配置以及gitee提交报Pus ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
开源技术
容器及微服务
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表