additional error handling to fix freezing and/or catch error message

pull/1428/head
William Jordan-Cooley 1 year ago
parent c94e559b52
commit 10d937ed1b

@ -18,8 +18,21 @@ class TtsController {
setupTTS();
}
Future<void> dispose() async {
await tts.stop();
}
onError(dynamic message) => ErrorHandler.logError(
m: 'TTS error',
data: {
'message': message,
},
);
Future<void> setupTTS() async {
try {
tts.setErrorHandler(onError);
targetLanguage ??=
MatrixState.pangeaController.languageController.userL2?.langCode;
@ -53,12 +66,50 @@ class TtsController {
}
}
Future<void> stop() async {
try {
// return type is dynamic but apparent its supposed to be 1
// https://pub.dev/packages/flutter_tts
final result = await tts.stop();
if (result != 1) {
ErrorHandler.logError(
m: 'Unexpected result from tts.stop',
data: {
'result': result,
},
);
}
} catch (e, s) {
debugger(when: kDebugMode);
ErrorHandler.logError(e: e, s: s);
}
await tts.stop();
}
Future<void> speak(String text) async {
targetLanguage ??=
MatrixState.pangeaController.languageController.userL2?.langCode;
try {
stop();
await tts.stop();
return tts.speak(text);
targetLanguage ??=
MatrixState.pangeaController.languageController.userL2?.langCode;
final result = await tts.speak(text);
// return type is dynamic but apparent its supposed to be 1
// https://pub.dev/packages/flutter_tts
if (result != 1) {
ErrorHandler.logError(
m: 'Unexpected result from tts.speak',
data: {
'result': result,
'text': text,
},
);
}
} catch (e, s) {
debugger(when: kDebugMode);
ErrorHandler.logError(e: e, s: s);
}
}
bool get isLanguageFullySupported =>

@ -19,7 +19,6 @@ class WordAudioButtonState extends State<WordAudioButton> {
TtsController ttsController = TtsController();
@override
@override
void initState() {
// TODO: implement initState
@ -27,6 +26,12 @@ class WordAudioButtonState extends State<WordAudioButton> {
ttsController.setupTTS().then((value) => setState(() {}));
}
@override
void dispose() {
ttsController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Column(

Loading…
Cancel
Save