浏览代码

Merge branch 'feature-patch' into gym-test

TIANYONG 1 周之前
父节点
当前提交
ad55e1ec14

+ 5 - 2
src/helpers/communication.ts

@@ -560,6 +560,9 @@ export const api_retryEvaluating = (callback: any) => {
 }
 
 /** 通知app上传评测音频 */
-export const api_recordAudioUpload = (): Promise<IPostMessage | undefined> => {
-	return promisefiyPostMessage({ api: "recordAudioUpload" });
+export const api_recordAudioUpload = (content: any) => {
+	postMessage({
+		api: "recordAudioUpload",
+		content,
+	});
 };

+ 1 - 0
src/page-instrument/component/the-music-list/list.tsx

@@ -83,6 +83,7 @@ export default defineComponent({
       if (item.id === state.examSongId) return;
       // 暂停播放
       togglePlay("paused");
+      state.evaluatAudioInitDone = false
       postMessage({
         api: "cloudLoading",
         content: {

+ 7 - 0
src/page-instrument/evaluat-model/evaluat-result/index.tsx

@@ -23,6 +23,7 @@ import { api_musicPracticeRecordSave } from "../../api";
 import { getAudioDuration } from "/src/view/audio-list";
 import { debounce } from "/src/utils";
 import { EvaluatingResultDriver } from "../../custom-plugins/guide-driver";
+import { api_recordAudioUpload } from "/src/helpers/communication";
 
 export default defineComponent({
   name: "evaluatResult",
@@ -76,6 +77,12 @@ export default defineComponent({
       const res = await api_musicPracticeRecordSave(body);
       if (res?.code === 200) {
         evaluatingData.resultData.recordId = res.data;
+        // 如果评测结果没有返回音频,需要调用api通知APP端上传音频
+        if (!evaluatingData.resultData.url && evaluatingData.resultData.recordId) {
+          api_recordAudioUpload({
+            recordId: evaluatingData.resultData.recordId
+          })
+        }
       }
       evaluatingData.needReplayEvaluat = evaluatingData.oneselfCancleEvaluating ? true : false;
       data.saveLoading = false;

+ 12 - 1
src/state.ts

@@ -26,6 +26,7 @@ import { HANDLE_WORK_ADD } from "/src/page-instrument/custom-plugins/work-index"
 import { speedBeatTo, unitImgs } from "/src/helpers/beatConfig"
 import IndexedDBService from "/src/utils/indexedDB";
 import { musicalInstrumentCodeInfo, instruments, fixInstrumentNameCode } from "/src/constant/instruments";
+import evaluatModel from "./page-instrument/evaluat-model";
 
 const query: any = getQuery();
 
@@ -389,6 +390,10 @@ const state = reactive({
   isSingleMutliTrack: false,
   /** 是否是来源于缓存的xml */
   xmlFromStore: false,
+  /** 是否已经初始化评测音频,只有切了声轨后,才需要重新传音频,普通的切谱面(五线谱、简谱;单行谱、多行谱等)不需要重复传 */
+  evaluatAudioInitDone: false,
+  /** 是否使用原生评测服务 */
+  useNativeEvaluation: false,
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -1241,12 +1246,17 @@ export default state;
 
 /** 初始化评测音频 */
 export const evaluatCreateMusicPlayer = () => {
-  return api_createMusicPlayer({
+  if (state.evaluatAudioInitDone) {
+    return;
+  }
+  api_createMusicPlayer({
     musicSrc: state.accompany || state.music, // 曲谱音频url
     // tuneSrc: "https://oss.dayaedu.com/cloud-coach/1686725501654check_music1_(1).mp3", //效音音频url
     tuneSrc: "https://oss.dayaedu.com/MECMP/1722593665681.mp3", //效音音频url
     checkFrequence: 496,
+    useNativeEvaluation: state.useNativeEvaluation // 是否使用原生评测服务
   });
+  state.evaluatAudioInitDone = true
 };
 
 
@@ -1302,6 +1312,7 @@ const getMusicInfo = async (res: any) => {
   state.isScoreRender = res.data?.isScoreRender
   // 是否默认显示总谱
   state.defaultScoreRender = res.data?.defaultScoreRender
+  state.useNativeEvaluation = res.data?.useNativeEvaluation
   // let xmlString = await fetch(res.data.xmlFileUrl).then((response) => response.text());
   let xmlString: string = await queryMusicXml(res.data.bizId + "", res.data.xmlFileUrl);
   xmlString = xmlAddPartName(xmlString);

+ 0 - 4
src/view/evaluating/index.tsx

@@ -335,10 +335,6 @@ const handleScoreResult = async (res?: IPostMessage) => {
     if (header?.commond === "overall") {
       console.log("🚀 ~ 评测返回:", res);
       console.log("评测结束", body);
-      // 如果评测结果没有返回音频,需要调用api通知APP端上传音频
-      if (!body.url) {
-        await api_recordAudioUpload()
-      }
       state.isHideEvaluatReportSaveBtn = false;
       setTimeout(() => {
         // 评测作业,如果不是完整评测,不展示评测弹窗

+ 1 - 1
src/view/plugins/toggleMusicSheet/index.tsx

@@ -91,7 +91,7 @@ export default defineComponent({
         })
       // const blob2 = new Blob([downloadXmlStr.value], { type: "text/html" });
       // console.log(_url,xmlDocRef.value,downloadXmlStr.value)
-      
+      state.evaluatAudioInitDone = false
       await storeXmlData()
       location.href = _url
     }

+ 1 - 1
vite.config.ts

@@ -81,7 +81,7 @@ export default defineConfig({
     // https: true,
     proxy: {
       "^/instrument/.*": {
-        target: "https://test.gym.lexiaoya.cn",
+        target: "https://dev.gym.lexiaoya.cn",
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/instrument/, ""),
       },