From 749b79f2b109cd4d7b6095b22e5d97ab768b774c Mon Sep 17 00:00:00 2001 From: sky_min Date: Tue, 11 Nov 2025 18:00:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91=E5=AF=B9?= =?UTF-8?q?=E8=AE=B2=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_logic.dart | 3 +++ lib/talk/other/audio_player_manager.dart | 22 +++++++++++++++++++ .../native/talk_view_native_decode_page.dart | 3 +++ 3 files changed, 28 insertions(+) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 27089bfd..9ceff7d1 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -39,6 +39,7 @@ import '../../../blue/io_tool/io_tool.dart'; import '../../../blue/io_tool/manager_event_bus.dart'; import '../../../blue/sender_manage.dart'; import '../../../network/api_repository.dart'; +import '../../../talk/other/audio_player_manager.dart'; import '../../../tools/baseGetXController.dart'; import '../../../tools/commonDataManage.dart'; import '../../../tools/dateTool.dart'; @@ -848,6 +849,8 @@ class LockDetailLogic extends BaseGetXController { showToast('设备未配网'.tr); return; } + // 启动监控时禁用铃声 + AudioPlayerManager().disableRingtone(); // 重置丢包率监控 // PacketLossStatistics().reset(); // 发送监控id diff --git a/lib/talk/other/audio_player_manager.dart b/lib/talk/other/audio_player_manager.dart index d49db782..1a4aa75f 100644 --- a/lib/talk/other/audio_player_manager.dart +++ b/lib/talk/other/audio_player_manager.dart @@ -8,6 +8,23 @@ class AudioPlayerManager { // 私有构造函数,防止外部创建实例 AudioPlayerManager._(); + static bool _ringtoneEnabled = true; + + // 禁用铃声 + void disableRingtone() { + _ringtoneEnabled = false; + } + + // 启用铃声 + void enableRingtone() { + _ringtoneEnabled = true; + } + + // 检查铃声是否启用 + bool isRingtoneEnabled() { + return _ringtoneEnabled; + } + // 静态变量保存单例对象 static final AudioPlayerManager _instance = AudioPlayerManager._(); @@ -21,6 +38,11 @@ class AudioPlayerManager { // 播放铃声 Future playRingtone() async { + // 检查铃声是否被启用 + if (!isRingtoneEnabled()) { + log(text: 'Ringtone is disabled, skipping playback.'); + return; + } if (_isPlaying) { log(text: 'Ringtone is already playing.'); return; diff --git a/lib/talk/starChart/views/native/talk_view_native_decode_page.dart b/lib/talk/starChart/views/native/talk_view_native_decode_page.dart index 088340df..cd7a137d 100644 --- a/lib/talk/starChart/views/native/talk_view_native_decode_page.dart +++ b/lib/talk/starChart/views/native/talk_view_native_decode_page.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; @@ -23,6 +24,7 @@ import 'package:star_lock/talk/starChart/views/talkView/talk_view_state.dart'; import 'package:video_decode_plugin/video_decode_plugin.dart'; import '../../../../app_settings/app_colors.dart'; +import '../../../../app_settings/app_settings.dart'; import '../../../../tools/showTFView.dart'; class TalkViewNativeDecodePage extends StatefulWidget { @@ -408,6 +410,7 @@ class _TalkViewNativeDecodePageState extends State wit return '接听'.tr; case TalkStatus.proactivelyCallWaitingAnswer: case TalkStatus.answeredSuccessfully: + case TalkStatus.hangingUpDuring: return '长按说话'.tr; default: return '接听'.tr;