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 talkePingOverTime = 10;
static const int talkeDataOverTime = 10; static const int talkeDataOverTime = 10;
// TalkRequest (s) // 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.startTalkExpectTimer();
// //
startChartManage.stopCallRequestMessageTimer(); startChartManage.stopCallRequestMessageTimer();
//
talkeRequestOverTimeTimerManager.cancel();
// ping
startChartManage.startTalkPingMessageTimer();
// ping命令超时判断
talkePingOverTimeTimerManager.start();
} }
} }
@ -74,8 +80,6 @@ class UdpTalkRequestHandler extends ScpMessageBaseHandle
_showTalkRequestNotification(talkObjectName: talkObjectName); _showTalkRequestNotification(talkObjectName: talkObjectName);
// //
talkStatus.setPassiveCallWaitingAnswer(); talkStatus.setPassiveCallWaitingAnswer();
//
talkeRequestOverTimeTimerManager.start();
// //
if (startChartManage if (startChartManage
.getDefaultTalkExpect() .getDefaultTalkExpect()

View File

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

View File

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

View File

@ -125,7 +125,7 @@ class TalkViewLogic extends BaseGetXController {
if (_isFirstFrame) { if (_isFirstFrame) {
_startTime = currentTime; _startTime = currentTime;
_isFirstFrame = false; _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) { if (delay > delayThresholdHigh && bufferSize < maxBufferSize) {
// //
bufferSize = min(bufferSize + adjustInterval, maxBufferSize); bufferSize = min(bufferSize + adjustInterval, maxBufferSize);
AppLog.log('📈 增加缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms'); // AppLog.log('📈 增加缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
} else if (delay < delayThresholdLow && bufferSize > minBufferSize) { } else if (delay < delayThresholdLow && bufferSize > minBufferSize) {
// //
bufferSize = max(bufferSize - adjustInterval, minBufferSize); bufferSize = max(bufferSize - adjustInterval, minBufferSize);
AppLog.log('📉 减少缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms'); // AppLog.log('📉 减少缓冲区 - 当前大小: $bufferSize, 延迟: ${delay}ms');
} }
} }