chore: fix TTS voice initialization (#3469)
This commit is contained in:
parent
480ad320f4
commit
3dd0542703
3 changed files with 18 additions and 15 deletions
|
|
@ -22,6 +22,7 @@ import 'package:fluffychat/pangea/spaces/controllers/space_controller.dart';
|
|||
import 'package:fluffychat/pangea/subscription/controllers/subscription_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/controllers/speech_to_text_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/controllers/text_to_speech_controller.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/controllers/tts_controller.dart';
|
||||
import 'package:fluffychat/pangea/user/controllers/permissions_controller.dart';
|
||||
import 'package:fluffychat/pangea/user/controllers/user_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
|
@ -76,6 +77,8 @@ class PangeaController {
|
|||
getAnalytics.initialize();
|
||||
subscriptionController.initialize();
|
||||
setPangeaPushRules();
|
||||
|
||||
TtsController.setAvailableLanguages();
|
||||
}
|
||||
|
||||
/// Initialize controllers
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import 'package:sentry_flutter/sentry_flutter.dart';
|
|||
|
||||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
import 'package:fluffychat/pages/chat/events/audio_player.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
|
||||
import 'package:fluffychat/pangea/events/models/pangea_token_text_model.dart';
|
||||
import 'package:fluffychat/pangea/instructions/instructions_enum.dart';
|
||||
import 'package:fluffychat/pangea/instructions/instructions_show_popup.dart';
|
||||
|
|
@ -21,14 +20,13 @@ import 'package:fluffychat/pangea/learning_settings/constants/language_constants
|
|||
import 'package:fluffychat/pangea/toolbar/controllers/text_to_speech_controller.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class TtsController {
|
||||
static void initialize() {
|
||||
setAvailableLanguages();
|
||||
}
|
||||
import 'package:fluffychat/pangea/common/utils/error_handler.dart'
|
||||
as error_handler;
|
||||
|
||||
class TtsController {
|
||||
static List<String> _availableLangCodes = [];
|
||||
|
||||
static final flutter_tts.FlutterTts _tts = flutter_tts.FlutterTts();
|
||||
static final _tts = flutter_tts.FlutterTts();
|
||||
static final StreamController<bool> loadingChoreoStream =
|
||||
StreamController<bool>.broadcast();
|
||||
|
||||
|
|
@ -36,7 +34,7 @@ class TtsController {
|
|||
|
||||
static Future<void> _onError(dynamic message) async {
|
||||
if (message != 'canceled' && message != 'interrupted') {
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: 'TTS error',
|
||||
data: {
|
||||
'message': message,
|
||||
|
|
@ -51,7 +49,7 @@ class TtsController {
|
|||
await _setAvailableBaseLanguages();
|
||||
} catch (e, s) {
|
||||
debugger(when: kDebugMode);
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {},
|
||||
|
|
@ -106,7 +104,7 @@ class TtsController {
|
|||
audioPlayer?.stop();
|
||||
|
||||
if (result != 1) {
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
m: 'Unexpected result from tts.stop',
|
||||
data: {
|
||||
'result': result,
|
||||
|
|
@ -115,7 +113,7 @@ class TtsController {
|
|||
}
|
||||
} catch (e, s) {
|
||||
debugger(when: kDebugMode);
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {},
|
||||
|
|
@ -138,6 +136,10 @@ class TtsController {
|
|||
final prevOnStop = _onStop;
|
||||
_onStop = onStop;
|
||||
|
||||
if (_availableLangCodes.isEmpty) {
|
||||
await setAvailableLanguages();
|
||||
}
|
||||
|
||||
_tts.setErrorHandler((message) {
|
||||
_onError(message);
|
||||
prevOnStop?.call();
|
||||
|
|
@ -240,7 +242,7 @@ class TtsController {
|
|||
// }
|
||||
} catch (e, s) {
|
||||
debugger(when: kDebugMode);
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {
|
||||
|
|
@ -275,7 +277,7 @@ class TtsController {
|
|||
),
|
||||
);
|
||||
} catch (e, s) {
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: e,
|
||||
s: s,
|
||||
data: {
|
||||
|
|
@ -301,7 +303,7 @@ class TtsController {
|
|||
);
|
||||
await audioPlayer!.play();
|
||||
} catch (e, s) {
|
||||
ErrorHandler.logError(
|
||||
error_handler.ErrorHandler.logError(
|
||||
e: 'Error playing audio',
|
||||
s: s,
|
||||
data: {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import 'package:url_launcher/url_launcher_string.dart';
|
|||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/common/controllers/pangea_controller.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/any_state_holder.dart';
|
||||
import 'package:fluffychat/pangea/toolbar/controllers/tts_controller.dart';
|
||||
import 'package:fluffychat/utils/client_manager.dart';
|
||||
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_file_extension.dart';
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
|
|
@ -260,7 +259,6 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
),
|
||||
);
|
||||
pangeaController = PangeaController(matrix: widget, matrixState: this);
|
||||
TtsController.initialize();
|
||||
// Pangea#
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue