This commit is contained in:
魏少阳 2024-04-01 16:22:04 +08:00
commit 88d3be381c
2 changed files with 23 additions and 23 deletions

View File

@ -1,4 +1,3 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
@ -12,7 +11,10 @@ class UDPManage{
UDPManage._init() { UDPManage._init() {
initUdp(); initUdp();
_streamSubscription = EventBusManager().eventBus!.on<EventSendModel>().listen((EventSendModel sendModel) { _streamSubscription = EventBusManager()
.eventBus!
.on<EventSendModel>()
.listen((EventSendModel sendModel) {
// print("sendModel.sendChannel:${sendModel.sendChannel}"); // print("sendModel.sendChannel:${sendModel.sendChannel}");
if (sendModel.sendChannel == DataChannel.udp) { if (sendModel.sendChannel == DataChannel.udp) {
List<int> data = sendModel.data; List<int> data = sendModel.data;
@ -25,6 +27,7 @@ class UDPManage{
_manager ??= UDPManage._init(); _manager ??= UDPManage._init();
return _manager!; return _manager!;
} }
factory UDPManage() => _share(); factory UDPManage() => _share();
UDPManage get manager => _share(); UDPManage get manager => _share();
@ -56,15 +59,16 @@ class UDPManage{
print('Udp ----> host:$host port:$port'); print('Udp ----> host:$host port:$port');
var addressIListenFrom = InternetAddress.anyIPv4; var addressIListenFrom = InternetAddress.anyIPv4;
int portIListenOn = 62288; int portIListenOn = 62288;
RawDatagramSocket.bind(addressIListenFrom, portIListenOn).then((RawDatagramSocket socket){ RawDatagramSocket.bind(addressIListenFrom, portIListenOn)
.then((RawDatagramSocket socket) {
_udpSocket = socket; _udpSocket = socket;
///广 ///广
_udpSocket!.broadcastEnabled = true; _udpSocket!.broadcastEnabled = true;
_onReceiveData(socket); _onReceiveData(socket);
}); });
} }
void _onReceiveData(RawDatagramSocket socket) { void _onReceiveData(RawDatagramSocket socket) {
socket.listen((RawSocketEvent event) { socket.listen((RawSocketEvent event) {
if (event == RawSocketEvent.read) { if (event == RawSocketEvent.read) {
@ -90,14 +94,12 @@ class UDPManage{
} }
try { try {
// print("sendData:$data"); // print("sendData:$data");
var result = _udpSocket?.send(data, InternetAddress(host!), port!); var result = _udpSocket?.send(data, InternetAddress(host), port);
if (result != data.length) { if (result != data.length) {
print('❌Udp ----> send data $result ${data.length}'); print('❌Udp ----> send data $result ${data.length}');
_udpSocket = null; _udpSocket = null;
} }
}catch (e){ } catch (e) {}
}
} }
bool exit() { bool exit() {
@ -108,9 +110,7 @@ class UDPManage{
return true; return true;
} }
void disposed() { void disposed() {
_streamSubscription?.cancel(); _streamSubscription?.cancel();
} }
} }

View File

@ -33,8 +33,7 @@ class UDPTalkClass {
var isEndCall = false; // var isEndCall = false; //
final audioPlayer = AudioPlayer(); final audioPlayer = AudioPlayer();
var playLocalAudioSecond = 0; var playLocalAudioSecond = 0;
Timer playLocalAudioTimer = late Timer playLocalAudioTimer;
Timer.periodic(const Duration(seconds: 1), (timer) {});
beCallW({List<int>? data, String? ip, int? port}) async { beCallW({List<int>? data, String? ip, int? port}) async {
print("beCall status:$status"); print("beCall status:$status");
@ -92,6 +91,7 @@ class UDPTalkClass {
// 60 // 60
if (playLocalAudioSecond >= 60) { if (playLocalAudioSecond >= 60) {
playLocalAudioTimer.cancel(); // playLocalAudioTimer.cancel(); //
playLocalAudioSecond = 0;
// LockMonitoringLogic().initiateUdpHangUpAction(5); // LockMonitoringLogic().initiateUdpHangUpAction(5);
callNoAnswer(4); callNoAnswer(4);
} }