import 'dart:typed_data'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:star_lock/talk/startChart/entity/scp_message.dart'; import 'package:star_lock/talk/startChart/handle/scp_message_base_handle.dart'; import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart'; import 'package:star_lock/talk/startChart/proto/gateway_reset.pb.dart'; import 'package:star_lock/talk/startChart/proto/generic.pb.dart'; import 'package:star_lock/talk/startChart/proto/talk_data.pb.dart'; import 'package:star_lock/talk/startChart/proto/talk_data.pbserver.dart'; class UdpTalkDataHandler extends ScpMessageBaseHandle implements ScpMessageHandler { @override void handleReq(ScpMessage scpMessage) {} @override void handleResp(ScpMessage scpMessage) {} @override void handleInvalidReq(ScpMessage scpMessage) {} @override void handleRealTimeData(ScpMessage scpMessage) { if (scpMessage.Payload != null) { final TalkData talkData = scpMessage.Payload; // 处理音视频数据 _handleTalkData(talkData: talkData); // 收到数据后调用更新,防止定时器超时 talkDataOverTimeTimerManager.receiveMessage(); } } void _handleTalkData({required TalkData talkData}) { if (talkData == null) return; final contentType = talkData.contentType; switch (contentType) { case TalkData_ContentTypeE.H264: _handleVideoH264(talkData); break; case TalkData_ContentTypeE.Image: _handleVideoImage(talkData); break; case TalkData_ContentTypeE.G711: _handleVideoG711(talkData); break; default: print('❌未知的TalkData--->contentType类型'); break; } } /// 处理h264协议的数据 void _handleVideoH264(TalkData talkData) { // talkDataRepository.addTalkData(talkData); } /// 处理图片数据 void _handleVideoImage(TalkData talkData) {} /// 处理g711音频数据 void _handleVideoG711(TalkData talkData) {} }