Bladeren bron

feat: 右上角速度显示问题修改

TIANYONG 1 jaar geleden
bovenliggende
commit
4e6688867a

+ 4 - 0
src/pages/detail/runtime.ts

@@ -312,6 +312,9 @@ export const changeSpeed = (speed: number, isSave: boolean = true) => {
   }
   state.speed = speed
   state.playIngSpeed = speed
+  // 当前的音符
+  const currentItem: any = detailState.times[state.activeIndex];
+  state.basePlayRate = currentItem?.measureSpeed ? state.speed / currentItem.measureSpeed : 1;
   if (!detailState.activeDetail) return
   state.audiosInstance?.setSpeed(speed / detailState.baseSpeed)
   promisefiyPostMessage({
@@ -1088,6 +1091,7 @@ export const noteClick = (evt: MouseEvent) => {
     Toast('开始播放后才能调整进度')
     return
   }
+  state.speedShow = false;
   let activeNote = getNoteBySlursStart(getActtiveNoteByTimes(evt))
   console.log('点击音符',activeNote)
   if (activeNote) {

+ 21 - 8
src/pages/detail/speed.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, reactive, ref, toRefs } from 'vue'
+import { defineComponent, reactive, ref, toRefs, watch } from 'vue'
 import { Button, Slider } from 'vant'
 import classnames from 'classnames'
 import detailState from '/src/pages/detail/state'
@@ -7,10 +7,12 @@ import styles from './speed.module.less'
 import iconMinus from './icons/icon-minus.svg'
 import iconPlus from './icons/icon-plus.svg'
 import iconresetMinus from './icons/icon-resetMinus.svg'
+import runtime, * as RuntimeUtils from '/src/pages/detail/runtime'
 
 const state = reactive({
   speed: 90,
   showHint: false,
+  maxSpeed: 315,
 })
 
 export default defineComponent({
@@ -58,6 +60,7 @@ export default defineComponent({
 
     const minusSpeed = () => {
       state.speed = Math.max(state.speed - 1, 45)
+      state.speed = Math.min(state.speed, 270)
       props.changed(state.speed)
     }
 
@@ -65,7 +68,14 @@ export default defineComponent({
       state.speed = Math.min(state.speed + 1, 270)
       props.changed(state.speed)
     }
-
+    watch(
+      () => runtime.playIngSpeed,
+      (val) => {
+        if (val) {
+          state.maxSpeed = runtime.playIngSpeed > 270 ? runtime.playIngSpeed + 45 : 315;
+        }
+      }
+    )
     return () => (
       <div class={styles['speed-change']}>
         <div class={styles.speed}>
@@ -77,21 +87,24 @@ export default defineComponent({
               type="primary"
               size="mini"
               round
-              disabled={state.speed == 270}
+              disabled={state.speed >= 270}
               onClick={plusSpeed}
             />
             <Slider
               class={styles.slider}
-              max={270}
+              max={runtime.playIngSpeed > 270 ? runtime.playIngSpeed : 270}
               min={45}
               barHeight="3px"
               buttonSize="18px"
-              modelValue={315 - state.speed}
-              onUpdate:modelValue={(speed: number) => updateSpeed(315 - speed)}
+              modelValue={state.maxSpeed - state.speed}
+              onUpdate:modelValue={(speed: number) => {
+                // console.log('改变速度',speed,runtime.playIngSpeed,runtime.speed)
+                //updateSpeed(315 - speed)
+              }}
               step="1"
               vertical
               activeColor="#ebedf0"
-              onChange={(speed: number) => changeSpeed(315 - speed)}
+              onChange={(speed: number) => changeSpeed(state.maxSpeed - speed)}
               onDragStart={onDragStart}
               onDragEnd={onDragEnd}
               vSlots={{
@@ -112,7 +125,7 @@ export default defineComponent({
               type="primary"
               size="mini"
               round
-              disabled={state.speed == 45}
+              disabled={state.speed <= 45}
               onClick={minusSpeed}
             />
             <Button

+ 1 - 1
src/subpages/colexiu/buttons/index.tsx

@@ -449,7 +449,7 @@ export default defineComponent({
                   changed={RuntimeUtils.changeSpeed}
                   mode={runtime.mode}
                   changeMode={RuntimeUtils.changeMode}
-                  lib={{ speed: runtime.speed }}
+                  lib={{ speed: runtime.playIngSpeed || runtime.speed }}
                   class={styles.speed}
                 />
               </Popover>

+ 1 - 1
src/subpages/colexiu/popups/setting/practise.tsx

@@ -24,7 +24,7 @@ export default defineComponent({
       return (
         <div>
           <div class={styles.groupBox}>
-            <Cell center border={false} title="循环播放2">
+            <Cell center border={false} title="循环播放">
               <Switch v-model={SettingState.sett.loop} {...switchProps}>
                 off
               </Switch>