--- description: TTMusic项目结构与关键文件指南 globs: ["**/*.ets", "**/*.ts"] alwaysApply: true --- # TTMusic项目结构与关键文件指南 ## 项目概述 TTMusic是一个基于鸿蒙ArkTS开发的音乐播放器应用,支持本地音乐播放、歌词显示、主题切换等功能。 ## 核心目录结构 ### 1. 应用入口 - `entry/src/main/ets/entryability/EntryAbility.ets` - 应用入口点 - `entry/src/main/ets/MyAbilityStage.ets` - 应用生命周期管理 ### 2. 页面组件 - `entry/src/main/ets/pages/` - 所有页面组件 - `MainIndex.ets` - 主页面,包含底部导航栏 - `SplashIndex.ets` - 启动页 - `SettingPage.ets` - 设置页面 - `PlaylistDetailPage.ets` - 播放列表详情页 - `UserCenter.ets` - 用户中心页面 ### 3. 视图组件 - `entry/src/main/ets/view/` - 可复用视图组件 - 音乐播放控制组件 - 歌词显示组件 - 列表项组件 ### 4. 视图模型 - `entry/src/main/ets/viewmodel/` - 数据模型与业务逻辑 - `MainViewModel.ets` - 主页面数据模型 - `ItemData.ets` - 列表项数据模型 - `Playlist.ets` - 播放列表模型 ### 5. 控制器 - `entry/src/main/ets/controller/` - 控制器层 - `AvSessionController.ets` - 音频会话控制器 - `KnockController.ets` - 敲击检测控制器 ### 6. 公共资源 - `entry/src/main/ets/common/` - 公共工具和常量 - `AppTheme.ets` - 主题配置 - `PlayStatus.ets` - 播放状态枚举 - `constants/CommonConstants.ets` - 通用常量 - `util/` - 工具类集合 ### 7. 对话框 - `entry/src/main/ets/dialog/` - 对话框组件 - `PlaylistDialog.ets` - 播放列表对话框 - `UserPrivacyDialog.ets` - 用户隐私对话框 ### 8. 原生模块 - `ijkplayer/` - FFmpeg播放器原生模块 - `lib/` - 歌词解析库 ## 关键文件说明 ### 主题系统 项目支持多主题切换,主题配置在 `AppTheme.ets` 中定义: - `DefaultColors` - 默认浅色主题 - `TwilightColors` - 暮色深色主题 - `ForestColors` - 森林浅色主题 - `CoralColors` - 珊瑚浅色主题 - `MidnightColors` - 极夜深色主题 ### 常量配置 `CommonConstants.ets` 包含应用中使用的所有常量: - API端点 - 文件格式支持列表 - 播放状态枚举 - 微信支付配置 ### 日志系统 使用 `common/util/Logger.ets` 进行统一日志记录,基于鸿蒙系统的hilog实现。 ## 开发注意事项 1. 所有页面组件应使用 `@Entry` 和 `@Component` 装饰器 2. 状态管理使用 `@State` 和 `@StorageProp` 装饰器 3. 遵循ArkTS语法限制,特别是避免使用解构赋值和计算属性名 4. 使用项目定义的常量而非硬编码值 5. 遵循项目的命名规范和代码风格