|
|
@@ -151,8 +151,14 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
|
|
|
if(Objects.nonNull(userSoundInfoMap.get(phone).getAccessFile())){
|
|
|
userSoundInfoMap.get(phone).getAccessFile().write(message.getPayload().array());
|
|
|
}
|
|
|
+
|
|
|
+ byte[] newByte = new byte[userSoundInfoMap.get(phone).getPreDataArray().length+message.getPayloadLength()];
|
|
|
+ System.arraycopy(userSoundInfoMap.get(phone).getPreDataArray(), 0, newByte, 0, userSoundInfoMap.get(phone).getPreDataArray().length);
|
|
|
+ System.arraycopy(message.getPayload().array(), 0, newByte, userSoundInfoMap.get(phone).getPreDataArray().length, message.getPayloadLength());
|
|
|
+ userSoundInfoMap.get(phone).setPreDataArray(message.getPayload().array());
|
|
|
+
|
|
|
List<MusicPitchDetailDto> recordInfo = new ArrayList<>();
|
|
|
- AudioDispatcher dispatcher = AudioDispatcherFactory.fromByteArray(message.getPayload().array(), audioFormat, simpleSize, 128);
|
|
|
+ AudioDispatcher dispatcher = AudioDispatcherFactory.fromByteArray(newByte, 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();
|