diff --git a/lib/talk/starChart/constant/talk_constant.dart b/lib/talk/starChart/constant/talk_constant.dart index 23b6934f..a3847d50 100644 --- a/lib/talk/starChart/constant/talk_constant.dart +++ b/lib/talk/starChart/constant/talk_constant.dart @@ -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; } diff --git a/lib/talk/starChart/handle/impl/udp_talk_request_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_request_handler.dart index 44f26c29..8517e46b 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_request_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_request_handler.dart @@ -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() diff --git a/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart index 44bb1630..c4347317 100644 --- a/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_request_over_time_timer_manager.dart @@ -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(); } diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index 1e53b7f0..d379ef01 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -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(); } /// 停止持续发送对讲请求 diff --git a/lib/talk/starChart/views/talkView/talk_view_logic.dart b/lib/talk/starChart/views/talkView/talk_view_logic.dart index c901d5ab..a0a79f52 100644 --- a/lib/talk/starChart/views/talkView/talk_view_logic.dart +++ b/lib/talk/starChart/views/talkView/talk_view_logic.dart @@ -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'); } }