From fdd4461f90a07bce992cdb645cbcfb3e2819f88a Mon Sep 17 00:00:00 2001 From: liyi Date: Tue, 17 Dec 2024 09:17:50 +0800 Subject: [PATCH] =?UTF-8?q?style:=E8=B0=83=E6=95=B4=E6=B5=81=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=99=A8=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../startChart/handle/impl/udp_talk_data_handler.dart | 3 +-- .../startChart/handle/other/talk_data_repository.dart | 6 +++--- lib/talk/startChart/webView/h264_web_view.dart | 8 +++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/talk/startChart/handle/impl/udp_talk_data_handler.dart b/lib/talk/startChart/handle/impl/udp_talk_data_handler.dart index a4156123..3e172271 100644 --- a/lib/talk/startChart/handle/impl/udp_talk_data_handler.dart +++ b/lib/talk/startChart/handle/impl/udp_talk_data_handler.dart @@ -53,8 +53,7 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle /// 处理h264协议的数据 void _handleVideoH264(TalkData talkData) { - final List content = talkData.content; - talkDataRepository.addTalkData(content); + talkDataRepository.addTalkData(talkData); } /// 处理图片数据 diff --git a/lib/talk/startChart/handle/other/talk_data_repository.dart b/lib/talk/startChart/handle/other/talk_data_repository.dart index c84d58b1..a86382c7 100644 --- a/lib/talk/startChart/handle/other/talk_data_repository.dart +++ b/lib/talk/startChart/handle/other/talk_data_repository.dart @@ -13,13 +13,13 @@ class TalkDataRepository { static TalkDataRepository get instance => _instance; // 创建一个 StreamController - final StreamController> _talkDataStreamController = StreamController>.broadcast(); + final StreamController _talkDataStreamController = StreamController.broadcast(); // 提供一个方法来获取 Stream - Stream> get talkDataStream => _talkDataStreamController.stream; + Stream get talkDataStream => _talkDataStreamController.stream; // 提供一个方法来添加 TalkData 到 Stream - void addTalkData(List talkData) { + void addTalkData(TalkData talkData) { _talkDataStreamController.add(talkData); } diff --git a/lib/talk/startChart/webView/h264_web_view.dart b/lib/talk/startChart/webView/h264_web_view.dart index a38e9bef..963a33c5 100644 --- a/lib/talk/startChart/webView/h264_web_view.dart +++ b/lib/talk/startChart/webView/h264_web_view.dart @@ -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 { current++; List 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(