fix:调整对讲流程逻辑,增加对讲请求超时时间为30秒

This commit is contained in:
liyi 2025-03-21 16:19:50 +08:00
parent 8b61e3d5a6
commit 65c82a34ab
5 changed files with 16 additions and 11 deletions

View File

@ -3,5 +3,5 @@ class TalkConstant {
static const int talkePingOverTime = 10;
static const int talkeDataOverTime = 10;
// TalkRequest (s)
static const int talkeRequestOverTime = 60;
static const int talkeRequestOverTime = 30;
}

View File

@ -54,6 +54,12 @@ class UdpTalkRequestHandler extends ScpMessageBaseHandle
startChartManage.startTalkExpectTimer();
//
startChartManage.stopCallRequestMessageTimer();
//
talkeRequestOverTimeTimerManager.cancel();
// ping
startChartManage.startTalkPingMessageTimer();
// ping命令超时判断
talkePingOverTimeTimerManager.start();
}
}
@ -74,8 +80,6 @@ class UdpTalkRequestHandler extends ScpMessageBaseHandle
_showTalkRequestNotification(talkObjectName: talkObjectName);
//
talkStatus.setPassiveCallWaitingAnswer();
//
talkeRequestOverTimeTimerManager.start();
//
if (startChartManage
.getDefaultTalkExpect()

View File

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/talk/starChart/constant/talk_constant.dart';
import 'package:star_lock/talk/starChart/constant/talk_status.dart';
import 'package:star_lock/talk/starChart/star_chart_manage.dart';
@ -34,6 +35,7 @@ class TalkeRequestOverTimeTimerManager {
StartChartManage().startTalkRejectMessageTimer();
StartChartManage().stopSendingRbcuInfoMessages();
StartChartManage().stopSendingRbcuProBeMessages();
StartChartManage().stopCallRequestMessageTimer();
talkStatus.setInitializationCompleted();
Get.back();
}

View File

@ -417,8 +417,7 @@ class StartChartManage {
void startCallRequestMessageTimer({required String ToPeerId}) async {
//
if (talkStatus.status != TalkStatus.proactivelyCallWaitingAnswer) {
//
// AudioPlayerManager().playRingtone();
// h264则跳转至webview
if (_defaultTalkExpect.videoType.contains(VideoTypeE.H264)) {
Get.toNamed(
Routers.h264WebView,
@ -429,6 +428,7 @@ class StartChartManage {
);
}
}
//
talkRequestTimer ??= Timer.periodic(
Duration(
seconds: _defaultIntervalTime,
@ -438,9 +438,8 @@ class StartChartManage {
},
);
talkStatus.setProactivelyCallWaitingAnswer();
startTalkPingMessageTimer();
// ping超时判断定时器
talkePingOverTimeTimerManager.start();
//
talkeRequestOverTimeTimerManager.start();
}
///

View File

@ -125,7 +125,7 @@ class TalkViewLogic extends BaseGetXController {
if (_isFirstFrame) {
_startTime = currentTime;
_isFirstFrame = false;
AppLog.log('记录第一帧的时间戳${currentTime},${talkData.durationMs}');
// AppLog.log('记录第一帧的时间戳${currentTime},${talkData.durationMs}');
}
// -
@ -249,11 +249,11 @@ class TalkViewLogic extends BaseGetXController {
if (delay > delayThresholdHigh && bufferSize < maxBufferSize) {
//
bufferSize = min(bufferSize + adjustInterval, maxBufferSize);
AppLog.log('📈 增加缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
// AppLog.log('📈 增加缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
} else if (delay < delayThresholdLow && bufferSize > minBufferSize) {
//
bufferSize = max(bufferSize - adjustInterval, minBufferSize);
AppLog.log('📉 减少缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
// AppLog.log('📉 减少缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
}
}