32 lines
953 B
Dart
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);
|
|
}
|
|
}
|
|
}
|