TTMusic 开发者文档
1. 项目简介
TTMusic 是基于 OpenHarmony(鸿蒙)平台开发的本地音乐播放器,支持本地音频文件的管理、播放、歌单、歌词、封面、批量操作等功能。适配多种鸿蒙设备,代码结构清晰,易于二次开发和功能扩展。
2. 环境准备
- 操作系统:Windows、Linux 或 macOS
- 开发工具:DevEco Studio(建议 4.0 及以上版本)
- OpenHarmony SDK:API 12(5.0.0(12))及以上
- 说明:本项目在
build-profile.json5 文件的 compatibleSdkVersion 字段中声明了所需 API 版本号为 5.0.0(12),即 API 12。
- 设备:支持鸿蒙系统的真机或模拟器
- Node.js(部分脚本依赖)
3. 主要目录与代码结构说明
TTMusic/
├── entry/ # 主工程目录
│ ├── src/main/ets/ # 主要业务代码
│ │ ├── view/ # 主要UI与音乐播放逻辑(如 LocalMusic.ets)
│ │ ├── viewmodel/ # 数据模型与业务逻辑
│ │ ├── common/ # 常量、工具类
│ │ ├── controller/ # 控制器
│ │ ├── resources/ # 资源文件(图片、音频、布局等)
│ ├── oh_modules/ # 三方依赖
├── ijkplayer/ # 播放器内核及native模块
├── lib/ # 公共库
├── doc/ # 相关文档
├── README.md # 简要说明
├── README_zh.md # 中文说明
├── 开发者文档.md # 开发者文档(本文件)
4. 核心模块与功能说明
- LocalMusic.ets:音乐播放器主界面,负责本地音频文件的浏览、播放、歌单管理、批量操作等。
- viewmodel/:如
VideoItem、MainViewModel,负责数据结构和业务逻辑。
- controller/:如
AvSessionController,负责音频会话、播放控制等。
- common/:常量、工具类、通用方法。
- ijkplayer/:播放器内核,基于 FFmpeg,支持多种音频格式。
- oh_modules/:三方依赖库,如歌词、弹窗、广告等。
主要功能点
- 本地音频扫描与导入(支持自动、手动、批量)
- 歌单管理、收藏、最近播放、历史记录
- 歌词同步显示、歌词导入
- 音乐封面自动提取与自定义
- 艺术家、专辑、媒体库分组浏览
- 批量操作(剪切、复制、删除、重命名)
- 支持倍速播放、音频焦点、循环播放
5. 如何本地调试与运行
- 使用 DevEco Studio 打开项目根目录。
- 配置好 OpenHarmony SDK,API 版本需为 12(5.0.0(12))及以上。
- 连接鸿蒙真机或启动模拟器。
- 点击"运行"按钮,选择目标设备,编译并安装应用。
- 首次启动会自动扫描 Download 目录下的音频文件。
- 可在 UI 上进行导入、播放、歌单管理等操作。
6. 常见开发问题与建议
- 依赖缺失/编译报错:请确认 SDK、ohpm 依赖已正确安装,必要时重新同步依赖。
- 真机调试无响应:请检查设备已解锁、连接正常,且已允许安装调试应用。
- 音频无法播放:请确认音频格式受支持,或查看日志排查 IjkMediaPlayer 初始化问题。
- 歌词/封面不显示:请确保歌词文件与音频同名同目录,封面图片格式受支持。
- 批量操作异常:建议先单独测试单个文件操作,排查路径、权限等问题。
- UI适配问题:本项目已适配多种屏幕,若需自定义可参考 BreakpointSystem 相关代码。
7. 参与贡献方式
- 欢迎通过 Issue 反馈 bug 或建议。
- 欢迎提交 Pull Request 参与代码共建。
- 代码风格建议遵循现有结构,注释清晰,命名规范。
- 重要变更请先与维护者沟通。
如有更多问题,欢迎查阅源码或联系维护者。祝开发愉快!