浏览代码

feat: 监听socket状态异常,关闭延迟检测

TIANYONG 1 年之前
父节点
当前提交
f3b5ab342c

+ 2 - 3
src/page-instrument/simple-detail/index.module.less

@@ -14,13 +14,12 @@
     width: 100vw;
     height: auto;
     overflow: hidden;
-    overflow-y: auto;
     --header-height: 62px;
     // background: var(--container-background);
-    background: transparent;
+    background: lightcoral;
 
     .container {
-        margin: 0 10px;
+        margin: 0;
         border-radius: 10px;
     }
     :global{

+ 10 - 2
src/page-instrument/simple-detail/index.tsx

@@ -56,7 +56,7 @@ export default defineComponent({
 		});
 		/** 渲染完成 */
 		const handleRendered = async (osmd: any) => {
-			console.log('渲染完成')
+			const svgHeight = document.getElementById('scrollContainer')?.getBoundingClientRect().height;
 			state.osmd = osmd;
 			// 没有设置速度使用读取的速度
 			if (state.originSpeed === 0) {
@@ -78,7 +78,15 @@ export default defineComponent({
 			//destroySmoothAnimation();
 			smoothAnimationState.isShow.value = false;
 			state.playState = 'play';
-			setStep();
+			console.log('渲染完成',svgHeight)
+			window.parent.postMessage(
+				{
+				  api: "api_musicPage",
+				  height: svgHeight
+				},
+				"*"
+			);			
+			// setStep();
 		};
 		/**
 		 * 播放一直触发的事件

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

@@ -33,6 +33,7 @@ import {
 	api_cloudSetCurrentTime,
 	api_cloudChangeSpeed,
 	api_startDelayCheck,
+	api_closeDelayCheck,
 } from "/src/helpers/communication";
 import state, {
 	IPlayState,
@@ -731,6 +732,15 @@ export default defineComponent({
 				}
 			}
 		);
+		watch(
+			() => evaluatingData.socketErrorPop,
+			() => {
+				if (evaluatingData.socketErrorPop && state.setting.soundEffect) {
+					// 监听到socket状态异常,需要关闭延迟检测
+					api_closeDelayCheck({});
+				}	
+			}
+		);
 		onMounted(() => {
 			resetPlaybackToStart();
 			hanlde_record();

+ 16 - 7
src/view/music-score/index.tsx

@@ -106,18 +106,27 @@ export default defineComponent({
 			// osmd.EngravingRules.PageRightMargin = state.isSingleLine ? (window.innerWidth+200)/10 : 2;
 			// osmd.EngravingRules.FixedMeasureWidth = state.isSingleLine ? true : false; // 是否固定小节的宽度(小节同一宽度渲染)
 			//osmd.EngravingRules.PageTopMargin = state.platform === IPlatform.PC ? 0 : 1; // 老师端顶部间距
-			osmd.EngravingRules.PageTopMargin = 2; // 老师端顶部间距
-			osmd.EngravingRules.PageTopMarginNarrow = 3;
-			osmd.EngravingRules.PageLeftMargin = 2;
-			osmd.EngravingRules.PageRightMargin = 2;
-			osmd.EngravingRules.BreathMarkDistance = 0.1; // 呼吸标记距离音符的位置,百分比
 			// 老师端上课页面,左右两边有功能按钮,所以左右边距需要加大
 			// if (state.isAttendClass && state.platform === IPlatform.PC) {
 			// 	osmd.EngravingRules.PageLeftMargin = 7;
 			// 	osmd.EngravingRules.PageRightMargin = 7;
 			// }
 			//osmd.EngravingRules.PageBottomMargin = state.platform === IPlatform.PC ? 1 : 2;
-			osmd.EngravingRules.PageBottomMargin = state.isSingleLine ? 2 : 18;
+			if (state.isSimplePage) {
+				osmd.EngravingRules.PageTopMargin = 0;
+				osmd.EngravingRules.PageTopMarginNarrow = 0;
+				osmd.EngravingRules.PageLeftMargin = 0;
+				osmd.EngravingRules.PageRightMargin = 0;
+				osmd.EngravingRules.BreathMarkDistance = 0.1; 
+				osmd.EngravingRules.PageBottomMargin = 0;
+			} else {
+				osmd.EngravingRules.PageTopMargin = 2; // 老师端顶部间距
+				osmd.EngravingRules.PageTopMarginNarrow = 3;
+				osmd.EngravingRules.PageLeftMargin = 2;
+				osmd.EngravingRules.PageRightMargin = 2;
+				osmd.EngravingRules.BreathMarkDistance = 0.1; // 呼吸标记距离音符的位置,百分比
+				osmd.EngravingRules.PageBottomMargin = state.isSingleLine ? 2 : 18;
+			}
 			osmd.EngravingRules.DYMusicScoreType =
 				state.musicRenderType === EnumMusicRenderType.staff ? "staff" : "jianpu";
 			// 如果为固定调,需要加入全局
@@ -129,7 +138,7 @@ export default defineComponent({
 			osmd.EngravingRules.DYMusicScoreId = state.examSongId || ''
 			osmd.EngravingRules.DYCustomRepeatCount = state.maxLyricNum || 0;
 			await osmd.load(musicData.score);
-			osmd.zoom = state.zoom;
+			osmd.zoom = state.isSimplePage ? 0.6 : state.zoom;
 			osmd.render();
 			console.log("🚀 ~ osmd:", osmd)
 			emit("rendered", osmd);