mnemo_cards/lib/managers/audio_player.dart

33 lines
953 B
Dart
Raw Normal View History

2024-06-12 23:00:13 +00:00
import 'package:flutter_tts/flutter_tts.dart';
import '../main.dart';
class AudioPlayer {
2024-06-15 15:42:18 +00:00
static bool get soundOn =>
globalSharedPreferences.getBool('sound_on') ?? true;
2024-06-14 19:47:28 +00:00
static Future<void> playAudio(String? audio, {String? lang}) async {
2024-06-15 15:42:18 +00:00
if (soundOn && audio != null) {
2024-06-12 23:00:13 +00:00
FlutterTts flutterTts = FlutterTts();
var playText = audio;
if (audio.contains('_')) {
2024-06-14 19:47:28 +00:00
final language = audio.split('_').first;
playText = audio.replaceFirst('${language}_', '');
if (lang == null) {
await flutterTts.setLanguage(language);
}
}
if (lang != null) {
2024-06-12 23:00:13 +00:00
await flutterTts.setLanguage(lang);
}
2024-06-15 15:42:18 +00:00
var speed = globalSharedPreferences.getDouble('sound_speed');
if (speed == null) {
2024-08-18 16:52:03 +00:00
speed = 0.8;
globalSharedPreferences.setDouble('sound_speed', 0.8);
2024-06-15 15:42:18 +00:00
}
await flutterTts.setSpeechRate(speed);
2024-06-12 23:00:13 +00:00
flutterTts.speak(playText);
}
}
}