mnemo_cards/lib/managers/audio_player.dart
2024-06-15 18:42:18 +03:00

32 lines
953 B
Dart

import 'package:flutter_tts/flutter_tts.dart';
import '../main.dart';
class AudioPlayer {
static bool get soundOn =>
globalSharedPreferences.getBool('sound_on') ?? true;
static Future<void> playAudio(String? audio, {String? lang}) async {
if (soundOn && audio != null) {
FlutterTts flutterTts = FlutterTts();
var playText = audio;
if (audio.contains('_')) {
final language = audio.split('_').first;
playText = audio.replaceFirst('${language}_', '');
if (lang == null) {
await flutterTts.setLanguage(language);
}
}
if (lang != null) {
await flutterTts.setLanguage(lang);
}
var speed = globalSharedPreferences.getDouble('sound_speed');
if (speed == null) {
speed = 1.0;
globalSharedPreferences.setDouble('sound_speed', 1.0);
}
await flutterTts.setSpeechRate(speed);
flutterTts.speak(playText);
}
}
}