| 
					
				 | 
			
			
				@@ -15,10 +15,15 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	api_openWebView, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	api_startRecording, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	api_stopRecording, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	api_recordStartTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	api_remove_recordStartTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from "/src/helpers/communication"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import state, { clearSelection, handleStopPlay, resetPlaybackToStart, togglePlay } from "/src/state"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { IPostMessage } from "/src/utils/native-message"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { usePageVisibility } from "@vant/use"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { browser } from "/src/utils"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const browserInfo = browser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const evaluatingData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/** 评测数据 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	contentData: {} as any, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,26 +64,20 @@ export const handleStartEvaluat = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 开始播放发送延迟时间 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export const sendEvaluatingOffsetTime = (currentTime: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export const sendEvaluatingOffsetTime = async (currentTime: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	const nowTime = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// console.log("第一次播放时间", evaluatingData.backtime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// console.log("已播放时长: ", currentTime,  currentTime * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// console.log("不减掉已播放时间: ", nowTime - evaluatingData.backtime , currentTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	const delayTime = (nowTime - evaluatingData.backtime - currentTime * 1000) / 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	console.log("真正播放延迟", delayTime / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 蓝牙耳机延迟一点发送消息确保在录音后面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	setTimeout(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		await api_proxyServiceMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			header: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				commond: "audioPlayStart", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				type: "SOUND_COMPARE", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			body: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				offsetTime: delayTime < 0 ? 0 : delayTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		evaluatingData.backtime = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	}, 220); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	const delayTime = nowTime - evaluatingData.backtime - currentTime * 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	console.log("真正播放延迟", delayTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	await api_proxyServiceMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		header: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			commond: "audioPlayStart", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			type: "SOUND_COMPARE", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		body: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			offsetTime: delayTime < 0 ? 0 : delayTime, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	evaluatingData.backtime = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 检测耳机 */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,7 +180,7 @@ export const handleStartBegin = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	evaluatingData.startBegin = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	evaluatingData.evaluatings = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	evaluatingData.resultData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	evaluatingData.backtime = Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	evaluatingData.backtime = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	resetPlaybackToStart(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log("🚀 ~ content:", evaluatingData.contentData, JSON.stringify(evaluatingData.contentData)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -194,6 +193,15 @@ export const handleStartBegin = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 开始录音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	api_startRecording(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 录音开始,开始播放音频 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const recordedPlayMusic = async (res?: IPostMessage) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	let inteveral = res?.content?.inteveral || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (browserInfo.ios) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		inteveral *= 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	evaluatingData.backtime = inteveral || Date.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	const playState = await togglePlay("play"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 取消播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (!playState) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -299,12 +307,14 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			evaluatingData.checkStep = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			evaluatingData.rendered = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			sendResult(handleScoreResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			api_recordStartTime(recordedPlayMusic); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (!state.isSelectMeasureMode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				clearSelection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		onUnmounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			removeResult(handleScoreResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			api_remove_recordStartTime(recordedPlayMusic); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return () => <div></div>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 |