feat: Ajout de la gestion des maintenances et intégration de la synthèse vocale

This commit is contained in:
ElPoyo
2026-02-24 13:39:44 +01:00
parent 506225ac62
commit 890449d5e3
17 changed files with 1731 additions and 107 deletions

View File

@@ -1,25 +1,36 @@
import 'package:flutter/services.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:em2rp/utils/debug_log.dart';
/// Service pour émettre des feedbacks sonores lors des interactions
class AudioFeedbackService {
/// Jouer un son de succès (clic système)
static final AudioPlayer _player = AudioPlayer();
/// Jouer un son de succès
static Future<void> playSuccessBeep() async {
try {
// Jouer un son système
await HapticFeedback.mediumImpact();
await SystemSound.play(SystemSoundType.click);
// Alternative : jouer un son personnalisé si disponible
// await _player.play(AssetSource('sounds/success.mp3'));
} catch (e) {
DebugLog.error('[AudioFeedbackService] Error playing success beep', e);
}
}
/// Jouer un son d'erreur (alerte système)
/// Jouer un son d'erreur
static Future<void> playErrorBeep() async {
try {
// Note: SystemSoundType.alert n'existe pas sur toutes les plateformes
// On utilise click pour l'instant, peut être amélioré avec audioplayers
// Double bip pour indiquer une erreur
await HapticFeedback.heavyImpact();
await SystemSound.play(SystemSoundType.click);
await Future.delayed(const Duration(milliseconds: 100));
await SystemSound.play(SystemSoundType.click);
// Alternative : jouer un son d'erreur personnalisé si disponible
// await _player.play(AssetSource('sounds/error.mp3'));
} catch (e) {
DebugLog.error('[AudioFeedbackService] Error playing error beep', e);
}
@@ -36,11 +47,15 @@ class AudioFeedbackService {
/// Jouer un feedback complet (son + vibration)
static Future<void> playFullFeedback({bool isSuccess = true}) async {
await playHapticFeedback();
if (isSuccess) {
await playSuccessBeep();
} else {
await playErrorBeep();
}
}
/// Nettoyer les ressources
static Future<void> dispose() async {
await _player.dispose();
}
}