|  | @@ -158,6 +158,7 @@ const tranTime = (str: string = '') => {
 | 
	
		
			
				|  |  |    return `1970-01-01 00:${result}0`
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  | +  console.log(9999, osmd)
 | 
	
		
			
				|  |  |    const detailId = getLinkId()
 | 
	
		
			
				|  |  |    let fixtime = browserInfo.huawei ? 0.08 : 0 //getFixTime()
 | 
	
		
			
				|  |  |    const allNotes: any[] = []
 | 
	
	
		
			
				|  | @@ -283,10 +284,14 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |            /**
 | 
	
		
			
				|  |  |             * 速度不能为0, 此处的速度应该是按照设置的速度而不是校准后的速度,否则mp3速度不对
 | 
	
		
			
				|  |  |             */
 | 
	
		
			
				|  |  | -          let beatSpeed =
 | 
	
		
			
				|  |  | -            (state.isSpecialBookCategory
 | 
	
		
			
				|  |  | -              ? getTimeByBeatUnit(beatUnit, measureSpeed, iterator.currentMeasure.activeTimeSignature.Denominator)
 | 
	
		
			
				|  |  | -              : baseSpeed) || 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          // let beatSpeed =
 | 
	
		
			
				|  |  | +          //   (state.isSpecialBookCategory
 | 
	
		
			
				|  |  | +          //     ? getTimeByBeatUnit(beatUnit, measureSpeed, iterator.currentMeasure.activeTimeSignature.Denominator)
 | 
	
		
			
				|  |  | +          //     : baseSpeed) || 1
 | 
	
		
			
				|  |  | +          // #8456 光标和节拍对应不上等bug修复, 
 | 
	
		
			
				|  |  | +          let beatSpeed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            let speed = (state.isSpecialBookCategory ? measureSpeed : baseSpeed) || 1
 | 
	
		
			
				|  |  |            // console.log('曲谱设置的速度', { base: getTimeByBeatUnit(beatUnit, measureSpeed, iterator.currentMeasure.activeTimeSignature.Denominator), beatSpeed, speed})
 | 
	
		
			
				|  |  |            gradualChange = iterator.currentMeasure.speedInfo || gradualChange
 | 
	
	
		
			
				|  | @@ -380,7 +385,7 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |            if (i === 0) {
 | 
	
		
			
				|  |  |              fixtime += getFixTime(beatSpeed)
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          // console.log({fixtime, relativeTime})
 | 
	
		
			
				|  |  | +          // console.log(fixtime, '看看1',beatSpeed, baseSpeed,beatUnit, speed, iterator.currentMeasure.activeTimeSignature.Denominator)
 | 
	
		
			
				|  |  |            // 酷乐秀计算音符时值方法
 | 
	
		
			
				|  |  |            // let noteLength =
 | 
	
		
			
				|  |  |            // (numerator === 0 && note.isRestFlag ? vRealValue : (wholeValue + numerator) / denominator) *
 | 
	
	
		
			
				|  | @@ -400,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) {
 | 
	
	
		
			
				|  | @@ -437,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
 | 
	
	
		
			
				|  | @@ -468,6 +484,7 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              fixtime += difftime
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +          //console.log('👀看看endtime', relaEndtime, fixtime, i)
 | 
	
		
			
				|  |  |            const nodeDetail = {
 | 
	
		
			
				|  |  |              fixtime,
 | 
	
		
			
				|  |  |              skipMode,
 | 
	
	
		
			
				|  | @@ -635,6 +652,7 @@ export const getAllNodes = (osmd: any) => {
 | 
	
		
			
				|  |  |      } catch (error) {}
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    // 按照时间轴排序
 | 
	
		
			
				|  |  | +  // console.log('看看👀', allNotes)
 | 
	
		
			
				|  |  |    const sortArray = allNotes
 | 
	
		
			
				|  |  |      .sort((a, b) => a.relativeTime - b.relativeTime)
 | 
	
		
			
				|  |  |      .map((item, index) => ({ ...item, i: index }))
 |