yonge 3 gadi atpakaļ
vecāks
revīzija
52d4fbdd04

+ 11 - 0
audio-analysis/src/main/java/com/yonge/netty/dto/UserChannelContext.java

@@ -829,6 +829,17 @@ public class UserChannelContext {
 		if(chunkAnalysisList == null || chunkAnalysisList.size() == 0){
 			return musicXmlNote.getTimeStamp() + dynamicOffset;
 		}
+		
+		//判断是否与上一个音是同一个音符
+		MusicXmlNote preMusicXmlNote = getCurrentMusicNote(null, musicXmlNote.getMusicalNotesIndex() - 1);
+		if((int)preMusicXmlNote.getFrequency() == (int)musicXmlNote.getFrequency()){
+			Optional<ChunkAnalysis> optional = chunkAnalysisList.stream().filter(t -> t.getFrequency() <= 100).findFirst();
+			if(optional.isPresent()){
+				return optional.get().getEndTime();
+			}else{
+				return musicXmlNote.getTimeStamp() + dynamicOffset;
+			}
+		}
 
 		NoteFrequencyRange standardNote = new NoteFrequencyRange(standardFrequecy, musicXmlNote.getFrequency());