瀏覽代碼

feat: 跟练模式,播放系统节拍器

TIANYONG 1 年之前
父節點
當前提交
7f714bcce2
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 2 0
      src/page-instrument/header-top/index.tsx
  2. 9 1
      src/view/follow-practice/index.tsx

+ 2 - 0
src/page-instrument/header-top/index.tsx

@@ -35,7 +35,9 @@ export const headTopData = reactive({
   settingMode: false,
   /** 切换模式 */
   handleChangeModeType(value: "practise" | "follow" | "evaluating") {
+    // 后台设置为不能评测
     if (value === 'evaluating' && !state.enableEvaluation) return
+    // 打击乐&节奏练习不支持跟练模式
     if (value === 'follow' && state.isPercussion) return
     // 跟练模式,光标只有音符模式,无节拍模式
     if (value === 'follow' && metronomeData.cursorMode === 2) {

+ 9 - 1
src/view/follow-practice/index.tsx

@@ -4,6 +4,7 @@ import { IPostMessage } from "/src/utils/native-message";
 import { api_cloudFollowTime, api_cloudToggleFollow } from "/src/helpers/communication";
 import { storeData } from "/src/store";
 import { audioRecorder } from "./audioRecorder";
+import { handleStartTick } from "/src/view/tick";
 
 export const followData = reactive({
 	list: [] as any, // 频率列表
@@ -65,7 +66,14 @@ const onClear = () => {
 };
 
 /** 开始跟练 */
-export const handleFollowStart = () => {
+export const handleFollowStart = async () => {
+	// 跟练模式开始前,增加播放系统节拍器
+	const tickend = await handleStartTick();
+	// console.log("🚀 ~ tickend:", tickend)
+	// 节拍器返回false, 取消播放
+	if (!tickend) {
+		return false;
+	}
 	onClear();
 	followData.start = true;
 	followData.index = 0;