Parcourir la source

fix: bug修复

TIANYONG il y a 2 mois
Parent
commit
95202a4450

+ 4 - 4
src/helpers/formateMusic.ts

@@ -247,14 +247,14 @@ export type CustomInfo = {
 };
 
 /** 从xml中获取自定义信息,并删除多余的字符串 */
-export const getCustomInfo = (xml: string): CustomInfo => {
+export const getCustomInfo = (xml: string, resourceType?: string): CustomInfo => {
 	const data = {
 		showSpeed: true,
 		parsedXML: xml,
 	};
 	//console.time('解析xml 耗时3')
 	// const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
-	const xmlParse = xmlDocRef.value ? xmlDocRef.value : new DOMParser().parseFromString(xml, "text/xml");
+	const xmlParse = xmlDocRef.value && resourceType === 'init' ? xmlDocRef.value : new DOMParser().parseFromString(xml, "text/xml");
 	//console.timeEnd('解析xml 耗时3')
 	const words: any = xmlParse?.getElementsByTagName("words");
 	for (const word of words) {
@@ -656,11 +656,11 @@ export const xmlAddPartName = (xml: string) => {
 /** 格式化曲谱
  * 1.全休止符的小节,没有音符默认加个全休止符
  */
-export const formatXML = (xml: string, xmlUrl?: string): string => {
+export const formatXML = (xml: string, xmlUrl?: string, resourceType?: string): string => {
 	if (!xml) return "";
 	//console.time('解析xml 耗时7')
 	// const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
-	const xmlParse = xmlDocRef.value ? xmlDocRef.value : new DOMParser().parseFromString(xml, "text/xml");
+	const xmlParse = xmlDocRef.value && resourceType === 'init' ? xmlDocRef.value : new DOMParser().parseFromString(xml, "text/xml");
 	//console.timeEnd('解析xml 耗时7')
 	// 声调
 	const fifths = xmlParse.getElementsByTagName("fifths");

+ 1 - 1
src/view/audio-list/index.tsx

@@ -381,7 +381,7 @@ export async function changeCombineAudio (combineIndex: number){
 		return
 	}
 	state.loadingText = "资源加载中,请稍后…";
-	//state.isLoading = true;
+	state.isLoading = true;
 	const musicUrl = audioData.combineMusics[combineIndex]
 	// 有就拿缓存,没有就加载
 	const cacheMusicIndex = audioData.combineMusicEles.findIndex(ele => {

+ 4 - 4
src/view/music-score/index.tsx

@@ -71,7 +71,7 @@ export default defineComponent({
 				state.musicRenderType = musicRenderType;
 			}
 		};
-		const getXML = async () => {
+		const getXML = async (cbType?: string) => {
 			// 当有下载的xml的时候直接使用,否则需要下载
 			if(!downloadXmlStr.value){
 				downloadXmlStr.value = await fetch(state.xmlUrl).then((response) => response.text())
@@ -84,8 +84,8 @@ export default defineComponent({
 				}
 			} else {
 				const xmlStr = downloadXmlStr.value;
-				const parseXmlInfo = getCustomInfo(xmlStr);
-				const xml = formatXML(parseXmlInfo.parsedXML);
+				const parseXmlInfo = getCustomInfo(xmlStr, cbType);
+				const xml = formatXML(parseXmlInfo.parsedXML, '', cbType);
 				musicData.score = state.isCombineRender ? xml : onlyVisible(xml, state.partIndex);
 				if (state.gradualTimes) {
 					state.gradual = getGradualLengthByXml(xml);
@@ -202,7 +202,7 @@ export default defineComponent({
 		let horizontalDragScroll:HorizontalDragScroll | null
 		onMounted(async () => {
 			//setRenderType();
-			await getXML();
+			await getXML('init');
 			await init();
 			// pc 端支持 拖动滚动
 			if(state.platform === "PC" || query.isCbs){