style:调整流控制器数据类型
This commit is contained in:
parent
1bafcd535a
commit
fdd4461f90
@ -53,8 +53,7 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle
|
||||
|
||||
/// 处理h264协议的数据
|
||||
void _handleVideoH264(TalkData talkData) {
|
||||
final List<int> content = talkData.content;
|
||||
talkDataRepository.addTalkData(content);
|
||||
talkDataRepository.addTalkData(talkData);
|
||||
}
|
||||
|
||||
/// 处理图片数据
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user