diff --git a/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart b/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart index 7e3bc531..ede0e3b8 100644 --- a/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_rbcuInfo_handler.dart @@ -59,10 +59,15 @@ class UdpRbcuInfoHandler extends ScpMessageBaseHandle @override void handleResp(ScpMessage scpMessage) { + final RbcuInfo rbcuInfo = scpMessage.Payload; final GenericResp genericResp = scpMessage.Payload; if (checkGenericRespSuccess(genericResp)) { // 收到回复之后停止重发 startChartManage.stopSendingRbcuInfoMessages(); + if (rbcuInfo.isResp) { + // 如果是回复的消息 + _handleResultRbcuInfo(rbcuInfo); + } } } @@ -70,5 +75,6 @@ class UdpRbcuInfoHandler extends ScpMessageBaseHandle void _handleResultRbcuInfo(RbcuInfo rbcuInfo) { startChartManage.rbcuInfo = rbcuInfo; startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.startSendingRbcuProbeTMessages(); } } diff --git a/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart index 0f145cd4..39745372 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_accept_handler.dart @@ -40,6 +40,9 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle // 同意接听之后,停止对讲请求超时监听定时器 talkeRequestOverTimeTimerManager.renew(); talkeRequestOverTimeTimerManager.cancel(); + // 启动发送rbcuInfo数据 + startChartManage.startSendingRbcuInfoMessages( + ToPeerId: startChartManage.lockPeerId); } } diff --git a/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart index 4308fc3d..c5b6b7cd 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_data_handler.dart @@ -15,7 +15,9 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle factory UdpTalkDataHandler() { return _instance; } + UdpTalkDataHandler._internal(); + static final UdpTalkDataHandler _instance = UdpTalkDataHandler._internal(); int _recentRecvDataRate = 0; @@ -157,7 +159,7 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle final TalkDataH264Frame talkDataH264Frame = TalkDataH264Frame(); talkDataH264Frame.mergeFromBuffer(talkData.content); // AppLog.log('H264 TalkData :$talkDataH264Frame'); - talkDataRepository.addTalkData(talkData); + // talkDataRepository.addTalkData(talkData); } /// 处理图片数据 diff --git a/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart index 89d984d4..686b8bc3 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_hangup_handler.dart @@ -34,6 +34,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle talkDataOverTimeTimerManager.cancel(); EasyLoading.showToast('已挂断'.tr); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); Get.back(); } } @@ -49,6 +51,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override diff --git a/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart b/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart index b12cf70a..b1fbcb15 100644 --- a/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart +++ b/lib/talk/starChart/handle/impl/udp_talk_reject_handler.dart @@ -31,6 +31,8 @@ class UdpTalkRejectHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override @@ -43,6 +45,8 @@ class UdpTalkRejectHandler extends ScpMessageBaseHandle talkeRequestOverTimeTimerManager.cancel(); talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); + startChartManage.stopSendingRbcuInfoMessages(); + startChartManage.stopSendingRbcuProBeMessages(); } @override diff --git a/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart index 4223f441..3fe67456 100644 --- a/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_data_over_time_timer_manager.dart @@ -33,6 +33,8 @@ class TalkDataOverTimeTimerManager { StartChartManage().sendTalkHangupMessage(); StartChartManage().stopTalkPingMessageTimer(); StartChartManage().stopTalkExpectMessageTimer(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setNotTalkData(); talkStatus.setEnd(); AudioPlayerManager().stopRingtone(); diff --git a/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart b/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart index ac86f94b..4fa9b85a 100644 --- a/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart +++ b/lib/talk/starChart/handle/other/talke_ping_over_time_timer_manager.dart @@ -37,6 +37,8 @@ class TalkePingOverTimeTimerManager { StartChartManage().stopTalkExpectMessageTimer(); // 如果通话异常,则发送通话中挂断 StartChartManage().sendTalkHangupMessage(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setNotTalkPing(); talkStatus.setEnd(); Get.back(); 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 035b098a..2ec529f6 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 @@ -32,6 +32,8 @@ class TalkeRequestOverTimeTimerManager { EasyLoading.showToast('通话未接通,已挂断'.tr, duration: 2000.milliseconds); // 超时未接听,发送挂断请求 StartChartManage().sendTalkRejectMessage(); + StartChartManage().stopSendingRbcuInfoMessages(); + StartChartManage().stopSendingRbcuProBeMessages(); talkStatus.setInitializationCompleted(); Get.back(); } diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index 10a94cb8..75e11da7 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -314,9 +314,10 @@ class StartChartManage { ); } - final info = rbcuInfo = RbcuInfo(address: ['119.137.55.161:62289']); - if (info != null && info.address != null && info.address.length > 0) { - info.address.forEach((element) { + if (rbcuInfo != null && + rbcuInfo!.address != null && + rbcuInfo!.address.length > 0) { + rbcuInfo!.address.forEach((element) { // 拆分 element 字符串 final parts = element.split(':'); final host = parts[0]; // IP 地址 @@ -345,6 +346,7 @@ class StartChartManage { rbcuInfoTimer ??= Timer.periodic(Duration(seconds: _defaultIntervalTime), (timer) { // 发送RbcuInfo 地址交换消息 + _log(text: '发送RbcuInfo 地址交换消息'); _sendRbcuInfoMessage(ToPeerId: ToPeerId); }); } @@ -585,6 +587,8 @@ class StartChartManage { stopTalkExpectMessageTimer(); stopTalkPingMessageTimer(); stopCallRequestMessageTimer(); + stopSendingRbcuInfoMessages(); + stopSendingRbcuProBeMessages(); // 取消定时器 talkePingOverTimeTimerManager.cancel(); @@ -665,6 +669,8 @@ class StartChartManage { stopTalkExpectMessageTimer(); stopTalkPingMessageTimer(); stopCallRequestMessageTimer(); + stopSendingRbcuInfoMessages(); + stopSendingRbcuProBeMessages(); // 取消定时器 talkePingOverTimeTimerManager.cancel(); talkDataOverTimeTimerManager.cancel(); @@ -1101,7 +1107,7 @@ class StartChartManage { bluetoothDeviceName: bluetoothDeviceName, bleStructData: bleStructData, ); - await _sendMessage(message: message); + await _sendMessage(message: message); } /// 销毁资源 diff --git a/lib/talk/starChart/views/talkView/talk_view_page.dart b/lib/talk/starChart/views/talkView/talk_view_page.dart index f4c3bd23..2059d0ac 100644 --- a/lib/talk/starChart/views/talkView/talk_view_page.dart +++ b/lib/talk/starChart/views/talkView/talk_view_page.dart @@ -58,6 +58,7 @@ class _TalkViewPageState extends State // _latencyStream = measureServerLatencyStream(F.apiPrefix); // 替换为你的服务器地址 } + // // Stream measureServerLatencyStream(String url) async* { // while (true) { @@ -155,7 +156,7 @@ class _TalkViewPageState extends State ), Obx(() => state.listData.value.isEmpty ? Positioned( - bottom: 300.h, + bottom: 310.h, child: Text( '正在创建安全连接...'.tr, style: TextStyle(color: Colors.black, fontSize: 26.sp), @@ -509,13 +510,17 @@ class _TalkViewPageState extends State onLongPress: longPress, onLongPressUp: longPressUp, child: SizedBox( - height: 140.h, + height: 160.w, + width: 140.w, child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( width: wh, height: wh, + constraints: BoxConstraints( + minWidth: wh, + ), decoration: BoxDecoration( color: backgroundColor, borderRadius: BorderRadius.circular((wh + 10.w * 2) / 2), @@ -524,10 +529,11 @@ class _TalkViewPageState extends State child: Image.asset(iconUrl, fit: BoxFit.fitWidth), ), SizedBox(height: 20.w), - Expanded( - child: Text(name, - style: TextStyle(fontSize: 20.sp, color: Colors.white), - textAlign: TextAlign.center), + Text( + name, + style: TextStyle(fontSize: 20.sp, color: Colors.white), + textAlign: TextAlign.center, // 当文本超出指定行数时,使用省略号表示 + maxLines: 2, // 设置最大行数为1 ) ], ),