ソースを参照

feat: bug修复

TIANYONG 1 年間 前
コミット
a2dec2f21a

+ 2 - 1
src/page-instrument/evaluat-model/index.tsx

@@ -10,7 +10,7 @@ import { getNoteByMeasuresSlursStart } from "/src/helpers/formateMusic";
 import { Icon, Popup, showToast } from "vant";
 import EvaluatResult from "./evaluat-result";
 import EvaluatAudio from "./evaluat-audio";
-import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone } from "/src/helpers/communication";
+import { api_getDeviceDelay, api_openAdjustRecording, api_proxyServiceMessage, api_videoUpdate, getEarphone, api_back } from "/src/helpers/communication";
 import EvaluatShare from "./evaluat-share";
 import { Vue3Lottie } from "vue3-lottie";
 import startData from "./data/start.json";
@@ -49,6 +49,7 @@ export default defineComponent({
     const handleDelayBack = () => {
       if (query.workRecord) {
         evaluatingData.soundEffectMode = false;
+        api_back();
       } else {
         evaluatingData.soundEffectMode = false;
         handleRessetState();

+ 3 - 1
src/page-instrument/header-top/settting/index.module.less

@@ -159,7 +159,9 @@
         border-radius: 20px;
     }
 }
-
+.sliderVolume {
+    width: 55%;
+}
 .btnsbar {
     position: absolute;
     bottom: 12px;

+ 3 - 3
src/page-instrument/header-top/settting/index.tsx

@@ -95,7 +95,7 @@ export default defineComponent({
 				if (currentFrequency + 1 > maxFrequency) return showToast({ message: `最高标准音高${maxFrequency}HZ` })
 				currentFrequency = currentFrequency + 1
 			}
-			state.setting.frequency = currentFrequency
+			state.setting.frequency = currentFrequency >= 0 ? currentFrequency : 0
 		}
 		
 		return () => (
@@ -121,7 +121,7 @@ export default defineComponent({
 								{{
 									extra: () => (
 										<Slider
-											class={styles.slider}
+											class={[styles.slider, styles.sliderVolume]}
 											min={0}
 											max={100}
 											v-model:modelValue={state.setting.beatVolume}
@@ -258,7 +258,7 @@ export default defineComponent({
 								}}
 							</Cell>
 
-							{/* <Field class={styles.reactionTime} label="反应时间(毫秒)" type="digit" v-model:modelValue={state.setting.reactionTimeMs} /> */}
+							<Field class={styles.reactionTime} label="反应时间(毫秒)" type="digit" v-model:modelValue={state.setting.reactionTimeMs} />
 						</Tab>
 					</Tabs>
 				</div>

+ 5 - 1
src/state.ts

@@ -231,7 +231,7 @@ const state = reactive({
     /** 显示光标 */
     displayCursor: true,
     /** 频率 */
-    frequency: 442,
+    frequency: 440,
     /** 评测难度 */
     evaluationDifficulty: "ADVANCED" as IDifficulty,
     /** 保存到相册 */
@@ -868,6 +868,10 @@ const setState = (data: any, index: number) => {
   // 评测基准频率
   state.baseFrequency = data.evaluationFrequency ? data.evaluationFrequency.split(",")[0] : 440
   state.baseFrequency = Number(state.baseFrequency)
+  // 用户上次的频率和基准频率误差超过10,则重置
+  if (Math.abs(state.setting.frequency - state.baseFrequency) > 10) {
+    state.setting.frequency = state.baseFrequency >= 0 ? state.baseFrequency : state.setting.frequency
+  }
 };
 
 // 多分轨合并显示标示

+ 10 - 7
src/view/follow-practice/index.tsx

@@ -67,13 +67,15 @@ const onClear = () => {
 
 /** 开始跟练 */
 export const handleFollowStart = async () => {
-	// // 跟练模式开始前,增加播放系统节拍器
-	// const tickend = await handleStartTick();
-	// // console.log("🚀 ~ tickend:", tickend)
-	// // 节拍器返回false, 取消播放
-	// if (!tickend) {
-	// 	return false;
-	// }
+	// 跟练模式开始前,增加播放系统节拍器
+	followData.start = true;
+	const tickend = await handleStartTick();
+	// console.log("🚀 ~ tickend:", tickend)
+	// 节拍器返回false, 取消播放
+	if (!tickend) {
+		followData.start = false;
+		return false;
+	}
 	onClear();
 	followData.start = true;
 	followData.index = 0;
@@ -85,6 +87,7 @@ export const handleFollowStart = async () => {
 };
 /** 结束跟练 */
 export const handleFollowEnd = () => {
+	onClear();
 	followData.start = false;
 	openToggleRecord(false);
 	followData.index = 0;

+ 2 - 1
src/view/selection/index.tsx

@@ -107,7 +107,7 @@ const calcNoteData = () => {
 						}
 					} catch (error) {}
 
-					// console.log("🚀 ~ staveEle:", staveEle)
+					// console.log("🚀 ~ staveEle:", staveBbox)
 					noteItem.staveBox = {
 						left: staveBbox.x - parentLeft + "px",
 						// top: ((item.stave.y || 0) - 5) * state.zoom + "px",
@@ -129,6 +129,7 @@ const calcNoteData = () => {
 							left: preItem.staveBox.left,
 							top: preItem.staveBox.top,
 							width: preItem.staveBox.width,
+							height: preItem.staveBox.height,
 						};
 						selectData.staves.push(noteItem);
 						MeasureNumberXMLList.push(item.MeasureNumberXML);