|
@@ -154,20 +154,24 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
if(Objects.nonNull(userSoundInfoMap.get(phone).getAccessFile())){
|
|
|
userSoundInfoMap.get(phone).getAccessFile().write(message.getPayload().array());
|
|
|
}
|
|
|
- LOGGER.info(JSON.toJSONString(message.getPayload().array()));
|
|
|
-
|
|
|
-// 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;
|
|
|
-// }
|
|
|
+
|
|
|
+ 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;
|
|
|
+ }
|
|
|
|
|
|
double recordTime = userSoundInfoMap.get(phone).getAccessFile().length()/(audioFormat.getFrameSize()*audioFormat.getFrameRate())*1000;
|
|
|
|
|
@@ -178,7 +182,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;
|
|
|
}
|
|
@@ -417,8 +421,9 @@ 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().readFully(bytes);
|
|
|
+// userSoundInfoMap.get(phone).getAccessFile().seek((userSoundInfoMap.get(phone).getAccessFile().length()-measureByteNum));
|
|
|
+ userSoundInfoMap.get(phone).getAccessFile().seek(0);
|
|
|
+ userSoundInfoMap.get(phone).getAccessFile().read(bytes);
|
|
|
|
|
|
userSoundInfoMap.get(phone).getAccessFile().seek(userSoundInfoMap.get(phone).getAccessFile().length());
|
|
|
|