Audacity 向 HarmonyOS(OHOS arm64)的移植源码仓库,为 AirAudio 应用提供音频编辑 native 引擎层
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.py、scripts/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 文件为准
各组件著作权归其上游项目所有,本仓库遵循相应许可证条款发布。