Browse Source

feat:小节评分

Joburgess 4 years ago
parent
commit
2e3218c11a

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

@@ -132,6 +132,11 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             case SoundSocketService.RECORD_CANCEL:
                 createHeader(phone);
                 break;
+            case SoundSocketService.PROXY_MESSAGE:
+                if(bodyObject.containsKey(SoundSocketService.OFFSET_TIME)){
+                    userSoundInfoMap.get(phone).setOffsetTime(bodyObject.getIntValue(SoundSocketService.OFFSET_TIME));
+                }
+                break;
             default:
                 break;
         }
@@ -160,35 +165,8 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
         }
 
         double recordTime = userSoundInfoMap.get(phone).getAccessFile().length()/(audioFormat.getFrameSize()*audioFormat.getFrameRate())*1000;
-
         userSoundInfoMap.get(phone).setMeasureStartTime(recordTime);
         userSoundInfoMap.get(phone).getRecordMeasurePithInfo().addAll(recordInfo);
-
-        //如果是第一小节,需要计算出录音与播放不同步导致的空白时间偏移量
-        if(userSoundInfoMap.get(phone).getOffsetTime()<=0&&recordTime<endCheckOffsetTime){
-            int hasPitchNum = 0;
-            for (MusicPitchDetailDto ri : userSoundInfoMap.get(phone).getRecordMeasurePithInfo()) {
-                if(hasPitchNum<=0){
-                    userSoundInfoMap.get(phone).setOffsetTime(ri.getTimeStamp());
-                }
-                if(ri.getFrequency()>0){
-                    hasPitchNum++;
-                }else{
-                    hasPitchNum=0;
-                }
-                if(hasPitchNum>=3){
-                    LOGGER.info("偏移时间:{}", userSoundInfoMap.get(phone).getOffsetTime());
-                    break;
-                }
-            }
-            if(hasPitchNum<3){
-                userSoundInfoMap.get(phone).setOffsetTime(0);
-            }
-        }
-
-        if(userSoundInfoMap.get(phone).getOffsetTime()<=0&&recordTime<endCheckOffsetTime){
-            return;
-        }
         for (Map.Entry<Integer, Integer> userMeasureEndTimeMapEntry : userSoundInfoMap.get(phone).getMeasureEndTime().entrySet()) {
             if((recordTime - userSoundInfoMap.get(phone).getOffsetTime())>userMeasureEndTimeMapEntry.getValue()){
                 measureCompare(phone, userMeasureEndTimeMapEntry.getKey());

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SoundSocketService.java

@@ -11,5 +11,7 @@ public interface SoundSocketService {
     String RECORD_START = "recordStart";
     String RECORD_END = "recordEnd";
     String RECORD_CANCEL = "recordCancel";
+    String PROXY_MESSAGE = "proxyMessage";
+    String OFFSET_TIME = "offsetTime";
 
 }