Merge remote-tracking branch 'origin/develop_liyi' into develop_liyi

This commit is contained in:
liyi 2024-12-17 16:52:11 +08:00
commit f421f59325
10 changed files with 38 additions and 21 deletions

Binary file not shown.

View File

@ -235,12 +235,6 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
}
}
: null)),
SubmitBtn(
btnName: '跳转至通话',
onClick: () {
Get.toNamed(Routers.lockMonitoringPage);
},
),
SizedBox(height: 50.w),
Row(
mainAxisAlignment: MainAxisAlignment.center,

View File

@ -16,18 +16,22 @@ class UdpHeartBeatHandler extends ScpMessageBaseHandle
@override
void handleResp(ScpMessage scpMessage) {
// TODO:
final HeartbeatResponse heartbeatResponse = scpMessage.Payload;
final statusCode = heartbeatResponse.statusCode;
if (statusCode != null &&
statusCode != PayloadTypeConstant.heartHeatSuccessResponse) {
// 线
//
startChartManage.stopHeartbeat();
// 线
startChartManage.isOnlineStartChartServer = false;
startChartManage.reStartOnlineStartChartServer();
} else {
//
startChartManage.heartbeatIntervalTime =
heartbeatResponse.nextPingTime ?? 1;
//
startChartManage.reStartHeartBeat();
}
startChartManage.heartbeatIntervalTime =
heartbeatResponse.nextPingTime ?? 1;
//
startChartManage.reStartHeartBeat();
}
@override

View File

@ -28,6 +28,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
if (checkGenericRespSuccess(genericResp)) {
//
_handleStartTalkPing();
// 2
Future.delayed(Duration(seconds: 2), () {
//
_handleStartSendTalkExpectDataRequest();
@ -37,6 +38,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
//
stopRingtone();
//
talkStatus.setAnsweredSuccessfully();
talkStatus.setDuringCall();
}
}

View File

@ -51,12 +51,14 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle
}
}
/// h264协议的数据
void _handleVideoH264(TalkData talkData) {
final List<int> content = talkData.content;
talkDataRepository.addTalkData(content);
talkDataRepository.addTalkData(talkData);
}
///
void _handleVideoImage(TalkData talkData) {}
/// g711音频数据
void _handleVideoG711(TalkData talkData) {}
}

View File

@ -22,6 +22,7 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle
//
startChartManage.stopTalkPingMessageTimer();
startChartManage.stopTalkExpectMessageTimer();
talkStatus.setHangingUpDuring();
talkStatus.setEnd();
stopRingtone();
}
@ -32,6 +33,7 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle
//
startChartManage.stopTalkPingMessageTimer();
startChartManage.stopTalkExpectMessageTimer();
talkStatus.setHangingUpDuring();
talkStatus.setEnd();
stopRingtone();
}

View File

@ -13,13 +13,13 @@ class TalkDataRepository {
static TalkDataRepository get instance => _instance;
// StreamController
final StreamController<List<int>> _talkDataStreamController = StreamController<List<int>>.broadcast();
final StreamController<TalkData> _talkDataStreamController = StreamController<TalkData>.broadcast();
// Stream
Stream<List<int>> get talkDataStream => _talkDataStreamController.stream;
Stream<TalkData> get talkDataStream => _talkDataStreamController.stream;
// TalkData Stream
void addTalkData(List<int> talkData) {
void addTalkData(TalkData talkData) {
_talkDataStreamController.add(talkData);
}

View File

@ -4,8 +4,10 @@ import 'package:star_lock/talk/startChart/events/talk_status_change_event.dart';
enum TalkStatus {
waitingAnswer, //
answeredSuccessfully, //
waitingData, //
duringCall, //
hangingUpDuring, //
rejected, //
uninitialized, //
initializationCompleted, //
@ -104,6 +106,16 @@ class StartChartTalkStatus {
// "error"
}
///
void setHangingUpDuring() {
_setStatus(TalkStatus.hangingUpDuring);
// "hangingUpDuring"
} ///
void setAnsweredSuccessfully() {
_setStatus(TalkStatus.answeredSuccessfully);
// "hangingUpDuring"
}
///
void setEnd() {
_setStatus(TalkStatus.end);

View File

@ -5,6 +5,7 @@ import 'package:flutter/services.dart' show ByteData, Uint8List, rootBundle;
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/talk/startChart/handle/other/talk_data_repository.dart';
import 'package:star_lock/talk/startChart/proto/talk_data.pbserver.dart';
import 'package:star_lock/tools/titleAppBar.dart';
import 'package:webview_flutter/webview_flutter.dart';
@ -70,15 +71,16 @@ class _H264WebViewState extends State<H264WebView> {
current++;
List<int> frameData = byteData.sublist(start, end);
if (frameData.length == 0) timer.cancel();
talkDataRepository.addTalkData(frameData);
talkDataRepository.addTalkData(TalkData(contentType: TalkData_ContentTypeE.H264,content: frameData));
start = end;
});
}
void _sendFramesToHtml() async {
//
talkDataRepository.talkDataStream.listen((event) async {
_buffer.addAll(event);
talkDataRepository.talkDataStream.listen((TalkData event) async {
_buffer.addAll(event.content);
});
// 800ms的数据
_sendTimer ??= Timer.periodic(

View File

@ -299,7 +299,6 @@ flutter:
- images/lockType/
- assets/
- assets/html/h264.html
- assets/talk.h264
- lan/
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware