From c1dfb01f53515081ecfad472024f29b3a9514a3f Mon Sep 17 00:00:00 2001 From: long <452591453@qq.com> Date: Tue, 26 May 2026 09:19:19 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix(metronome):=20=E5=88=87=E5=90=8E?= =?UTF-8?q?=E5=8F=B0/=E5=B0=8F=E7=AA=97=E5=90=8E=E8=8A=82=E6=8B=8D?= =?UTF-8?q?=E5=A3=B0=E7=BB=A7=E7=BB=AD(=E6=94=BE=E5=85=9C=E9=87=8C?= =?UTF-8?q?=E4=B9=9F=E8=83=BD=E5=90=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两层原因都修: 1. 微信限制(声明后台音频权限): InnerAudioContext 默认在小程序进后台时被强制暂停。 必须显式声明 requiredBackgroundModes,iOS 才允许后台继续发声。 - manifest.json mp-weixin 全局加 requiredBackgroundModes:["audio"] - pages.json 节拍器页 style 也加,双保险 说明:Android 大部分情况无需此声明也能后台,iOS 必需。 2. 代码层(onHide 不再主动 stop): 原 onHide 里 if(isPlaying) stop() 会在切后台/小窗时 立刻把节拍器自己关掉,跟需求相反。 新策略: - onHide 留空 → 切后台/小窗时节拍器继续工作 - onUnmounted 才真正 stop + 释放屏幕常亮 → 用户主动离开 节拍器页(navigateBack/重启)时清理资源 实际场景:健走时把手机塞口袋,锁屏或切到微信聊天, 节拍声依然继续响,无需把手机一直拿着看。 Co-authored-by: Cursor --- TUICallKit-Vue3/manifest.json | 4 +++- TUICallKit-Vue3/pages.json | 3 ++- TUICallKit-Vue3/training/pages/metronome.vue | 15 +++++++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/TUICallKit-Vue3/manifest.json b/TUICallKit-Vue3/manifest.json index 5389584a..642f8e7d 100644 --- a/TUICallKit-Vue3/manifest.json +++ b/TUICallKit-Vue3/manifest.json @@ -57,7 +57,9 @@ "optimization" : { "subPackages" : true }, - "usingComponents" : true + "usingComponents" : true, + /* 节拍器后台播放需要,iOS 必需 */ + "requiredBackgroundModes" : ["audio"] }, "mp-alipay" : { "usingComponents" : true diff --git a/TUICallKit-Vue3/pages.json b/TUICallKit-Vue3/pages.json index 8fe89074..229719a4 100644 --- a/TUICallKit-Vue3/pages.json +++ b/TUICallKit-Vue3/pages.json @@ -122,7 +122,8 @@ "navigationBarBackgroundColor": "#f8fafc", "navigationBarTextStyle": "black", "backgroundColor": "#f8fafc", - "disableScroll": true + "disableScroll": true, + "requiredBackgroundModes": ["audio"] } } ] diff --git a/TUICallKit-Vue3/training/pages/metronome.vue b/TUICallKit-Vue3/training/pages/metronome.vue index 023797ee..3f8bda59 100644 --- a/TUICallKit-Vue3/training/pages/metronome.vue +++ b/TUICallKit-Vue3/training/pages/metronome.vue @@ -244,14 +244,21 @@ onShow(() => { preload() }) +/** + * onHide 故意不 stop: + * - 切到后台 / 微信"小窗" 都会触发 onHide + * - 配合 pages.json 的 requiredBackgroundModes:["audio"], + * 小程序退到后台后节拍声仍然可以继续(健走时把手机放兜里也能听到响) + * - 真正离开节拍器页(navigateBack/重启) 会 onUnload+onUnmounted, + * 在那里清理屏幕常亮 + */ onHide(() => { - if (isPlaying.value) { - stop() - uni.setKeepScreenOn({ keepScreenOn: false }) - } + /* 不再主动 stop, 让节拍器在后台继续工作 */ }) onUnmounted(() => { + /* 页面卸载才真正停 + 释放屏幕常亮 */ + if (isPlaying.value) stop() uni.setKeepScreenOn({ keepScreenOn: false }) }) From b93313d9350e73fdac2c4b2a42aa15637923555f Mon Sep 17 00:00:00 2001 From: long <452591453@qq.com> Date: Tue, 26 May 2026 09:27:56 +0800 Subject: [PATCH 2/4] =?UTF-8?q?docs(training):=20=E6=B2=89=E6=B7=80=20BgAu?= =?UTF-8?q?dio=20=E8=AE=BE=E8=AE=A1=E5=A4=87=E5=BF=98=E5=88=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 记录未来做健身模块时上 BackgroundAudioManager 的完整方案, 避免再调研一次。包含: - 引擎选择对照表(BGM 用 BgAudio / 短音用 InnerAudio) - BackgroundAudioManager 7 条限制清单 - 健身模块推荐架构(双引擎共存) - 必备资产清单(BGM mp3 + 200×200 封面) - BgAudio API 速查 + 场景切换模式代码 - 节拍器为何不一并升级的判断依据 Co-authored-by: Cursor --- TUICallKit-Vue3/training/static/README.md | 117 ++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/TUICallKit-Vue3/training/static/README.md b/TUICallKit-Vue3/training/static/README.md index 1c5442f4..86616b8b 100644 --- a/TUICallKit-Vue3/training/static/README.md +++ b/TUICallKit-Vue3/training/static/README.md @@ -103,3 +103,120 @@ node scripts/generate-voice.mjs --force - 微信小程序对单个文件大小有 10MB 上限,本目录所有文件加起来建议控制在 5MB 以内。 - 小程序整包大小限制(主包 2MB / 总包 20MB),如果资源较大建议放 CDN 而非本地 static。 - 把 `useVoiceCoach.ts` 里的 `VOICE_BASE` 改成 CDN URL 即可。 + +--- + +## 后台/锁屏播放设计备忘(未来健身模块用) + +> 节拍器目前用 `InnerAudioContext` + `requiredBackgroundModes:["audio"]` 已能覆盖 5~10 分钟健走场景。 +> 真要做长时间训练 BGM、锁屏控制条等高级能力,参考下面的 `BackgroundAudioManager` 方案。 + +### 引擎选择对照表 + +健身模块的音频天然分两类,配两套引擎不冲突: + +| 音频类型 | 时长 | 推荐引擎 | 理由 | +|---|---|---|---| +| 训练/休息 BGM | 30s~2min 循环 | **BackgroundAudioManager** | 长流、需要后台/锁屏不停 | +| 语音教练("开始/休息/再来") | 1~3s 单句 | InnerAudioContext | 短促,前台用即可 | +| 报数(1, 2, 3...) | 0.5~1s | InnerAudioContext + 池子 | 高频短促 | +| 节拍器 click | 50~150ms | InnerAudioContext + 池子 | 极短,BgAudio 不接受 | + +**关键约束:BgAudio 是全局单例,一次只能播 1 个音频**。所以让它专门播 BGM 这类"长流",其他短音用 InnerAudio 配合,互不打架。 + +### BackgroundAudioManager 限制清单(踩坑预警) + +1. **全局单例**:整个小程序同一时刻只能播一个,多场景要协调切换 +2. **音频时长 ≥ 1 秒**:太短的 click 会被微信判定异常忽略 +3. **必填 metadata**:`title` / `coverImgUrl` / `singer` / `epname` / `webUrl` 缺一会报错 +4. **切 src 有延迟**:200~500ms 初始化抖动,频繁切换会卡顿 +5. **必须声明 `requiredBackgroundModes:["audio"]`** 才能后台播放 +6. **iOS 锁屏豁免**:声明后能锁屏继续播,无 5 分钟时长限制(vs InnerAudio 的 5min) +7. **会显示系统控制条**:锁屏/通知栏出现带封面+暂停按钮的控制条 + +### 推荐架构(健身模块上线时) + +``` +training/hooks/ +├── useTrainingBgm.ts → BackgroundAudioManager (后台/锁屏继续放音乐) +├── useVoiceCoach.ts → InnerAudioContext (语音指导,前台用) +└── useMetronome.ts → InnerAudioContext (节拍器,池子方案,保持现状) +``` + +页面 `pages.json` 声明: + +```json +{ + "path": "pages/index", + "style": { + "navigationBarTitleText": "练一练", + "requiredBackgroundModes": ["audio"] + } +} +``` + +锁屏会显示 BGM 控制条,老人能直接在锁屏点暂停。训练页面通过 `bgm.onPause()` 监听同步暂停训练,体验连贯。 + +### 必备资产清单 + +到时候要准备的文件: + +- **BGM 2 首**:`bgm/train-light.mp3`(训练)、`bgm/rest-meditation.mp3`(休息) + - 每个 30s~1min,128kbps 单声道,30~80KB + - 推荐来源:[pixabay.com/music](https://pixabay.com/music) 搜 "calm" / "meditation" / "lofi" +- **锁屏封面**:`audio/cover.jpg` 200×200 + - 简洁绿色背景 + 训练 emoji 即可 + +### BackgroundAudioManager API 速查 + +```ts +const bgm = uni.getBackgroundAudioManager() + +/* 必填 metadata,缺一会报错 */ +bgm.title = '健走训练中' +bgm.coverImgUrl = '/training/static/audio/cover.jpg' +bgm.epname = '甄养堂' +bgm.singer = '健走节拍' +bgm.webUrl = '' // 必填,空字符串可 + +/* src 一旦赋值会自动播放 */ +bgm.src = '/training/static/audio/bgm/train-light.mp3' + +/* 控制 */ +bgm.pause() // 暂停 (锁屏控制条仍在) +bgm.play() // 继续 +bgm.stop() // 真停 + 隐藏控制条 +bgm.seek(30) // 跳到 30s + +/* 事件监听 — 用户从锁屏点暂停时会触发 */ +bgm.onPause(() => { /* 同步训练 UI 状态 */ }) +bgm.onPlay(() => {}) +bgm.onStop(() => {}) +bgm.onEnded(() => { /* 不 loop 时触发,可手动接下一首 */ }) +bgm.onError((err) => { console.error(err) }) +``` + +### 切换不同场景音乐的模式 + +```ts +function switchBgm(scene: 'training' | 'resting' | 'none') { + if (scene === 'none') { + bgm.stop() + return + } + bgm.title = scene === 'training' ? '健走训练中' : '休息恢复中' + bgm.src = scene === 'training' + ? '/training/static/audio/bgm/train-light.mp3' + : '/training/static/audio/bgm/rest-meditation.mp3' + /* 注:setSrc 会自动播放,有 200~500ms 切换延迟 */ +} +``` + +### 节拍器要不要也升级到 BgAudio? + +**目前不需要**。节拍器升级 BgAudio 的代价: +- 需要预合成 3 个档位的循环 mp3(80/110/130 BPM × 2 拍) +- 必须砍掉右下角微调按钮(预合成 mp3 改不了 BPM) +- 切档位有 200~500ms 卡顿 + +如果未来发现"健走 30 分钟以上锁屏会停"才考虑改。当前 5~10 分钟场景 InnerAudio + `requiredBackgroundModes` 够用。 From 0e46bf8e0dbc9109b35c209aa4534818b3dc1f00 Mon Sep 17 00:00:00 2001 From: long <452591453@qq.com> Date: Tue, 26 May 2026 09:39:33 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat(metronome):=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=20BackgroundAudioManager,iOS=20=E7=9C=9F=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit iOS 微信小程序硬限制: InnerAudioContext 切到后台/锁屏一定被挂起, 即使配置 requiredBackgroundModes 也无效。 唯一支持 iOS 真后台的音频 API 是 BackgroundAudioManager。 新增预合成档位音轨(ffmpeg 拼接 click + click-wood): - loop_80bpm_2.mp3 慢走 6.0s 4 周期循环 (72 KB) - loop_110bpm_2.mp3 健走 5.45s 5 周期循环 (66 KB) - loop_130bpm_2.mp3 快走 5.54s 6 周期循环 (67 KB) - cover.jpg 200×200 emerald 占位封面 (474B) 新 hook training/hooks/useMetronomeBg.ts: - 封装 uni.getBackgroundAudioManager() 单例 - 必填 metadata: title/coverImgUrl/singer/epname/webUrl - onEnded 重赋 src 实现循环 (BgAudio 无原生 loop 属性) - onPause 同步 isPlaying,用户从锁屏控制条点暂停 UI 自动同步 - 暴露 playLoop(id)/pause/resume/stop API metronome.vue 改造: - 切换为 useMetronomeBg,移除右下角微调和拍号选择 (预合成 mp3 改不了 BPM/拍号,要么砍要么扩 9 个 mp3) - 中央圆按钮逻辑: · 未选档位 → 默认开"健走" · 选了档位且在播 → 暂停 · 选了档位且暂停 → 恢复 - 视频 playbackRate 跟当前档位 BPM 同步(80→0.65× / 110→0.89× / 130→1.05×) - 加底部提示"🔒 锁屏可继续播放,放兜里走也能听到" - onHide 不 stop,onUnmounted 才 stop(避免锁屏控制条挂死) 副作用: - 锁屏/通知栏会显示带封面+暂停按钮的音乐控制条(老人友好) - 切档位有 200~500ms 延迟 (用户主动操作可接受) - 不再支持任意 BPM 微调 (3 档已覆盖大部分场景) 旧的 useMetronome.ts 暂时保留,如 BgAudio 真机验证 OK 再清理。 Co-authored-by: Cursor --- .../training/hooks/useMetronomeBg.ts | 196 ++++++++++++ TUICallKit-Vue3/training/pages/metronome.vue | 289 ++++-------------- .../training/static/audio/cover.jpg | Bin 0 -> 474 bytes .../training/static/audio/loop_110bpm_2.mp3 | Bin 0 -> 66187 bytes .../training/static/audio/loop_130bpm_2.mp3 | Bin 0 -> 67440 bytes .../training/static/audio/loop_80bpm_2.mp3 | Bin 0 -> 72769 bytes 6 files changed, 263 insertions(+), 222 deletions(-) create mode 100644 TUICallKit-Vue3/training/hooks/useMetronomeBg.ts create mode 100644 TUICallKit-Vue3/training/static/audio/cover.jpg create mode 100644 TUICallKit-Vue3/training/static/audio/loop_110bpm_2.mp3 create mode 100644 TUICallKit-Vue3/training/static/audio/loop_130bpm_2.mp3 create mode 100644 TUICallKit-Vue3/training/static/audio/loop_80bpm_2.mp3 diff --git a/TUICallKit-Vue3/training/hooks/useMetronomeBg.ts b/TUICallKit-Vue3/training/hooks/useMetronomeBg.ts new file mode 100644 index 00000000..d362f625 --- /dev/null +++ b/TUICallKit-Vue3/training/hooks/useMetronomeBg.ts @@ -0,0 +1,196 @@ +import { ref, onUnmounted } from 'vue' + +/** + * 节拍器后台播放专版 - 基于 BackgroundAudioManager + * + * 解决 InnerAudioContext 在 iOS 微信小程序中无法后台播放的硬限制: + * - iOS 真机切到后台/锁屏 InnerAudioContext 必被挂起,requiredBackgroundModes 无效 + * - BackgroundAudioManager 是微信唯一支持 iOS 真后台/锁屏播放的音频 API + * + * 取舍: + * - BgAudio 是全局单例,一次只能播一个音频,不适合短促 click 高频重复 + * - 因此提前用 ffmpeg 合成 3 个档位的"完整节拍循环"音轨(80/110/130 BPM × 2 拍) + * 每个 mp3 是 5~6 秒无缝循环,设 onEnded 重赋 src 实现永久循环 + * + * 副作用: + * - 播放时锁屏/通知栏会显示带封面+暂停按钮的音乐控制条(可被用户从锁屏暂停) + * - 必须声明 requiredBackgroundModes:["audio"](已配在 manifest+pages) + * - 切档位有 200~500ms 切换延迟,但用户主动操作时可接受 + */ + +export type LoopId = 'slow' | 'normal' | 'brisk' + +export interface LoopPreset { + id: LoopId + bpm: number + accent: number + src: string + label: string +} + +export const LOOP_PRESETS: readonly LoopPreset[] = [ + { + id: 'slow', + bpm: 80, + accent: 2, + src: '/training/static/audio/loop_80bpm_2.mp3', + label: '慢走 80 BPM', + }, + { + id: 'normal', + bpm: 110, + accent: 2, + src: '/training/static/audio/loop_110bpm_2.mp3', + label: '健走 110 BPM', + }, + { + id: 'brisk', + bpm: 130, + accent: 2, + src: '/training/static/audio/loop_130bpm_2.mp3', + label: '快走 130 BPM', + }, +] + +const COVER_URL = '/training/static/audio/cover.jpg' + +export function useMetronomeBg() { + const isPlaying = ref(false) + const currentLoop = ref(null) + + /* @dcloudio/types 没有 BackgroundAudioManager 类型,直接 any */ + let bgm: any = null + /* 当前期望的 src,onEnded 时用它重新赋值实现循环 */ + let desiredSrc = '' + + /* 懒初始化 BackgroundAudioManager + 绑定事件 + BgAudio 是全局单例,跨页面共享,只能在第一次需要时初始化 */ + const ensureBgm = () => { + if (bgm) return bgm + + const m = uni.getBackgroundAudioManager() + + /* 必填 metadata,缺一会报错或不显示锁屏控制条 */ + m.title = '节拍器' + m.epname = '甄养堂 · 健走' + m.singer = '健走配速' + m.coverImgUrl = COVER_URL + m.webUrl = '' + + m.onPlay(() => { + isPlaying.value = true + }) + m.onPause(() => { + /* 用户从锁屏控制条点暂停,同步 UI 状态 */ + isPlaying.value = false + }) + m.onStop(() => { + isPlaying.value = false + currentLoop.value = null + }) + + /* 实现无限循环:每段 mp3 播完时立即重赋 src 再次播放 + BgAudio 没有原生 loop 属性,只能用这招 */ + m.onEnded(() => { + if (desiredSrc && isPlaying.value) { + try { + m.src = desiredSrc + } catch (_) {} + } + }) + + m.onError((err) => { + console.error('[BgAudio] error:', err) + isPlaying.value = false + uni.showToast({ + title: '音频播放失败,请重试', + icon: 'none', + duration: 2000, + }) + }) + + bgm = m + return m + } + + /** + * 切到指定档位并开始播放 + * 如果已经在播同一档位 → 切到 pause/play 状态 + * 如果在播别的档位 → 切换 src(有 200~500ms 延迟) + */ + const playLoop = (id: LoopId) => { + const preset = LOOP_PRESETS.find((p) => p.id === id) + if (!preset) return + + const m = ensureBgm() + + /* 同档位再点一下 = 暂停 */ + if (currentLoop.value === id && isPlaying.value) { + m.pause() + return + } + + /* 切换档位或从暂停恢复 */ + currentLoop.value = id + desiredSrc = preset.src + + /* 重设 title 让锁屏控制条显示当前档位 */ + m.title = `节拍器 · ${preset.label}` + + /* 赋值 src 会自动播放(微信 API 设计如此) */ + m.src = preset.src + /* isPlaying 由 onPlay 回调置 true */ + } + + const pause = () => { + if (bgm && isPlaying.value) { + bgm.pause() + } + } + + const resume = () => { + if (bgm && !isPlaying.value && desiredSrc) { + /* 从暂停态恢复:直接 play 即可 */ + try { + bgm.play() + } catch (_) { + /* 部分基础库 play() 不可用时,重赋 src */ + bgm.src = desiredSrc + } + } + } + + /** + * 完全停止 + 清掉锁屏控制条 + * 注意 BgAudio 是全局单例,stop 会影响所有页面共享的实例 + */ + const stop = () => { + if (bgm) { + try { + bgm.stop() + } catch (_) {} + } + currentLoop.value = null + desiredSrc = '' + isPlaying.value = false + } + + /* hook 卸载时不主动 stop,因为用户离开节拍器页时 + 仍希望音乐持续(走在路上拿出手机切别的页面应该不停) + 真正停止的责任在 metronome.vue 的退出按钮里 */ + onUnmounted(() => { + /* 仅解绑回调? BgAudio 是全局单例,我们的回调还在, + 不解会导致内存中保留无用引用,但回调里都判断了 isPlaying, + 且新页面再 ensureBgm 时会覆盖回调,可接受 */ + }) + + return { + isPlaying, + currentLoop, + playLoop, + pause, + resume, + stop, + LOOP_PRESETS, + } +} diff --git a/TUICallKit-Vue3/training/pages/metronome.vue b/TUICallKit-Vue3/training/pages/metronome.vue index 3f8bda59..9057ee92 100644 --- a/TUICallKit-Vue3/training/pages/metronome.vue +++ b/TUICallKit-Vue3/training/pages/metronome.vue @@ -1,11 +1,11 @@ @@ -89,7 +70,7 @@ @@ -209,6 +337,8 @@ $text-3: #94a3b8; $brand: #10b981; $brand-soft: #d1fae5; $brand-deep: #047857; +$warn: #f59e0b; +$warn-soft: #fef3c7; $radius-card: 24rpx; $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); @@ -217,16 +347,15 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); * ============================================================ */ .page { position: relative; - height: 100vh; + min-height: 100vh; box-sizing: border-box; - padding: 30rpx 28rpx 80rpx; + padding: 30rpx 28rpx 50rpx; background: $bg-color; display: flex; flex-direction: column; align-items: center; - gap: 22rpx; + gap: 20rpx; color: $text-1; - overflow: hidden; } /* ============================================================ @@ -236,7 +365,7 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); position: relative; width: 480rpx; height: 480rpx; - margin-top: 16rpx; + margin-top: 12rpx; display: flex; align-items: center; justify-content: center; @@ -359,7 +488,7 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); * ============================================================ */ .walker { width: 100%; - height: 260rpx; + height: 240rpx; display: flex; justify-content: center; align-items: center; @@ -367,8 +496,8 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); .walker-box { position: relative; - width: 260rpx; - height: 260rpx; + width: 240rpx; + height: 240rpx; background: #e8ecf2; border-radius: 24rpx; overflow: hidden; @@ -398,7 +527,7 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); .presets { width: 100%; display: flex; - gap: 16rpx; + gap: 14rpx; } .preset { @@ -406,33 +535,33 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); background: $card-bg; border: 2rpx solid $card-border; border-radius: $radius-card; - padding: 22rpx 12rpx 20rpx; + padding: 18rpx 8rpx 16rpx; display: flex; flex-direction: column; align-items: center; - gap: 6rpx; + gap: 4rpx; box-shadow: $shadow-sm; transition: all 0.18s; .preset-icon { - font-size: 44rpx; + font-size: 40rpx; line-height: 1; - margin-bottom: 6rpx; + margin-bottom: 4rpx; } .preset-name { - font-size: 30rpx; + font-size: 28rpx; font-weight: 700; color: $text-1; letter-spacing: 2rpx; } .preset-bpm { - font-size: 24rpx; + font-size: 22rpx; color: $text-2; font-weight: 600; font-variant-numeric: tabular-nums; } .preset-desc { - font-size: 20rpx; + font-size: 18rpx; color: $text-3; letter-spacing: 1rpx; margin-top: 2rpx; @@ -462,16 +591,145 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04); } /* ============================================================ - * 底部提示 + * 自定义节奏面板(仅 customExpanded 时显示) * ============================================================ */ -.hint { - margin-top: 8rpx; - font-size: 22rpx; - color: $text-3; - letter-spacing: 1rpx; +.custom-panel { + width: 100%; + background: $card-bg; + border: 2rpx solid rgba(245, 158, 11, 0.25); + border-radius: $radius-card; + box-shadow: 0 6rpx 18rpx rgba(245, 158, 11, 0.08); + padding: 20rpx 24rpx 22rpx; + display: flex; + flex-direction: column; + gap: 16rpx; +} - text { - line-height: 1.6; +.custom-warn { + display: flex; + align-items: center; + gap: 8rpx; + margin-bottom: 4rpx; + + .warn-dot { + font-size: 18rpx; + color: $warn; + } + .warn-text { + font-size: 22rpx; + color: #b45309; + letter-spacing: 0.5rpx; + font-weight: 600; } } + +.row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12rpx; + + .row-label { + font-size: 24rpx; + color: $text-2; + font-weight: 600; + letter-spacing: 1rpx; + flex-shrink: 0; + width: 70rpx; + } +} + +.bpm-stepper { + display: flex; + align-items: center; + gap: 6rpx; + flex: 1; + justify-content: flex-end; + + .step-btn { + min-width: 56rpx; + height: 52rpx; + line-height: 52rpx; + text-align: center; + font-size: 22rpx; + color: $text-2; + background: #f1f5f9; + border-radius: 10rpx; + font-weight: 600; + padding: 0 10rpx; + font-variant-numeric: tabular-nums; + + &:active { + background: #e2e8f0; + transform: scale(0.94); + } + } + .step-val { + min-width: 84rpx; + height: 52rpx; + line-height: 52rpx; + text-align: center; + font-size: 30rpx; + font-weight: 800; + color: $text-1; + font-variant-numeric: tabular-nums; + background: $warn-soft; + border-radius: 10rpx; + } +} + +.meter-tabs { + display: flex; + gap: 8rpx; + + .meter-tab { + height: 52rpx; + line-height: 52rpx; + padding: 0 18rpx; + font-size: 22rpx; + color: $text-2; + background: #f1f5f9; + border-radius: 10rpx; + font-weight: 600; + letter-spacing: 1rpx; + + &.active { + background: $warn; + color: #fff; + box-shadow: 0 4rpx 10rpx rgba(245, 158, 11, 0.3); + } + &:active { + transform: scale(0.94); + } + } +} + +/* ============================================================ + * 底部行(自定义入口 + 锁屏提示,横向排布) + * ============================================================ */ +.bottom-row { + width: 100%; + margin-top: 6rpx; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 6rpx; +} + +.bottom-link { + font-size: 22rpx; + color: $text-3; + letter-spacing: 0.5rpx; + padding: 8rpx 4rpx; + + &:active { + color: $text-2; + } +} + +.bottom-hint { + font-size: 22rpx; + color: $text-3; + letter-spacing: 0.5rpx; +} diff --git a/TUICallKit-Vue3/training/static/README.md b/TUICallKit-Vue3/training/static/README.md index 86616b8b..c6a22f21 100644 --- a/TUICallKit-Vue3/training/static/README.md +++ b/TUICallKit-Vue3/training/static/README.md @@ -6,26 +6,16 @@ ``` training/static/ -├── audio/ -│ └── click.mp3 # 节拍器主音(短促金属敲击声,约 50ms) -├── voice/ -│ ├── numbers/ -│ │ └── 1.mp3 ~ 30.mp3 # 数字报数 -│ └── prompts/ -│ ├── start.mp3 -│ ├── ready.mp3 -│ ├── rest.mp3 -│ ├── next-set.mp3 -│ ├── last-rep.mp3 -│ ├── keep-it-up.mp3 -│ ├── good-job.mp3 -│ ├── breathe-in.mp3 -│ └── breathe-out.mp3 -└── bgm/ - ├── train-light.mp3 # 训练时背景乐(轻快有节奏感) - └── rest-meditation.mp3 # 休息时背景乐(舒缓冥想) +├── audio/ # 当前为空 —— 节拍器音频已全部迁移到 COS CDN +├── voice/ # (规划中) TTS 语音教练 +│ ├── numbers/ 数字报数 1~30 +│ └── prompts/ 开始/休息/再来 等口令 +├── bgm/ # (规划中) 训练/休息背景乐 +└── footprint.svg # 脚印图标(早期方案残留,可保留作为备用素材) ``` +> 节拍器音频已完全走 CDN(`gz-1349751149.cos.ap-guangzhou.myqcloud.com`),减少小程序包体积约 210 KB。`useMetronomeBg.ts` / `useMetronome.ts` 中的 URL 即源信息,更换音色只需改 hook 里的常量。 + ## 准备步骤 ### 1. 语音素材(小米 MiMo TTS 自动生成) @@ -63,21 +53,22 @@ node scripts/generate-voice.mjs --force - `苏打`:年轻男声,有力量感 - `白桦`:成熟男声,沉稳 -### 2. 节拍器 click 音 +### 2. 节拍器 click / 循环音轨 -**已内置 3 种音色**(来自 [chrono-bump](https://github.com/johnnysn/chrono-bump) MIT 协议项目): +**全部托管在腾讯云 COS(2026-05-26 上传)**,本地不再保留: -| 文件 | 用途 | 大小 | -|------|------|------| -| `audio/click.mp3` | 默认 click(标准节拍器音) | 3.4 KB | -| `audio/click-soft.mp3` | 柔和音色 | 4.2 KB | -| `audio/click-wood.mp3` | 木鱼/原木质感(推荐用于重音 accent) | 4.6 KB | +| 用途 | 文件 | 大小 | 引擎 | +|---|---|---|---| +| 单拍 click(基础) | `click.mp3` | 3.4 KB | InnerAudio | +| 单拍 click(木鱼,推荐) | `click-wood.mp3` | 4.6 KB | InnerAudio (custom 模式) | +| 循环音轨 慢走 80 BPM | `loop_80bpm_2.mp3` | 71 KB | BgAudio (preset) | +| 循环音轨 健走 110 BPM | `loop_110bpm_2.mp3` | 65 KB | BgAudio (preset) | +| 循环音轨 快走 130 BPM | `loop_130bpm_2.mp3` | 66 KB | BgAudio (preset) | -如果想换更好听的,可以去: -- [freesound.org](https://freesound.org) 搜 "click" / "tick"(注意 CC 协议) -- [pixabay.com/sound-effects](https://pixabay.com/sound-effects/) 搜 "metronome"(免费可商用) +> 微信 `BackgroundAudioManager.src` 只接受 https URL,不支持包内资源,所以必须走 CDN。 +> COS 域名已加入小程序后台 `downloadFile 合法域名`,跑步视频也走同一域名。 -替换时保持文件名不变即可,无需改代码。 +更换音色:去 [pixabay.com/sound-effects](https://pixabay.com/sound-effects/) 找新素材 → 上传到 COS → 在 `useMetronomeBg.ts` / `useMetronome.ts` 里替换 URL 即可。 ### 3. 背景音乐 @@ -92,9 +83,11 @@ node scripts/generate-voice.mjs --force ## 在代码里被引用的位置 -- `training/hooks/useMetronome.ts` → `audio/click.mp3` -- `training/hooks/useVoiceCoach.ts` → `voice/numbers/*.mp3`、`voice/prompts/*.mp3` -- `training/hooks/useTrainingBgm.ts` → `bgm/*.mp3` +- `training/hooks/useMetronome.ts` → `DEFAULT_CLICK_SRC` (CDN: click.mp3) +- `training/hooks/useMetronomeBg.ts` → `LOOP_PRESETS[*].src` (CDN: loop_*.mp3) +- `training/pages/metronome.vue` → `CLICK_WOOD_URL` (CDN: click-wood.mp3, custom 模式) +- `training/hooks/useVoiceCoach.ts` → `voice/numbers/*.mp3`、`voice/prompts/*.mp3` (规划中) +- `training/hooks/useTrainingBgm.ts` → `bgm/*.mp3` (规划中) 如需修改路径,修改对应 hook 文件里的常量即可。 diff --git a/TUICallKit-Vue3/training/static/audio/click-wood.mp3 b/TUICallKit-Vue3/training/static/audio/click-wood.mp3 deleted file mode 100644 index fb3fff3471909181f236361311c4a5d037c34562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3493 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 J;s3PTKLGeUlSBXj diff --git a/TUICallKit-Vue3/training/static/audio/click.mp3 b/TUICallKit-Vue3/training/static/audio/click.mp3 deleted file mode 100644 index faa1693add882f173b72591dae952041f108fbde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 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

