From ca2766ffe0a8816182668f4ad867a808c0d9110c Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Sat, 1 Nov 2025 19:33:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96UI=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=E5=92=8C=E5=AF=BC=E8=88=AA=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AF=AD=E9=9F=B3=E6=9C=8D=E5=8A=A1=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整settings_view中的间距从50.h改为10.h - 修改meeting_record_view的导航逻辑,添加注释说明 - 在AzureAsrToAsr中添加语音合成器语言的日志 - 清理speech_factory中的多余空行和格式 - 调整translation_controller中的初始化顺序,注释掉部分ASR初始化代码 --- lib/data/services/speech_factory.dart | 13 ++------ .../meeting/views/meeting_record_view.dart | 3 +- lib/modules/settings/views/settings_view.dart | 2 +- .../controllers/translation_controller.dart | 30 ++++++++++++------- .../azure_speech/AzureAsrToAsr.kt | 1 + 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/lib/data/services/speech_factory.dart b/lib/data/services/speech_factory.dart index c8ed0cbbf..0d4568023 100644 --- a/lib/data/services/speech_factory.dart +++ b/lib/data/services/speech_factory.dart @@ -4,7 +4,6 @@ import 'tts_service.dart'; import 'speech_impl/azure_asr_service.dart'; import 'speech_impl/azure_tts_service.dart'; - import '../../core/utils/logger.dart'; /// 语音服务类型 @@ -14,7 +13,6 @@ enum SpeechServiceType { /// Flutter 本地语音服务 flutter, - } /// 语音服务工厂类 @@ -51,18 +49,13 @@ class SpeechFactory extends GetxService { Get.delete(force: true); } - - Get.lazyPut(() => AzureAsrService()); - Get.lazyPut(() => AzureTtsService()); - - - + Get.lazyPut(() => AzureAsrService()); + Get.lazyPut(() => AzureTtsService()); } /// 初始化语音服务 Future initialize({SpeechServiceType? initialType}) async { try { - // 注册服务 _registerServices(); @@ -96,4 +89,4 @@ class SpeechFactory extends GetxService { } return Get.find(); } -} \ No newline at end of file +} diff --git a/lib/modules/meeting/views/meeting_record_view.dart b/lib/modules/meeting/views/meeting_record_view.dart index 16bd712d9..d0128b749 100644 --- a/lib/modules/meeting/views/meeting_record_view.dart +++ b/lib/modules/meeting/views/meeting_record_view.dart @@ -422,7 +422,8 @@ class MeetingRecordView extends GetView { onPressed: () async { await controller.saveTitleChange(); await controller.saveRecording(); - Get.back(); + Get.back(); //关闭弹窗 + Get.back(); //回退到会议记录页面 }, style: ElevatedButton.styleFrom( backgroundColor: diff --git a/lib/modules/settings/views/settings_view.dart b/lib/modules/settings/views/settings_view.dart index 5a415ab5a..81a017434 100644 --- a/lib/modules/settings/views/settings_view.dart +++ b/lib/modules/settings/views/settings_view.dart @@ -46,7 +46,7 @@ class SettingsView extends GetView { _buildSystemSettingsSection(isDarkMode), SizedBox(height: 20.h), _buildAboutSection(isDarkMode), - SizedBox(height: 50.h), + SizedBox(height: 10.h), ], ), bottomNavigationBar: const CommonBottomNav(currentIndex: 2), diff --git a/lib/modules/translation/controllers/translation_controller.dart b/lib/modules/translation/controllers/translation_controller.dart index b8bfc125f..06935ede7 100644 --- a/lib/modules/translation/controllers/translation_controller.dart +++ b/lib/modules/translation/controllers/translation_controller.dart @@ -372,10 +372,6 @@ class TranslationController extends GetxController with WidgetsBindingObserver { _timerManager = RecordTimerController(); _historyManager = TranslationHistoryManager(); - // 初始化翻译模式,根据跳转参数 - final mode = Get.arguments?['translationId'] ?? 'simultaneous'; - changeTranslationMode(mode); - // 初始化悬浮窗管理器 _initFloatingWindowManager(); @@ -410,10 +406,22 @@ class TranslationController extends GetxController with WidgetsBindingObserver { // 初始化历史管理器 _historyManager.initialize(); + // 初始化翻译模式,根据跳转参数 + final mode = Get.arguments?['translationId'] ?? 'simultaneous'; + changeTranslationMode(mode); + // 监听应用生命周期:当应用切到后台/失焦时兜底重置 activeSpeaker WidgetsBinding.instance.addObserver(this); } + // @override + // void onReady() { + // super.onReady(); + // // 初始化翻译模式,根据跳转参数 + // final mode = Get.arguments?['translationId'] ?? 'simultaneous'; + // changeTranslationMode(mode); + // } + /// 预先检查权限 Future _preCheckPermissions() async { try { @@ -584,15 +592,15 @@ class TranslationController extends GetxController with WidgetsBindingObserver { sourceLanguageCode.value, targetLanguageCode.value ]; - Logger.info('初始化ASR服务,支持语言: $asrSupportedLanguages'); + Logger.info('2初始化ASR服务,支持语言: $asrSupportedLanguages'); - await _asrService.initialize(supportedLanguages: asrSupportedLanguages); + //await _asrService.initialize(supportedLanguages: asrSupportedLanguages); // 获取识别事件流 - var recognitionStream = await _asrService.recognizeCallback(); - _recognitionSubscription?.cancel(); - _recognitionSubscription = - recognitionStream.listen(_handleRecognitionEvent); + // var recognitionStream = await _asrService.recognizeCallback(); + // _recognitionSubscription?.cancel(); + // _recognitionSubscription = + // recognitionStream.listen(_handleRecognitionEvent); final bool storage = await _requestStoragePermission(); if (!storage) { @@ -618,7 +626,7 @@ class TranslationController extends GetxController with WidgetsBindingObserver { // 初始化 ASR 服务时,明确指定需要支持的语言 final List asrSupportedLanguages = [targetLanguageCode.value]; - Logger.info('初始化ASR服务,支持语言: $asrSupportedLanguages'); + Logger.info('1初始化ASR服务,支持语言: $asrSupportedLanguages'); await _asrService.initialize(supportedLanguages: asrSupportedLanguages); diff --git a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrToAsr.kt b/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrToAsr.kt index 9a7c42fc4..b8e5e3056 100644 --- a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrToAsr.kt +++ b/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrToAsr.kt @@ -241,6 +241,7 @@ class IntegratedSpeechTranslationService( SpeechConfig.fromSubscription(config.subscriptionKey, config.region).apply { speechRecognitionLanguage = serviceConfig.sourceLanguage setSpeechSynthesisVoiceName(getVoiceForLanguage(serviceConfig.targetLanguage)) + Log.d(TAG, "设置语音合成器语言: ${serviceConfig.targetLanguage}") setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff16Khz16BitMonoPcm) // 优化配置