From 5ed99e63215f5674a100afd3dc3604fdd29a3d4e Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Wed, 3 Dec 2025 14:29:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A3=B0=E9=9F=B3=E5=A4=8D?= =?UTF-8?q?=E5=88=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../voice_replication_controller.dart | 31 +++++++++++++++++++ .../views/voice_replication_view.dart | 6 ++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/modules/voice_replication/controllers/voice_replication_controller.dart b/lib/modules/voice_replication/controllers/voice_replication_controller.dart index 7a44eec0e..021ba01f0 100644 --- a/lib/modules/voice_replication/controllers/voice_replication_controller.dart +++ b/lib/modules/voice_replication/controllers/voice_replication_controller.dart @@ -1,5 +1,36 @@ import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:record/record.dart'; class VoiceReplicationController extends GetxController { + final GetStorage _storage = GetStorage(); + final _record = AudioRecorder(); + + RxBool isReplicating = false.obs; + RxString speakerProfileId = ''.obs; + + @override + void onInit() { + super.onInit(); + _getDefaultData(); + } + + @override + void onClose() { + _record.dispose(); + super.onClose(); + } + + void _getDefaultData() { + isReplicating.value = _storage.read('open_voice_replication') ?? false; + speakerProfileId.value = _storage.read('speakerProfileId') ?? ''; + } + + void switchChange(bool value) { + isReplicating.value = value; + if (speakerProfileId.value.isNotEmpty) { + _storage.write('open_voice_replication', value); + } + } } diff --git a/lib/modules/voice_replication/views/voice_replication_view.dart b/lib/modules/voice_replication/views/voice_replication_view.dart index db12c694b..f861c73be 100644 --- a/lib/modules/voice_replication/views/voice_replication_view.dart +++ b/lib/modules/voice_replication/views/voice_replication_view.dart @@ -129,10 +129,8 @@ class VoiceReplicationView extends GetView { ), Obx( () => Switch( - value: controller.speakerProfileId.value.isNotEmpty, - onChanged: (bool value) { - controller.speakerProfileId.value = value ? '0' : ''; - }, + value: controller.isReplicating.value, + onChanged: controller.switchChange, ), ), ],