lD@RJrVXoWHMhw{Zg z{A_$dwtgI=lHayvBx~Gqf|k=4*8Hg3DGw>z+hL!e?;4iY7Jbs z2;cT!=0cub6_T+^HsBPcdl46bf(@bs$Anh;BY#|-lL^F#QLRU^)>hPwvd9v%vopZE z#i*#S&AF}y+xN-Z5M+v=6*h<(-|(NyC1rn;&oy$k|2N_7RZ7O2`tZMaW3Q3>%NqJG zw*3XOza41*`9EJH_ZPR#fByRa@!O4XzboM1SGk*K^>>;0_dcsPC8vM)zWjZk)ti`+ z-(}*am-~I?{+(|mH@)2N-j|zR?st_#xmx1pI-=A;JPesKrqxyB%YCS@R3kwgN+GRd zrLI=&gd-??7yc4tO~R0E?U`DntSIM#imUkuBM=zbW0xt};Bsh<)g=Hg0m(w$EZ@>t zYskDb50^{+u(8oaZe~wh1X|aGFJTOr_oG=py*GfEFm}w*SQ&|TTZ%&K1}vGegF^WO zg5i4TMG9dHz_z(`y)04)PH4E*o}<00hP$toKv@Fm8kxd6EZDwdzXZTs%gRCMybl25dP z*Y9#j1ONamAic`Ybke_cUveG5I)aLL@&;`_B?X<5ia1cZd|K`Gg~^3)y0$2X)%|S7 zbDo!-yr> zNAs&LPw#0{VUnfmcBjPtNp$zz*{qe3LFdaiMI#0+#us@=tE?Yh4>B5`U`0tGKMy9^ zwf$3@Z%BzJ!Bt2O@T%hAo1-(gd8e6^g9Ri~6gii?gaVu;28e<+Q6O*@IshDs&clR~ zgANuzt4C*$Cyb;DhVP_n;6S^$D4EeX0ui7<1dx6mEa)Izlj|$Z2sJkYE+1ojN~K)4 zysa2bcAFjRlSZC5O;4A!0=rIlY%g^W0^b6M1%*+GFL)`2CyO)Ae0f$_^%}W)0Nu|N z-In%Pl4#-G#aB?kE1pD_EoPiWY5qY{YkPB39tCgL^Ee4>bsHJ%(U6yP) z#mq;U7VpAYTU9Mbt<{$L&M~8w*?1*Ki?E9(_Z&QIX#`0a59TbNzpF5hRe;K+XzyH^xQ?0u`kP;0oyqLURZ8)wBq}HRB&T@wh?i z01#XW*3MdSm6!b>5-##F;rg} z>SKLThHu7OcA=ST5cgHB2knR_+Uhu#QzLUU7AHeWN-T1J*Anp2Jd4RZ4m@%hg5*10VU6iG9O`rB`@%wp=4;6hNcf zc6VZ*JLqYrjofOX*Ep49i40-e%SU7@iQ1eAtBP&5Y?7C@-&Sm%wMlERQ&0~)1m-xD z#Dh^$19iahl-O95oT#x8?=YzX^fXs|07%lPl{rzBB*qlY5<_?hx z5$7AC3fQv0B38VkM=Khaqb1@@Pfks?@iXy~^ORIM*5YO?0ib2;ju`2@!9q6>){XWh37vYPG8m`>Zih#UXh|)yoKL%kgZ91W)p48 zQTn{cws$5Mmn^=hbdG*lLk?D>T@7zoK8~Z~0i1)EtP$l`H|<#KF56gYL0H%|a`=Gh zy;n+j`%EJ&jO-f?ksLH$KDb;}#XB`d5U;}B1sC0tT-9>!kOk? z4~RsP*jD-H1B;UZ+lAMIGxri{0@LT54vM|wj#nktYL|Ueb#N~?UbLE=-52^I71Quj z>B#@b_h;2R@}_pHt8tU3Tc`fMGU>HdYe=j>C{|rGcXM5u33wjCj^i2y(^>9I5i^&f zP404OpyzS!5q(aho1?-)jtBF(60C)v3{@>bLGiArj27U0e`y-OG_6 zh(FKDTqQ|U=IOL`>cw{LyM+;pS29ex;*O3vXG$SzSo>h8l&CS?`@zf|r+W4!AvZ^P z!Gz0;Xm-wpYMI`gzO3a^MB2x`JMLkhvAlyDk`gcKK88viZ~hE9-4=Y&Rwg{n!K|m1D%g15b~_!(R2k*$wOJaqD6Xy)W8k)|6C?QJ&Y?d)-@x%Ng|{ zQUJ+Aq%=NdeW2(ooBjd3-1I@lJrAWk`R8keyZh8bw6=z#hT{aKCP#}ZOt+tF8HjyO zeu-w&z#h#l!5^pTZLGpz)>n+<~~3J)u<{O%2aKC zT*0jaHr(K?q#YfQ`9h{_ME+HVN&rH-5%NjjvwQO%$vd_t#o&#Xnwu7yPtpJ-9xE7W zI*J#wg;>*Bk(O0yu8-;Z_UilEerQCc9XGXdyubxV$%VSjoRAW$1Ehf!rNR~jlW z4J)Tkru;gW3etpkDVwkllA@{Pn3-4$4KFx)S=f_3cfm%DJC6ukl|fv6N-uL5Wq~Ao z$hy1)ZG?aLRCny~bMl_JEN}Fi`~E>b z-}IH<7%GeCJH;K(r3n;O``oB}eoZ1{DP0qt&esX_0}Vmgg2XCjRpb2+l1!4k#>)=z z6Zk0rSzi74Wo6}5{1G)J$?4zXi*v^d)NIX+MD+amYe;f4D@#pJg*lN__>*VL2`>8PIqut+ z**bazYs0Wxt9%;;5Xz8bu znECgUZTS$tW&y&yszi;AGE?om&F`id71#;R>fH2@ouAuIpI>xxDy!RMm+tR> zcoRxLY`GG9q{1_>_TA4fANfc6pucRF+fm}GZAXgvJn>1CB_3|R{k{H9%1Tc{VzO|y z_a)`M+1YPcF!O#dbK2V0s}Px0#W$Ue9N-J2#L1*i+%pObqGvS4NuwX;qDOydC*Xcd zY)PghL+K91qTb+AbnPO9JR?1k|D1$0iHaRq7s0iY6WkmyMU~4l#*M;tewyQjD-Z^r z26QnH96y~`K}BB|z-12vD*{3HcjQLjK}qp}EmlB!kiwbkWiZVE02*}PyK~ zxF%JA82TroJrQE`$#6ELw6k+WiPT0|vqXpxF{$ zQX9T50%u2ASVQiYMoSr5{z${%0>D9#+_*vSR?9O)Oy3wcp?U1JljvKkzdv$RIuMg< zNqsZu8aX6_`2fvxz5;-g-2XO65)NPs9t#xkz?#wvDUR*Ay+cTeiyebX65qG|P?w1< zSrQI=1E9un1Av&{mB4NKFf-YF>(iD+A6RDn z0BDAd)26!#6&F?3RR%bEYyLSOXSCuDBLma|pL&4X{K%qCl-YC4FuhSAEsk8;PY_-r zQAoI&&OV@9IJ=}Agq~8lrTk@$+K)AVCXMWsjapI#@-i9aKBeYlubNwbmWVrP{WlhG zKa-12ldm)0Z(Qgv$~!)Lb}Cr+IZq-#@_w`{tw;XcYOkqxHn6z6mZb-AovoXJJ(S-n8M0i?DA(}DpfM1FvWt{!3{7^dJBN6@touz@ zAN93x&#v4yK}IdF03<;Iy9%#r0HDw-=bZ9~AEfATP0si*N=oUJ4B8L3g8~9#6Cw(^ z1&CUYNcJdc^Ho~YDw?Rr$s{+v@kNO9mDN>joGn{c(Iw9hc=A6vvPhDcYaMG!w+_4a z*!kX4HLCW^+Qq@dPv+Bdqh0?bJMc$wpGLzuk9qOXlZ8qb@vO#+Ipju6$7Q8niu

3xO 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 GI{ZJ;992sI diff --git a/TUICallKit-Vue3/training/static/audio/loop_130bpm_2.mp3 b/TUICallKit-Vue3/training/static/audio/loop_130bpm_2.mp3 deleted file mode 100644 index 26b0d9a65ae23379d86ad0d532145833600f2044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67440 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 abGe_>?teSV{d=Q_|8-yexz_xDsP!L+W&NH2 diff --git a/TUICallKit-Vue3/training/static/audio/loop_80bpm_2.mp3 b/TUICallKit-Vue3/training/static/audio/loop_80bpm_2.mp3 deleted file mode 100644 index bd2e513ae18264cf5028072ae67437e0652179ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72769 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 #_p|kzegk7unrYP&RxeOPmj)+3q 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 [ - 'zip','rar','txt','pdf','doc','docx','xls','xlsx','ppt','pptx','csv','txt','ftr','7z','gz' + 'zip','rar','txt','pdf','doc','docx','xls','xlsx','ppt','pptx','csv','txt','ftr','7z','gz', + 'mp3', 'wav', 'm4a', 'aac', 'amr', 'wma', // 音频 ], // 登录设置