import 'package:audioplayers/audioplayers.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/talk/other/audio_player_manager.dart'; import 'package:star_lock/talk/startChart/constant/udp_constant.dart'; import 'package:star_lock/talk/startChart/entity/scp_message.dart'; import 'package:star_lock/talk/startChart/handle/other/overtime_timer_manger.dart'; import 'package:star_lock/talk/startChart/handle/other/talk_data_repository.dart'; import 'package:star_lock/talk/startChart/proto/generic.pb.dart'; import 'package:star_lock/talk/startChart/start_chart_manage.dart'; import 'package:star_lock/talk/startChart/start_chart_talk_status.dart'; class ScpMessageBaseHandle { final startChartManage = StartChartManage(); // 通话数据流的单例流数据处理类 final TalkDataRepository talkDataRepository = TalkDataRepository.instance; final audioManager = AudioPlayerManager(); // 通话保持超时监听定时器管理 final talkePingOverTimeTimerManager = OverTimeTimerManager( timeoutInSeconds: 5, ); // 通话数据超时定时器 final talkDataOverTimeTimerManager = OverTimeTimerManager( timeoutInSeconds: 3, ); // 回复成功消息 void replySuccessMessage(ScpMessage scpMessage){ startChartManage.sendGenericRespSuccessMessage( ToPeerId: scpMessage.FromPeerId!, FromPeerId: scpMessage.ToPeerId!, PayloadType: scpMessage.PayloadType!, ); } // 获取 StartChartTalkStatus 的唯一实例 StartChartTalkStatus talkStatus = StartChartTalkStatus.instance; bool checkGenericRespSuccess(GenericResp genericResp) { if (genericResp == null) return false; final code = genericResp.code; final message = genericResp.message; return code == UdpConstant.genericRespSuccessCode && message == UdpConstant.genericRespSuccessMsg; } void log({required String text}) { AppLog.log('==========${text}'); } // 播放铃声 void playRingtone() async { await audioManager.playRingtone(); } // 停止播放铃声 void stopRingtone() async { await audioManager.stopRingtone(); } }