Browse Source

feat:小节评分

Joburgess 4 years ago
parent
commit
429dbe00b6

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/handler/WebSocketHandler.java

@@ -41,6 +41,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketHandler.class);
 
+    //存储客户端链接
     public static final Map<String, WebSocketSession> WS_CLIENTS = new ConcurrentHashMap<>();
 
     private BigDecimal oneHundred = new BigDecimal(100);
@@ -145,6 +146,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
         dispatcher.addAudioProcessor(new PitchProcessor(algo, simpleRate, simpleSize, (pitchDetectionResult, audioEvent) -> {
             int timeStamp = (int) (userSoundInfoMap.get(phone).getMeasureStartTime() + audioEvent.getTimeStamp()*1000);
             float pitch = pitchDetectionResult.getPitch();
+            LOGGER.info("频率:{}, {}", timeStamp, pitch);
             recordInfo.add(new MusicPitchDetailDto(timeStamp, pitch));
         }));
         dispatcher.run();
@@ -156,6 +158,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
         userSoundInfoMap.get(phone).getRecordMeasurePithInfo().addAll(recordInfo);
         for (Map.Entry<Integer, Integer> userMeasureEndTimeMapEntry : userSoundInfoMap.get(phone).getMeasureEndTime().entrySet()) {
             if(recordTime>userMeasureEndTimeMapEntry.getValue()){
+//                LOGGER.info("评测时间:{}", recordTime);
                 measureCompare(phone, userMeasureEndTimeMapEntry.getKey());
                 userSoundInfoMap.get(phone).getMeasureEndTime().remove(userMeasureEndTimeMapEntry.getKey());
                 break;
@@ -251,7 +254,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             //音准匹配数量
             float intonationNum = 0;
             //音准匹配误差范围
-            float intonationErrRange = 30;
+            float intonationErrRange = 10;
             //音准有效阈值
             float intonationValidDuty = 0.5f;
 
@@ -277,7 +280,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
                 //时间范围内匹配次数
                 float compareNum = 0;
                 for (MusicPitchDetailDto recordInfo : userSoundInfoMap.get(phone).getRecordMeasurePithInfo()) {
-                    LOGGER.info("频率:{}, {}", musicXmlInfo.getFrequency(), recordInfo.getFrequency());
+//                    LOGGER.info("频率:{}, {}", musicXmlInfo.getFrequency(), recordInfo.getFrequency());
                     //如果在时间范围之外直接跳过
                     if(recordInfo.getTimeStamp()<startTimeStamp||recordInfo.getTimeStamp()>endTimeStamp){
                         continue;