fix:补充测试代码

This commit is contained in:
liyi 2024-12-25 09:41:46 +08:00
parent 0f65751f48
commit cdbd0c3d03
5 changed files with 105 additions and 54 deletions

View File

@ -22,6 +22,9 @@ class StarChartLogic extends BaseGetXController {
/// Talk发送的状态 /// Talk发送的状态
StreamSubscription? _getTalkStatusRefreshUIEvent; StreamSubscription? _getTalkStatusRefreshUIEvent;
int startTime = DateTime.now().millisecondsSinceEpoch;
@override @override
void onReady() { void onReady() {
super.onReady(); super.onReady();
@ -73,6 +76,22 @@ class StarChartLogic extends BaseGetXController {
}); });
} }
void syncPlay() {
int currentTime = DateTime.now().millisecondsSinceEpoch - startTime;
//
// while (audioBuffer.isNotEmpty && audioBuffer.first.durationMs <= currentTime) {
// TalkData audioData = audioBuffer.removeAt(0);
// playAudio(audioData.content);
// }
//
// //
// while (videoBuffer.isNotEmpty && videoBuffer.first.durationMs <= currentTime) {
// TalkData videoData = videoBuffer.removeAt(0);
// playVideo(videoData.content);
// }
}
/// ///
Future<void> _playG711Data(List<int> pcmData) async { Future<void> _playG711Data(List<int> pcmData) async {
// PCM PcmArrayInt16 // PCM PcmArrayInt16

View File

@ -38,7 +38,7 @@ class _StarChartPageState extends State<StarChartPage> {
super.initState(); super.initState();
initAsync(); initAsync();
_getTVDataRefreshUIAction(); // _getTVDataRefreshUIAction();
} }
Future<void> initAsync() async { Future<void> initAsync() async {
@ -265,52 +265,52 @@ class _StarChartPageState extends State<StarChartPage> {
} }
} }
void _getTVDataRefreshUIAction() { // void _getTVDataRefreshUIAction() {
// state.getTVDataRefreshUIEvent = eventBus // // state.getTVDataRefreshUIEvent = eventBus
// .on<GetTVDataRefreshUI>() // // .on<GetTVDataRefreshUI>()
// .listen((GetTVDataRefreshUI event) async { // // .listen((GetTVDataRefreshUI event) async {
// if (event.tvList.isNotEmpty && event.tvList.length > 100) { // // if (event.tvList.isNotEmpty && event.tvList.length > 100) {
// final Uint8List imageData = Uint8List.fromList(event.tvList); // // final Uint8List imageData = Uint8List.fromList(event.tvList);
// if (!listEquals(state.listPhotoData.value, imageData)) { // // if (!listEquals(state.listPhotoData.value, imageData)) {
// state.listPhotoData.value = imageData; // // state.listPhotoData.value = imageData;
// state.shouldUpdateUI.value = true; // // state.shouldUpdateUI.value = true;
// if (state.shouldUpdateUI.value) { // // if (state.shouldUpdateUI.value) {
// setState(() {}); // // setState(() {});
// state.shouldUpdateUI.value = false; // // state.shouldUpdateUI.value = false;
// } // // }
// } // // }
// } // // }
// }); // // });
state.talkDataRepository.talkDataStream.listen((talkData) { // state.talkDataRepository.talkDataStream.listen((talkData) {
final contentType = talkData.contentType; // final contentType = talkData.contentType;
// // //
switch (contentType) { // switch (contentType) {
case TalkData_ContentTypeE.Image: // case TalkData_ContentTypeE.Image:
state.listPhotoData.value = Uint8List.fromList(talkData.content); // state.listPhotoData.value = Uint8List.fromList(talkData.content);
if (talkData.content.isNotEmpty && talkData.content.length > 100) { // if (talkData.content.isNotEmpty && talkData.content.length > 100) {
// // //
final Uint8List imageData = Uint8List.fromList(talkData.content); // final Uint8List imageData = Uint8List.fromList(talkData.content);
if (!listEquals(state.listPhotoData.value, imageData)) { // if (!listEquals(state.listPhotoData.value, imageData)) {
// // //
state.listPhotoData.value = imageData; // state.listPhotoData.value = imageData;
// trueUI // // trueUI
state.shouldUpdateUI.value = true; // state.shouldUpdateUI.value = true;
// WidgetsBinding.instance.addPostFrameCallback((_) { // // WidgetsBinding.instance.addPostFrameCallback((_) {
// setState方法之前检查标志true时才更新UI // // setState方法之前检查标志true时才更新UI
if (state.shouldUpdateUI.value) { // if (state.shouldUpdateUI.value) {
setState(() { // setState(() {
// UI // // UI
}); // });
// UI后将标志重新设置为false // // UI后将标志重新设置为false
state.shouldUpdateUI.value = false; // state.shouldUpdateUI.value = false;
} // }
// }); // // });
} // }
} // }
break; // break;
} // }
}); // });
} // }
@override @override
void dispose() { void dispose() {

View File

@ -30,11 +30,20 @@ class UdpTalkDataHandler extends ScpMessageBaseHandle
talkDataOverTimeTimerManager.receiveMessage(); talkDataOverTimeTimerManager.receiveMessage();
if (scpMessage.Payload != null) { if (scpMessage.Payload != null) {
final TalkData talkData = scpMessage.Payload; final TalkData talkData = scpMessage.Payload;
print('talkData: ${listToHexString(talkData.content)}');
// //
_handleTalkData(talkData: talkData); _handleTalkData(talkData: talkData);
} }
} }
String listToHexString(List<int> intList) {
//
List<String> hexList = intList.map((num) => num.toRadixString(16)).toList();
//
return hexList.join('');
}
void _handleTalkData({required TalkData talkData}) { void _handleTalkData({required TalkData talkData}) {
if (talkData == null) return; if (talkData == null) return;
final contentType = talkData.contentType; final contentType = talkData.contentType;

View File

@ -115,12 +115,13 @@ class ScpMessageBaseHandle {
final TalkData talkData = TalkData(); final TalkData talkData = TalkData();
talkData.mergeFromBuffer(completePayload); talkData.mergeFromBuffer(completePayload);
return talkData; return talkData;
} else if (payloadType == PayloadTypeConstant.echoTest) {
return completePayload;
} else {
String payload = utf8.decode(completePayload);
return payload;
} }
// if (payloadType == PayloadTypeConstant.echoTest) {
// return completePayload;
// } else {
// String payload = utf8.decode(completePayload);
// return payload;
// }
} else { } else {
// null // null
return null; return null;

View File

@ -330,6 +330,14 @@ class StartChartManage {
// //
void sendTalkAcceptMessage() async { void sendTalkAcceptMessage() async {
if (talkStatus.status == TalkStatus.duringCall) {
_log(text: '已经在通话中,请勿重复发送同意接听消息');
return;
}
if (talkStatus.status != TalkStatus.waitingAnswer) {
_log(text: '当前未处于等待接听状态, 无法发送同意接听消息');
return;
}
final message = MessageCommand.talkAcceptMessage( final message = MessageCommand.talkAcceptMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
@ -341,6 +349,10 @@ class StartChartManage {
// //
void sendTalkRejectMessage() async { void sendTalkRejectMessage() async {
if (talkStatus.status != TalkStatus.waitingAnswer) {
_log(text: '当前未处于等待接听状态, 无法发送拒绝接听消息');
return;
}
final message = MessageCommand.talkRejectMessage( final message = MessageCommand.talkRejectMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
@ -351,6 +363,10 @@ class StartChartManage {
// //
void sendTalkExpectMessage({required TalkExpect talkExpect}) async { void sendTalkExpectMessage({required TalkExpect talkExpect}) async {
if (talkStatus.status != TalkStatus.duringCall) {
_log(text: '当前未处于接听状态, 无法发送期望接受数据消息');
return;
}
final message = MessageCommand.talkExpectMessage( final message = MessageCommand.talkExpectMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
@ -391,6 +407,10 @@ class StartChartManage {
// //
Future<void> sendTalkPingMessage( Future<void> sendTalkPingMessage(
{required String ToPeerId, required String FromPeerId}) async { {required String ToPeerId, required String FromPeerId}) async {
if (talkStatus.status != TalkStatus.duringCall) {
_log(text: '当前未处于接听状态, 无法发送通话保持消息');
return;
}
final message = MessageCommand.talkPingMessage( final message = MessageCommand.talkPingMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
@ -401,6 +421,10 @@ class StartChartManage {
// //
Future<void> sendTalkHangupMessage() async { Future<void> sendTalkHangupMessage() async {
if (talkStatus.status != TalkStatus.duringCall) {
_log(text: '当前未处于接听状态, 无法发送通话中挂断消息');
return;
}
final message = MessageCommand.talkHangupMessage( final message = MessageCommand.talkHangupMessage(
ToPeerId: ToPeerId, ToPeerId: ToPeerId,
FromPeerId: FromPeerId, FromPeerId: FromPeerId,
@ -475,7 +499,6 @@ class StartChartManage {
StarChartRegisterNodeEntity starChartRegisterNodeEntity) async { StarChartRegisterNodeEntity starChartRegisterNodeEntity) async {
if (starChartRegisterNodeEntity != null) { if (starChartRegisterNodeEntity != null) {
await Storage.saveStarChartRegisterNodeInfo(starChartRegisterNodeEntity); await Storage.saveStarChartRegisterNodeInfo(starChartRegisterNodeEntity);
_log(text: '注册成功');
} }
} }
@ -764,7 +787,6 @@ class StartChartManage {
if (deserialize.Payload != null) { if (deserialize.Payload != null) {
_log(text: 'Udp收到结构体数据---》$deserialize'); _log(text: 'Udp收到结构体数据---》$deserialize');
} }
// _log(text: 'text---》${utf8.decode(deserialize.Payload)}'); // _log(text: 'text---》${utf8.decode(deserialize.Payload)}');
} }
} }