From 28006f19a5e406358051e69aa2f54e16cd2025d3 Mon Sep 17 00:00:00 2001 From: Misaka Date: Sat, 9 May 2026 20:50:35 +0800 Subject: [PATCH] docs: add sound settings design document Co-Authored-By: Claude Opus 4.6 --- .../plans/2026-05-09-sound-settings-design.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/plans/2026-05-09-sound-settings-design.md diff --git a/docs/plans/2026-05-09-sound-settings-design.md b/docs/plans/2026-05-09-sound-settings-design.md new file mode 100644 index 0000000..e18cf4c --- /dev/null +++ b/docs/plans/2026-05-09-sound-settings-design.md @@ -0,0 +1,38 @@ +# 铃声配置功能设计 + +## 概述 +在设置页新增铃声配置入口,用户可以为"上架成功"和"上架失败"分别指定本地音频文件作为提示铃声。 + +## 依赖 +- `file_picker` — 从设备选择音频文件(支持 mp3/wav/ogg/aac/m4a/flac) +- `audioplayers` — 播放本地音频文件 + +## 数据存储 +使用 `SharedPreferences`: +- `sound_success` — 上架成功铃声文件路径 +- `sound_failure` — 上架失败铃声文件路径 + +## UI 设计 +设置页新增"铃声设置"分区,API 地址下方: + +``` +铃声设置 +───────────────────────────── +上架成功铃声 +[当前文件名或"未设置"] [选择] [试听] [清除] + +上架失败铃声 +[当前文件名或"未设置"] [选择] [试听] [清除] +``` + +## 音频播放逻辑 +- 封装为 `SoundService`,统一管理播放 +- 通过 `DeviceFileSource` 播放本地文件 +- 上架成功/失败时检查是否配置了铃声,有则播放 +- 保留现有震动反馈,铃声与震动并行 + +## 涉及文件 +1. `pubspec.yaml` — 添加依赖 +2. `lib/services/sound_service.dart` — 新建,封装音频播放 +3. `lib/pages/settings_page.dart` — 新增铃声配置 UI +4. `lib/pages/registration_page.dart` — 集成铃声播放