Browse Source

修复指令启动翻译开始

newdev_shunjiawei
liwei1dao 6 months ago
parent
commit
2b70b7dd72
  1. 15
      lib/modules/translation/controllers/translation_controller.dart

15
lib/modules/translation/controllers/translation_controller.dart

@ -133,6 +133,7 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
final appDocDir = getApplicationDocumentsDirectory();
var appDir;
var dir;
late Future<void> _initServicesFuture;
// ==================== 管理器 ====================
late final RecordTimerController _timerManager;
@ -565,7 +566,7 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
loadTranslationHistory();
// 初始化服务
_initServices();
_initServicesFuture = _initServices();
// 初始化历史管理器
_historyManager.initialize();
@ -595,8 +596,8 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
if (currentMode.value != 'call') {
await changeTranslationMode('call');
}
if (!isRecording.value) {
await startRecording();
if (!isRecognizing.value) {
await startRecognition();
}
} else {
await stopAll();
@ -612,8 +613,10 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
Logger.info('[CALL_TRANS_CMD] 检测到 autoStart=true, 进入通话翻译并自启动');
Future.microtask(() async {
try {
if (!isRecording.value) {
await startRecording();
// 等待服务初始化完成(含 AST 端到端服务),再启动完整识别流程
await _initServicesFuture;
if (!isRecognizing.value) {
await startRecognition();
}
} catch (e, s) {
Logger.e('TRANSL', '[CALL_TRANS_CMD] autoStart 启动失败: $e', e, s);
@ -1010,6 +1013,8 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
/// 开始录音
Future<void> startRecording() async {
// 等待服务初始化完成,确保 dir 已赋值
await _initServicesFuture;
_timerManager.startTimer();
final formattedTime = DateFormat('yyyyMMdd_HHmmss').format(DateTime.now());
AudioSourceType audioSourceType;

Loading…
Cancel
Save