|
@@ -366,7 +366,7 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
|
|
|
const detailId = state.examSongId + "";
|
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
|
- const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
|
+ //const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
|
const parts: any = xmlParse.getElementsByTagName("part");
|
|
|
// const firstTimeInfo = parts[0]?.getElementsByTagName('metronome')[0]?.parentElement?.parentElement?.cloneNode(true)
|
|
|
const firstMeasures = [...parts[0]?.getElementsByTagName("measure")];
|
|
@@ -376,14 +376,14 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
|
|
|
const rehearsals = [...parts[0]?.getElementsByTagName("rehearsal")];
|
|
|
|
|
|
/** 第一分谱如果是约定的配置分谱则跳过 */
|
|
|
- if (partListNames[0]?.toLocaleUpperCase?.() === "COMMON") {
|
|
|
- partIndex++;
|
|
|
- partListNames.shift();
|
|
|
- }
|
|
|
+ // if (partListNames[0]?.toLocaleUpperCase?.() === "COMMON") {
|
|
|
+ // partIndex++;
|
|
|
+ // partListNames.shift();
|
|
|
+ // }
|
|
|
const visiblePartInfo = partList[partIndex];
|
|
|
// console.log(visiblePartInfo, partIndex)
|
|
|
// 根据后台已选择的分轨筛选出能切换的声轨
|
|
|
- state.partListNames = partListNames;
|
|
|
+ //state.partListNames = partListNames;
|
|
|
// console.log('分轨名称',state.partListNames)
|
|
|
if (visiblePartInfo) {
|
|
|
const id = visiblePartInfo.getAttribute("id");
|
|
@@ -523,14 +523,11 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
|
|
|
export const onlyVisible2 = (xml: string): string => {
|
|
|
if (!xml) return "";
|
|
|
// console.log('原始xml')
|
|
|
- const detailId = state.examSongId + "";
|
|
|
+ //const detailId = state.examSongId + "";
|
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
|
- const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
|
-
|
|
|
-
|
|
|
- state.partListNames = partListNames;
|
|
|
-
|
|
|
+ //const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
|
+ //state.partListNames = partListNames;
|
|
|
Array.from(partList).forEach((part) => {
|
|
|
let partListName = part.getElementsByTagName("part-name")?.[0]?.textContent?.trim();
|
|
|
if (!state.canSelectTracks.includes(partListName)) {
|
|
@@ -1293,7 +1290,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
|
// 找出这个音符前面音符的结束时间
|
|
|
let preNoteTImes = allNotes[allNotes.length - 1]?.endtime*1000
|
|
|
if(!preNoteTImes){
|
|
|
- preNoteTImes = Math.max(fixtime - noteLength, 0)*1000 //如果前一个音符没有结束时间,证明这个音符是第一个音符没有打时间,所以往前奏里面找补
|
|
|
+ //如果前一个音符没有结束时间,证明这个音符是第一个音符没有打时间,当有timegap以fixtime当开始时间(1795013294269087745),当第一个小节有times这个往前奏里面找补(1795013306436763649)
|
|
|
+ preNoteTImes = (state.evXmlBeginArr.length>0 ? fixtime : Math.max(fixtime - noteLength, 0))*1000
|
|
|
}
|
|
|
// 找出这个音符后面音符的开始时间
|
|
|
let nextI = i
|