Harmony-Audacity:基于 HarmonyOS NDK 的音频编辑引擎移植项目

Audacity 向 HarmonyOS(OHOS arm64)的移植源码仓库,为 AirAudio 应用提供音频编辑 native 引擎层

分支1Tags0
文件最后提交记录最后更新时间
10 天前
10 天前
10 天前
10 天前
10 天前
10 天前

Harmony-Audacity

Audacity 3.7.8 向 HarmonyOS(OHOS arm64) 的移植源码仓库,为 AirAudio 应用提供音频编辑的 native 引擎层。

移植方式

  • 交叉编译:CMake + Ninja + OHOS NDK clang(musl libc / libc++),交叉工具链配置位于 cross/ohos-toolchain.cmake
  • 目标形态:Audacity 本体构建为共享库,由应用层在运行时加载;音频编解码与容器依赖(FLAC、LAME、libogg、libvorbis、libsndfile、mpg123、Opus/opusfile、WavPack 等)以源码方式一并收录、随工程交叉编译。
  • 移植胶水patches/ 收录面向 OHOS 的适配补丁(audacity-ohos、portaudio-ohos、wx-extra 及 libuuid/portmidi 桩),由 scripts/patch_audacity_ohos.sh 幂等应用;scripts/derive_airaudio_core.pyscripts/derive_napi_init.py 负责生成应用侧胶水代码。

仓库结构

目录 说明
sources/audacity/ Audacity 3.7.8 上游源码(含 HarmonyOS 移植改动)
sources/flac/sources/lame/sources/libid3tag/sources/libogg/sources/libvorbis/sources/libsndfile/sources/mpg123/sources/opus/sources/opusfile/sources/wavpack/ 音频编解码 / 容器格式库源码(构建依赖)
sources/wxwidgets/(3.2.8)、sources/portaudio/ GUI 框架与音频 I/O 库源码
sources/rapidjson/ JSON 解析库源码
cross/ 交叉编译工具链配置(ohos-toolchain.cmake
patches/ HarmonyOS 适配补丁(audacity-ohos / portaudio-ohos / wx-extra / libuuid-stub / portmidi-stub)
scripts/ 构建与部署脚本

构建

前置条件:OHOS SDK(NDK aarch64 工具链)、CMake、Ninja、Python 3。各依赖的上游版本以 scripts/fetch_sources.sh 为准。

source scripts/env.sh
scripts/fetch_sources.sh       # 按需获取依赖源码
scripts/build_audio_deps.sh    # 音频依赖库
scripts/build_wxwidgets.sh     # wxWidgets
scripts/build_portaudio.sh     # PortAudio
scripts/build_audacity.sh      # Audacity 本体(自动应用 OHOS 补丁)
scripts/deploy_libs.sh         # 部署到应用工程

说明:脚本中的工具链与安装前缀路径以本机构建环境为准(含跨项目复用的依赖前缀),使用时按实际环境调整。

许可证

  • Audacity:见 sources/audacity/LICENSE.txt
  • wxWidgets:见 sources/wxwidgets/docs/licence.txt
  • PortAudio:见 sources/portaudio/LICENSE.txt
  • 其余组件(FLAC / LAME / libid3tag / libogg / libvorbis / libsndfile / mpg123 / Opus / opusfile / WavPack / RapidJSON):以各自源码树内的 COPYING / LICENSE 文件为准

各组件著作权归其上游项目所有,本仓库遵循相应许可证条款发布。

项目介绍

Audacity 向 HarmonyOS(OHOS arm64)的移植源码仓库,为 AirAudio 应用提供音频编辑 native 引擎层

定制我的领域