From 422c230dfcd6f3e72af0f793feeea4690b893784 Mon Sep 17 00:00:00 2001 From: liyi Date: Thu, 5 Dec 2024 13:55:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E9=80=9A=E8=AF=9D?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9C=AA=E6=94=B6=E5=88=B0=E6=97=B6=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=99=A8=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handle/impl/udp_talk_accept_handler.dart | 7 +++++++ ...me_timer_manger.dart => overtime_timer_manger.dart} | 4 ++-- .../startChart/handle/scp_message_base_handle.dart | 10 +++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) rename lib/talk/startChart/handle/other/{talk_ping_overtime_timer_manger.dart => overtime_timer_manger.dart} (91%) diff --git a/lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart b/lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart index e9d4dbe6..b0cff969 100644 --- a/lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart +++ b/lib/talk/startChart/handle/impl/udp_talk_accept_handler.dart @@ -29,6 +29,13 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle talkePingOverTimeTimerManager.setOnTimeout(() { EasyLoading.showToast('通话异常中断', duration: 2000.milliseconds); }); + + // 启动对讲数据监听定时器 + talkDataOverTimeTimerManager.startTimer(); + // 设置对讲数据超时后的事件 + talkDataOverTimeTimerManager.setOnTimeout(() { + EasyLoading.showToast('通话连接失败', duration: 2000.milliseconds); + }); } } } diff --git a/lib/talk/startChart/handle/other/talk_ping_overtime_timer_manger.dart b/lib/talk/startChart/handle/other/overtime_timer_manger.dart similarity index 91% rename from lib/talk/startChart/handle/other/talk_ping_overtime_timer_manger.dart rename to lib/talk/startChart/handle/other/overtime_timer_manger.dart index 96eb263b..f92990a6 100644 --- a/lib/talk/startChart/handle/other/talk_ping_overtime_timer_manger.dart +++ b/lib/talk/startChart/handle/other/overtime_timer_manger.dart @@ -2,9 +2,9 @@ import 'dart:async'; typedef TimeoutCallback = void Function(); -class TalkPingOverTimeTimerManager { +class OverTimeTimerManager { // 构造函数,接受超时时间 - TalkPingOverTimeTimerManager({required this.timeoutInSeconds}); + OverTimeTimerManager({required this.timeoutInSeconds}); // 定义一个可取消的 Timer Timer? _timer; diff --git a/lib/talk/startChart/handle/scp_message_base_handle.dart b/lib/talk/startChart/handle/scp_message_base_handle.dart index 416b1f8a..6274332b 100644 --- a/lib/talk/startChart/handle/scp_message_base_handle.dart +++ b/lib/talk/startChart/handle/scp_message_base_handle.dart @@ -4,11 +4,10 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/talk/other/audio_player_manager.dart'; import 'package:star_lock/talk/startChart/constant/udp_constant.dart'; -import 'package:star_lock/talk/startChart/handle/other/talk_ping_overtime_timer_manger.dart'; +import 'package:star_lock/talk/startChart/handle/other/overtime_timer_manger.dart'; import 'package:star_lock/talk/startChart/proto/generic.pb.dart'; import 'package:star_lock/talk/startChart/start_chart_manage.dart'; -import 'package:star_lock/tools/storage.dart'; class ScpMessageBaseHandle { final startChartManage = StartChartManage(); @@ -16,10 +15,15 @@ class ScpMessageBaseHandle { final audioManager = AudioPlayerManager(); // 通话保持超时监听定时器管理 - final talkePingOverTimeTimerManager = TalkPingOverTimeTimerManager( + final talkePingOverTimeTimerManager = OverTimeTimerManager( timeoutInSeconds: 5, ); + // 通话数据超时定时器 + final talkDataOverTimeTimerManager = OverTimeTimerManager( + timeoutInSeconds: 3, + ); + bool checkGenericRespSuccess(GenericResp genericResp) {