|
@@ -6,11 +6,14 @@ import { headImg } from "../image";
|
|
|
import state, { handleSetSpeed, resetBaseRate } from "../../../state";
|
|
|
import { metronomeData } from "../../../helpers/metronome";
|
|
|
import { getQuery } from "/src/utils/queryString";
|
|
|
+import { api_createMusicPlayer, api_updateMusicPlayer } from "/src/helpers/communication";
|
|
|
+import { storeData } from "/src/store";
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: "speed",
|
|
|
setup() {
|
|
|
const speed = ref(state.speed);
|
|
|
+ const switchLoading = ref(false);
|
|
|
const query: any = getQuery();
|
|
|
const minusSpeed = () => {
|
|
|
let canSpeed = Math.max(speed.value - 1, 45);
|
|
@@ -50,6 +53,30 @@ export default defineComponent({
|
|
|
metronomeData.disable = !val
|
|
|
}
|
|
|
})
|
|
|
+ const toggleSwitch = async (res: any) => {
|
|
|
+ switchLoading.value = true;
|
|
|
+ try {
|
|
|
+ // 模拟异步操作,例如 API 调用
|
|
|
+ console.log(123567,res)
|
|
|
+ if (storeData.isApp) {
|
|
|
+ const targetSrc = res ? state.beatSong.accompany || state.beatSong.music : state.accompany || state.music;
|
|
|
+ api_updateMusicPlayer({
|
|
|
+ musicSrc: targetSrc || state.accompany || state.music, // 曲谱音频url,有可能含节拍器的音频不存在
|
|
|
+ tuneSrc: "https://oss.dayaedu.com/MECMP/1722593665681.mp3", //效音音频url
|
|
|
+ checkFrequence: 496,
|
|
|
+ })
|
|
|
+ metronomeDisable.value = res;
|
|
|
+ switchLoading.value = false;
|
|
|
+ } else {
|
|
|
+ metronomeDisable.value = res;
|
|
|
+ switchLoading.value = false;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error)
|
|
|
+ } finally {
|
|
|
+ //switchLoading.value = false;
|
|
|
+ }
|
|
|
+ };
|
|
|
return () => (
|
|
|
<div class={[styles.speedContainer, styles[state.modeType]]}>
|
|
|
<div class={styles.head}>
|
|
@@ -84,7 +111,12 @@ export default defineComponent({
|
|
|
</div>
|
|
|
<div class={styles.metronome}>
|
|
|
<div class={styles.tit}>节拍器</div>
|
|
|
- <Switch v-model={metronomeDisable.value}></Switch>
|
|
|
+ <Switch
|
|
|
+ class={switchLoading.value ? styles.switchLoading : ''}
|
|
|
+ v-model:modelValue={metronomeDisable.value}
|
|
|
+ loading={switchLoading.value}
|
|
|
+ onChange={toggleSwitch}
|
|
|
+ ></Switch>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|