视频对讲和监控优化

This commit is contained in:
sky_min 2025-12-10 17:48:03 +08:00
parent 3224fd342a
commit aae65dbfad
6 changed files with 35 additions and 19 deletions

View File

@ -926,8 +926,8 @@ class LockDetailLogic extends BaseGetXController {
} }
// //
// PacketLossStatistics().reset(); // PacketLossStatistics().reset();
// id // id -
StartChartManage().startCallRequestMessageTimer(ToPeerId: network!.peerId ?? ''); StartChartManage().startCallRequestMessageTimer(ToPeerId: network!.peerId ?? '', isMonitoring: true);
} else { } else {
showToast('猫眼设置为省电模式时无法进行监控,请在猫眼设置中切换为其他模式'.tr); showToast('猫眼设置为省电模式时无法进行监控,请在猫眼设置中切换为其他模式'.tr);
} }

View File

@ -37,6 +37,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle
startChartManage.stopSendingRbcuInfoMessages(); startChartManage.stopSendingRbcuInfoMessages();
startChartManage.stopSendingRbcuProBeMessages(); startChartManage.stopSendingRbcuProBeMessages();
startChartManage.stopTalkHangupMessageTimer(); startChartManage.stopTalkHangupMessageTimer();
//
talkStatus.setEnd();
Get.back(); Get.back();
} }
} }
@ -55,6 +57,8 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle
startChartManage.stopSendingRbcuInfoMessages(); startChartManage.stopSendingRbcuInfoMessages();
startChartManage.stopSendingRbcuProBeMessages(); startChartManage.stopSendingRbcuProBeMessages();
startChartManage.stopTalkHangupMessageTimer(); startChartManage.stopTalkHangupMessageTimer();
//
talkStatus.setEnd();
} }
@override @override

View File

@ -433,7 +433,10 @@ class StartChartManage {
} }
/// ///
void startCallRequestMessageTimer({required String ToPeerId}) async { void startCallRequestMessageTimer({required String ToPeerId, bool isMonitoring = false}) async {
// ToPeerId为当前要连接的锁的peerId
this.ToPeerId = ToPeerId;
this.lockPeerId = ToPeerId;
// //
// if (talkStatus.status != TalkStatus.proactivelyCallWaitingAnswer) { // if (talkStatus.status != TalkStatus.proactivelyCallWaitingAnswer) {
// // h264则跳转至webview // // h264则跳转至webview
@ -477,9 +480,12 @@ class StartChartManage {
await sendCallRequestMessage(ToPeerId: ToPeerId); await sendCallRequestMessage(ToPeerId: ToPeerId);
}, },
); );
talkStatus.setProactivelyCallWaitingAnswer(); //
// if (!isMonitoring) {
talkeRequestOverTimeTimerManager.start(); talkStatus.setProactivelyCallWaitingAnswer();
//
talkeRequestOverTimeTimerManager.start();
}
} }
/// ///
@ -730,19 +736,19 @@ class StartChartManage {
// _log(text: '发送通话保持'); // _log(text: '发送通话保持');
} }
void _sendTalkHangupMessage() async { Future<void> _sendTalkHangupMessage() async {
final message = MessageCommand.talkHangupMessage( final message = MessageCommand.talkHangupMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
MessageId: MessageCommand.getNextMessageId(ToPeerId, increment: true), MessageId: MessageCommand.getNextMessageId(ToPeerId, increment: true),
); );
// try { try {
// await _sendMessage(message: message); await _sendMessage(message: message);
// } catch (e) { } catch (e) {
// // //
// AppLog.log('发送挂断消息失败: $e'); AppLog.log('发送挂断消息失败: $e');
// // //
// } }
} }
// //
@ -751,7 +757,7 @@ class StartChartManage {
talkHangupTimer ??= Timer.periodic( talkHangupTimer ??= Timer.periodic(
Duration(seconds: _defaultIntervalTime), Duration(seconds: _defaultIntervalTime),
(Timer timer) async { (Timer timer) async {
_sendTalkHangupMessage(); await _sendTalkHangupMessage();
}, },
); );
@ -1250,7 +1256,7 @@ class StartChartManage {
final message = MessageCommand.bleMessage( final message = MessageCommand.bleMessage(
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
ToPeerId: lockPeerId, ToPeerId: lockPeerId,
MessageId: MessageCommand.getNextMessageId(ToPeerId, increment: true), MessageId: MessageCommand.getNextMessageId(lockPeerId, increment: true),
bluetoothDeviceName: bluetoothDeviceName, bluetoothDeviceName: bluetoothDeviceName,
bleStructData: bleStructData, bleStructData: bleStructData,
); );
@ -1265,6 +1271,9 @@ class StartChartManage {
status == TalkStatus.proactivelyCallWaitingAnswer || status == TalkStatus.proactivelyCallWaitingAnswer ||
status == TalkStatus.answeredSuccessfully || status == TalkStatus.answeredSuccessfully ||
status == TalkStatus.uninitialized) { status == TalkStatus.uninitialized) {
//
await _sendTalkHangupMessage();
//
startTalkRejectMessageTimer(); startTalkRejectMessageTimer();
startTalkHangupMessageTimer(); startTalkHangupMessageTimer();
await Future.delayed(Duration(seconds: 1)); await Future.delayed(Duration(seconds: 1));

View File

@ -83,6 +83,9 @@ class ImageTransmissionLogic extends BaseGetXController {
// //
StartChartManage().startTalkRejectMessageTimer(); StartChartManage().startTalkRejectMessageTimer();
} }
//
await Future.delayed(Duration(milliseconds: 500));
StartChartManage().destruction();
Get.back(); Get.back();
} }

View File

@ -410,7 +410,7 @@ class _TalkViewNativeDecodePageState extends State<TalkViewNativeDecodePage> wit
case TalkStatus.proactivelyCallWaitingAnswer: case TalkStatus.proactivelyCallWaitingAnswer:
return 'images/main/icon_lockDetail_monitoringUnTalkback.png'; return 'images/main/icon_lockDetail_monitoringUnTalkback.png';
default: default:
return 'images/main/icon_lockDetail_monitoringAnswerCalls.png'; return 'images/main/icon_lockDetail_monitoringUnTalkback.png';
} }
} }
@ -427,7 +427,7 @@ class _TalkViewNativeDecodePageState extends State<TalkViewNativeDecodePage> wit
case TalkStatus.hangingUpDuring: case TalkStatus.hangingUpDuring:
return '长按说话'.tr; return '长按说话'.tr;
default: default:
return '接听'.tr; return '长按说话'.tr;
} }
} }

View File

@ -41,7 +41,7 @@ class TalkViewNativeDecodeState {
TextEditingController passwordTF = TextEditingController(); TextEditingController passwordTF = TextEditingController();
RxList<int> listAudioData = <int>[].obs; // RxList<int> listAudioData = <int>[].obs; //
GlobalKey globalKey = GlobalKey(); final GlobalKey globalKey = GlobalKey();
Timer? oneMinuteTimeTimer; // 60 Timer? oneMinuteTimeTimer; // 60
RxInt oneMinuteTime = 0.obs; // RxInt oneMinuteTime = 0.obs; //