|  | @@ -187,7 +187,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |          const startIndex = state.times.findIndex((n: any) => n.noteId == state.section[0].noteId);
 | 
	
		
			
				|  |  |          let endIndex = state.times.findIndex((n: any) => n.noteId == state.section[1].noteId);
 | 
	
		
			
				|  |  |          endIndex = endIndex < state.section[1].i ? state.section[1].i : endIndex;
 | 
	
		
			
				|  |  | -        if (startIndex >= 1) {
 | 
	
		
			
				|  |  | +        if (startIndex > 1) {
 | 
	
		
			
				|  |  |            // firstNoteTime应该取预备小节的第一个音符的开始播放的时间
 | 
	
		
			
				|  |  |            const idx = startIndex - 1 - state.times[startIndex - 1].si;
 | 
	
		
			
				|  |  |            preTime = state.times[idx] ? state.times[idx].time * 1000 : 0;
 | 
	
	
		
			
				|  | @@ -205,14 +205,18 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        // 阶段评测beatLength需要加上预备小节的持续时长
 | 
	
		
			
				|  |  |        actualBeatLength = preTimes.length ? actualBeatLength + preTimes[preTimes.length - 1].relaMeasureLength * 1000 : actualBeatLength;
 | 
	
		
			
				|  |  |        // 如果是弱起,并且预备小节是第一节
 | 
	
		
			
				|  |  | -      if (state.section.length && state.sectionFirst && state.sectionFirst.measureListIndex == 0) {
 | 
	
		
			
				|  |  | +      if (state.section.length && state.sectionFirst && state.sectionFirst.measureListIndex == 0 && !state.isEvxml) {
 | 
	
		
			
				|  |  |          actualBeatLength = actualBeatLength < Math.round((state.times[0].fixtime * 1000) / 1) ? Math.round((state.times[0].fixtime * 1000) / 1) : actualBeatLength;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  | -      let firstNoteTime = unitTestIdx >= 1 ? preTime : 0;
 | 
	
		
			
				|  |  | +      let firstNoteTime = unitTestIdx > 1 ? preTime : 0;
 | 
	
		
			
				|  |  |        let measureIndex = -1;
 | 
	
		
			
				|  |  |        let recordMeasure = -1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      // 如果有mp3节拍器,并且预备小节是第一节,并且从0开始播放,actualBeatLength需要加上mp3节拍器时间
 | 
	
		
			
				|  |  | +      if (state.section.length === 2 && firstNoteTime === 0 && state.section[0]?.MeasureNumberXML === state.firstMeasureNumber + 1 && state.times[0].fixtime) {
 | 
	
		
			
				|  |  | +        actualBeatLength  = actualBeatLength + Math.round((state.times[0].fixtime * 1000) / 1)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        for (let index = 0; index < selectTimes.length; index++) {
 | 
	
		
			
				|  |  |          const item = selectTimes[index];
 | 
	
		
			
				|  |  |          const note = getNoteByMeasuresSlursStart(item);
 |