feat: Ajout de la gestion des maintenances et intégration de la synthèse vocale
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user