|
@@ -1245,15 +1245,21 @@ export const verifyCanRepeat = (startNum: number, endNum: number) => {
|
|
|
const analyzeEvxml = (xmlParse: any, xmlUrl?: string) => {
|
|
|
// xml拍号数
|
|
|
const xmlNum = xmlParse.getElementsByTagName("timegap")[0]?.getElementsByTagName("values")[0]?.getElementsByTagName("item")[0]?.getAttribute('num');
|
|
|
+ const denNum = xmlParse.getElementsByTagName("timegap")[0]?.getElementsByTagName("values")[0]?.getElementsByTagName("item")[0]?.getAttribute('den');
|
|
|
// 第一个音符的起始时间
|
|
|
- const firstNoteBeginTime = xmlParse.getElementsByTagName("times")[0]?.getElementsByTagName("time")[0]?.getAttribute('begin');
|
|
|
- state.evXmlBeginTime = firstNoteBeginTime ? firstNoteBeginTime / 1000 : xmlNum ? 60 / state.originSpeed * xmlNum : 0;
|
|
|
- const hasTimeGap = xmlParse.getElementsByTagName("timegap").length > 0;
|
|
|
- const hasTimes = xmlParse.getElementsByTagName("times").length > 0;
|
|
|
+ const firstMeasure = xmlParse.getElementsByTagName("measure")[0];
|
|
|
+ if (firstMeasure) {
|
|
|
+ const firstNoteBeginTime = firstMeasure.getElementsByTagName("times")[0]?.getElementsByTagName("time")[0]?.getAttribute('begin');
|
|
|
+ state.evXmlBeginTime = firstNoteBeginTime ? firstNoteBeginTime / 1000 : xmlNum ? 60 / state.originSpeed * xmlNum * 4/denNum : 0;
|
|
|
+ const hasTimeGap = xmlParse.getElementsByTagName("timegap").length > 0;
|
|
|
+ const hasTimes = xmlParse.getElementsByTagName("times").length > 0;
|
|
|
+ console.log('🚀 ~ evxml解析','有timegap:',hasTimeGap,'有times:',hasTimes)
|
|
|
+ }
|
|
|
+
|
|
|
// if (!hasTimeGap && !hasTimes) {
|
|
|
// state.noTimes.push(xmlUrl)
|
|
|
// }
|
|
|
- console.log('🚀 ~ evxml解析','有timegap:',hasTimeGap,'有times:',hasTimes)
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|