MotorSignal-App/lib/services/audio_alert_service.dart

36 lines
785 B
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_tts/flutter_tts.dart';
class AudioAlertService {
final FlutterTts _flutterTts = FlutterTts();
bool _isMuted = false;
AudioAlertService() {
_initTts();
}
Future<void> _initTts() async {
await _flutterTts.setLanguage("en-US");
await _flutterTts.setSpeechRate(0.5);
await _flutterTts.setVolume(1.0);
await _flutterTts.setPitch(1.0);
}
void setMuted(bool muted) {
_isMuted = muted;
}
Future<void> speak(String text) async {
if (_isMuted) return;
await _flutterTts.speak(text);
}
Future<void> stop() async {
await _flutterTts.stop();
}
}
final audioAlertServiceProvider = Provider<AudioAlertService>((ref) {
return AudioAlertService();
});