Files
zyt/TongjiUniApp/dist/build/mp-weixin/training/pages/metronome.js
2026-08-11 17:41:36 +08:00

2 lines
2.5 KiB
JavaScript

"use strict";const e=require("../../common/vendor.js");Math||a();const a=()=>"./components/walker-canvas.js",o=e.defineComponent({__name:"metronome",setup(a){const o=[{id:"slow",bpm:110,label:"慢走",desc:"热身 · 恢复"},{id:"normal",bpm:130,label:"健走",desc:"日常 · 通勤"},{id:"brisk",bpm:150,label:"快走",desc:"提速 · 燃脂"}],n=e.ref(!1),c=e.ref("normal"),l=e.ref("crisp"),t=e.ref(null),u={crisp:{normal:"https://gz-1349751149.cos.ap-guangzhou.myqcloud.com/uploads/file/20260527/202605271539371ebe13672.mp3",accent:"https://gz-1349751149.cos.ap-guangzhou.myqcloud.com/uploads/file/20260527/202605271539376ff628472.mp3"},wood:{normal:"https://gz-1349751149.cos.ap-guangzhou.myqcloud.com/uploads/file/20260526/202605261051282a0a94508.mp3",accent:"https://gz-1349751149.cos.ap-guangzhou.myqcloud.com/uploads/file/20260526/202605261051282a0a94508.mp3"}},p=e.useMetronome({initialBpm:130,accentEvery:2,clickSrc:u.crisp.normal,accentSrc:u.crisp.accent,poolSize:4,onBeat:(e,a)=>{t.value&&t.value.triggerBeat&&t.value.triggerBeat()}}),s=e.computed(()=>p.isPlaying.value),r=e.computed(()=>p.bpm.value),d=e.computed(()=>p.accentEvery.value),i=e.computed(()=>6e4/p.bpm.value),m=()=>{p.isPlaying.value?(p.stop(),e.index.setKeepScreenOn({keepScreenOn:!1})):(p.start(),e.index.setKeepScreenOn({keepScreenOn:!0}))},v=()=>{if(n.value=!n.value,n.value)p.preload();else{const e=o.find(e=>e.bpm===p.bpm.value);c.value=e?e.id:null}},f=e=>{p.setBpm(p.bpm.value+e),c.value=null},g=e=>{l.value=e;const a=u[e];p.updateAudioSrc(a.normal,a.accent)},b=e.computed(()=>({"--beat-duration":`${i.value}ms`}));function S(){p.stop(),e.index.setKeepScreenOn({keepScreenOn:!1})}return e.onShow(()=>{p.preload()}),e.onHide(S),e.onUnload(S),e.onUnmounted(S),(a,u)=>e.e({a:e.sr(t,"a9d4f6cc-0",{k:"walkerCanvasRef"}),b:e.o(m),c:e.p({bpm:r.value,"is-playing":s.value}),d:"crisp"===l.value?1:"",e:e.o(e=>g("crisp")),f:"wood"===l.value?1:"",g:e.o(e=>g("wood")),h:e.f(o,(a,n,l)=>({a:e.t(a.label),b:e.t(a.bpm),c:e.t(a.desc),d:a.id,e:c.value===a.id?1:"",f:e.o(n=>(a=>{const n=o.find(e=>e.id===a);n&&(c.value=a,p.setBpm(n.bpm),p.isPlaying.value||(p.start(),e.index.setKeepScreenOn({keepScreenOn:!0})))})(a.id),a.id)})),i:e.t(n.value?"✕ 收起自定义":"⚙ 自定义节奏"),j:e.o(v),k:n.value},n.value?{l:e.o(e=>f(-5)),m:e.o(e=>f(-1)),n:e.t(r.value),o:e.o(e=>f(1)),p:e.o(e=>f(5)),q:e.f([2,3,4],(a,o,n)=>({a:e.t(a),b:a,c:d.value===a?1:"",d:e.o(e=>(e=>{p.setAccentEvery(e)})(a),a)}))}:{},{r:e.s(b.value)})}}),n=e._export_sfc(o,[["__scopeId","data-v-a9d4f6cc"]]);wx.createPage(n);