fix:调整对讲流程逻辑,增加对讲请求超时时间为30秒
This commit is contained in:
parent
8b61e3d5a6
commit
65c82a34ab
@ -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;
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
/// 停止持续发送对讲请求
|
||||
|
||||
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user