FSX-Translate/lib/manager/tts.dart
2024-08-19 15:11:49 +08:00

39 lines
1.0 KiB
Dart

import 'package:flutter_translate/common/utils/bot_toast.dart';
import 'package:flutter_tts/flutter_tts.dart';
class Tts {
Tts._();
factory Tts() {
return _instance;
}
static final Tts _instance = Tts._();
late FlutterTts ttsController = FlutterTts();
Future init() async {
await ttsController.setSharedInstance(true);
await ttsController.setIosAudioCategory(
IosTextToSpeechAudioCategory.ambient,
[
IosTextToSpeechAudioCategoryOptions.allowBluetooth,
IosTextToSpeechAudioCategoryOptions.allowBluetoothA2DP,
IosTextToSpeechAudioCategoryOptions.mixWithOthers
],
IosTextToSpeechAudioMode.voicePrompt);
await ttsController.awaitSpeakCompletion(true);
await ttsController.awaitSynthCompletion(true);
}
Future voiceTranslator(String text, String language) async {
try {
await ttsController.stop();
await ttsController.setLanguage(language);
await ttsController.speak(text);
} catch (e) {
toast('This language cannot be played');
}
}
}