|
|
@@ -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());
|