|  | @@ -405,14 +405,24 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |                (60 / beatSpeed)
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +          /**
 | 
	
		
			
				|  |  | +           * 
 | 
	
		
			
				|  |  | +           * bug修复说明
 | 
	
		
			
				|  |  | +           * 曲目:'我和我的祖国’,
 | 
	
		
			
				|  |  | +           * 从第32节点后播放异常,进和管乐迷endtime值对比,发现是noteLength计算不一致导致
 | 
	
		
			
				|  |  | +           * 不一致的原因是:noteLength值计算,多了下面这段逻辑,故先注释掉
 | 
	
		
			
				|  |  | +           * 20.23.10.13
 | 
	
		
			
				|  |  | +           * 
 | 
	
		
			
				|  |  | +           */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            // 如果是休止符并且整个小节休止,休止符的时值小于小节时值,取小节的时值
 | 
	
		
			
				|  |  | -          if (note.isRestFlag && note?.sourceMeasure?.allRests) {
 | 
	
		
			
				|  |  | -            multipleRestMeasures = note?.sourceMeasure?.multipleRestMeasures
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          if (multipleRestMeasures > 0) {
 | 
	
		
			
				|  |  | -            multipleRestMeasures -= 1
 | 
	
		
			
				|  |  | -            noteLength = measureLength
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | +          // if (note.isRestFlag && note?.sourceMeasure?.allRests) {
 | 
	
		
			
				|  |  | +          //   multipleRestMeasures = note?.sourceMeasure?.multipleRestMeasures
 | 
	
		
			
				|  |  | +          // }
 | 
	
		
			
				|  |  | +          // if (multipleRestMeasures > 0) {
 | 
	
		
			
				|  |  | +          //   multipleRestMeasures -= 1
 | 
	
		
			
				|  |  | +          //   noteLength = measureLength
 | 
	
		
			
				|  |  | +          // }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            // 如果休止符的时值大于小节的时值
 | 
	
		
			
				|  |  |            if (note.isRestFlag && noteLength > measureLength) {
 | 
	
	
		
			
				|  | @@ -442,6 +452,7 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |            currentRealValueTotal = iterator.currentTimeStamp.realValue
 | 
	
		
			
				|  |  |            usetime += noteLength
 | 
	
		
			
				|  |  |            relaMeasureLength += noteLength
 | 
	
		
			
				|  |  | +          //console.log('👀看看noteLength',noteLength,relativeTime, i)
 | 
	
		
			
				|  |  |            let relaEndtime = noteLength + relativeTime
 | 
	
		
			
				|  |  |            // console.log({noteLength,relativeTime ,relaEndtime, endtime: relaEndtime + fixtime})
 | 
	
		
			
				|  |  |            const fixedKey = note.ParentVoiceEntry.ParentVoice.Parent.SubInstruments[0].fixedKey || 0
 | 
	
	
		
			
				|  | @@ -473,7 +484,7 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              fixtime += difftime
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          // console.log('👀看看', relaEndtime, fixtime)
 | 
	
		
			
				|  |  | +          //console.log('👀看看endtime', relaEndtime, fixtime, i)
 | 
	
		
			
				|  |  |            const nodeDetail = {
 | 
	
		
			
				|  |  |              fixtime,
 | 
	
		
			
				|  |  |              skipMode,
 |