# TTMusic 鸿蒙音乐播放器 ## 简介 TTMusic 是一款基于 OpenHarmony(鸿蒙)平台开发的本地音乐播放器,支持多种音频格式的本地播放,具备歌单管理、歌词显示、封面管理、批量操作等丰富功能,适配多种鸿蒙设备。 ## 主要功能 - 支持多种音频格式的本地播放 - 歌单管理、收藏夹、最近播放 - 歌词同步显示与导入 - 音乐封面自动提取与自定义 - 批量导入、剪切、复制、删除、重命名 - 艺术家、专辑、媒体库分组浏览 - 支持倍速播放、音频焦点、循环播放等 - 适配平板、折叠屏等多种鸿蒙设备 ## 安装与运行 1. 使用 DevEco Studio 打开本项目。 2. 下载并安装 OpenHarmony SDK,API 版本建议 >= 9。 3. 连接支持的鸿蒙设备或模拟器。 4. 编译并运行项目。 ## 使用说明 - 首次启动会自动扫描本地 Download 目录下的音频文件。 - 支持手动导入音频文件、歌词文件(歌词文件需与歌曲同名且同目录)。 - 支持歌单新建、重命名、删除、批量管理。 - 支持音乐收藏、最近播放、历史记录。 - 支持歌词同步显示、音乐封面自定义。 - 支持多选批量操作(剪切、复制、删除等)。 - 支持艺术家、专辑、媒体库分组浏览。 ## 主要API简要 播放器核心接口基于 IjkMediaPlayer,支持如下常用方法: - `setDataSource(url: string)` 设置音频源 - `prepareAsync()` 异步准备播放 - `start()` 开始播放 - `pause()` 暂停播放 - `stop()` 停止播放 - `seekTo(msec: number)` 跳转到指定位置 - `setSpeed(speed: string)` 设置播放速度 - `setLoopCount(looping: boolean)` 设置循环播放 - `setVolume(left: string, right: string)` 设置音量 - `setOnCompletionListener(listener)` 播放完成回调 - `setOnErrorListener(listener)` 错误回调 - 详见 `entry/src/main/ets/view/LocalMusic.ets` 及相关 ViewModel ## 目录结构 ```text |-- entry | |-- src/main/ets | | |-- view/ # 主要UI与音乐播放逻辑 | | |-- viewmodel/ # 数据模型与业务逻辑 | | |-- common/ # 常量、工具类 | | |-- controller/ # 控制器 | | |-- resources/ # 资源文件 | |-- oh_modules/ # 三方依赖 |-- ijkplayer/ # 播放器内核及native模块 |-- lib/ # 公共库 |-- doc/ # 相关文档 |-- README.md |-- README_zh.md ``` ## 贡献方式 如在使用过程中发现问题,欢迎通过 Issue 反馈,或提交 Pull Request 参与共建。 ## 开源协议 本项目基于 [Apache 2.0 License](LICENSE) 开源,欢迎自由使用和参与贡献。