Преглед на файлове

feat:教师端活动排课

Joburgess преди 4 години
родител
ревизия
70735c4e0b
променени са 1 файла, в които са добавени 17 реда и са изтрити 21 реда
  1. 17 21
      mec-biz/src/main/java/com/ym/mec/biz/handler/WebSocketHandler.java

+ 17 - 21
mec-biz/src/main/java/com/ym/mec/biz/handler/WebSocketHandler.java

@@ -155,23 +155,18 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             userSoundInfoMap.get(phone).getAccessFile().write(message.getPayload().array());
         }
 
-        byte[] bytes = new byte[message.getPayloadLength()];
-        userSoundInfoMap.get(phone).getAccessFile().seek(0);
-        userSoundInfoMap.get(phone).getAccessFile().readFully(bytes);
-        bytes = message.getPayload().array();
-
-        List<MusicPitchDetailDto> recordInfo = new ArrayList<>();
-        AudioDispatcher dispatcher = AudioDispatcherFactory.fromByteArray(bytes, audioFormat, simpleSize, 128);
-        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();
-        if(Objects.isNull(userSoundInfoMap.get(phone).getAccessFile())){
-            return;
-        }
+//        List<MusicPitchDetailDto> recordInfo = new ArrayList<>();
+//        AudioDispatcher dispatcher = AudioDispatcherFactory.fromByteArray(message.getPayload().array(), audioFormat, simpleSize, 128);
+//        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();
+//        if(Objects.isNull(userSoundInfoMap.get(phone).getAccessFile())){
+//            return;
+//        }
 
         double recordTime = userSoundInfoMap.get(phone).getAccessFile().length()/(audioFormat.getFrameSize()*audioFormat.getFrameRate())*1000;
 
@@ -182,7 +177,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
             if(recordTime>(userMeasureEndTimeMapEntry.getValue().getEndTimeStamp()+ot)){
                 LOGGER.info("频分开始{}:{}", recordTime, userSoundInfoMap.get(phone).getAccessFile().length());
 //                measureCompare(phone, userMeasureEndTimeMapEntry.getKey());
-//                measureCompare2(phone, userMeasureEndTimeMapEntry.getValue());
+                measureCompare2(phone, userMeasureEndTimeMapEntry.getValue());
                 userSoundInfoMap.get(phone).getMeasureEndTime().remove(userMeasureEndTimeMapEntry.getKey());
                 break;
             }
@@ -421,9 +416,10 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
 
         List<MusicPitchDetailDto> recordInfo = new ArrayList<>();
         byte[] bytes = new byte[measureByteNum];
-//        userSoundInfoMap.get(phone).getAccessFile().seek((userSoundInfoMap.get(phone).getAccessFile().length()-measureByteNum));
-        userSoundInfoMap.get(phone).getAccessFile().seek(0);
-        userSoundInfoMap.get(phone).getAccessFile().read(bytes);
+        long startOffset = (userSoundInfoMap.get(phone).getAccessFile().length()-measureByteNum);
+        userSoundInfoMap.get(phone).getAccessFile().seek(startOffset-10);
+//        userSoundInfoMap.get(phone).getAccessFile().seek(0);
+        userSoundInfoMap.get(phone).getAccessFile().readFully(bytes);
 
         userSoundInfoMap.get(phone).getAccessFile().seek(userSoundInfoMap.get(phone).getAccessFile().length());