feat: Mise à jour à la version 1.1.14 et refonte du support Audio/TTS pour le Web
- Mise à jour de la version de l'application à `1.1.14` dans `app_version.dart` et `version.json`. - Migration de `AudioFeedbackService` vers l'API Web native (`dart:js_interop`, `package:web`) pour corriger les problèmes d'autoplay et supprimer la dépendance `audioplayers`. - Réécriture de `TextToSpeechService` utilisant `window.speechSynthesis` en remplacement de `flutter_tts` pour une meilleure compatibilité Web (notamment sous Linux). - Suppression des dépendances obsolètes `audioplayers` et `flutter_tts` du `pubspec.yaml`. - Ajout d'une gestion de file d'attente (`_scanQueue`) dans `EventPreparationPage` pour traiter les scans de codes-barres de manière séquentielle. - Intégration d'un bouton de diagnostic (`AudioDiagnosticButton`) pour tester manuellement l'audio et la synthèse vocale. - Ajout d'un script de test JavaScript `test_audio_tts.js` pour faciliter le débogage dans la console du navigateur. - Ajout de directives de style et d'architecture Dart/Flutter dans `.github/agents/`.
This commit is contained in:
71
em2rp/web/test_audio_tts.js
Normal file
71
em2rp/web/test_audio_tts.js
Normal file
@@ -0,0 +1,71 @@
|
||||
*// Script de test pour valider l'audio et le TTS dans la console du navigateur
|
||||
// À copier-coller dans la console pour diagnostic
|
||||
|
||||
console.log('========== TEST AUDIO ET TTS ==========');
|
||||
|
||||
// Test 1 : Vérifier les voix disponibles
|
||||
console.log('\n1️⃣ Test des voix de synthèse :');
|
||||
const synth = window.speechSynthesis;
|
||||
const voices = synth.getVoices();
|
||||
|
||||
console.log(` ✓ Nombre de voix : ${voices.length}`);
|
||||
|
||||
const frenchVoices = voices.filter(v => v.lang.startsWith('fr'));
|
||||
console.log(` ✓ Voix françaises : ${frenchVoices.length}`);
|
||||
|
||||
if (frenchVoices.length > 0) {
|
||||
console.log(' ✓ Voix françaises disponibles :');
|
||||
frenchVoices.forEach(v => {
|
||||
console.log(` - ${v.name} (${v.lang}) ${v.localService ? 'LOCAL' : 'REMOTE'}`);
|
||||
});
|
||||
} else {
|
||||
console.warn(' ⚠ AUCUNE voix française trouvée !');
|
||||
}
|
||||
|
||||
// Test 2 : Tester le TTS
|
||||
console.log('\n2️⃣ Test du TTS (dans 1 seconde) :');
|
||||
setTimeout(() => {
|
||||
const utterance = new SpeechSynthesisUtterance('Test de synthèse vocale');
|
||||
utterance.lang = 'fr-FR';
|
||||
utterance.rate = 0.7;
|
||||
utterance.pitch = 0.7;
|
||||
utterance.volume = 1.0;
|
||||
|
||||
if (frenchVoices.length > 0) {
|
||||
utterance.voice = frenchVoices[0];
|
||||
console.log(` ✓ Utilisation de la voix : ${frenchVoices[0].name}`);
|
||||
}
|
||||
|
||||
utterance.onstart = () => console.log(' ✓ TTS démarré');
|
||||
utterance.onend = () => console.log(' ✓ TTS terminé');
|
||||
utterance.onerror = (e) => console.error(' ✗ Erreur TTS:', e);
|
||||
|
||||
synth.speak(utterance);
|
||||
console.log(' → Lecture en cours...');
|
||||
}, 1000);
|
||||
|
||||
// Test 3 : Tester l'audio (dans 3 secondes)
|
||||
console.log('\n3️⃣ Test de l\'audio (dans 3 secondes) :');
|
||||
setTimeout(() => {
|
||||
const audio = new Audio('assets/assets/sounds/ok.mp3');
|
||||
audio.volume = 1.0;
|
||||
|
||||
audio.onloadeddata = () => console.log(' ✓ Audio chargé');
|
||||
audio.onplay = () => console.log(' ✓ Audio en lecture');
|
||||
audio.onended = () => console.log(' ✓ Audio terminé');
|
||||
audio.onerror = (e) => {
|
||||
console.error(' ✗ Erreur audio:', audio.error);
|
||||
console.error(' ✗ Code erreur:', audio.error?.code);
|
||||
console.error(' ✗ Message:', audio.error?.message);
|
||||
};
|
||||
|
||||
audio.play().then(() => {
|
||||
console.log(' → Lecture audio démarrée');
|
||||
}).catch(e => {
|
||||
console.error(' ✗ Échec du play():', e);
|
||||
});
|
||||
}, 3000);
|
||||
|
||||
console.log('\n⏳ Tests en cours... Attendez les résultats ci-dessus');
|
||||
console.log('========================================\n');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": "1.1.7",
|
||||
"version": "1.1.14",
|
||||
"updateUrl": "https://app.em2events.fr",
|
||||
"forceUpdate": true,
|
||||
"releaseNotes": "Ajout de la gestion des maintenance et synthèse vocale",
|
||||
"timestamp": "2026-02-24T12:39:57.675Z"
|
||||
"timestamp": "2026-03-03T10:13:12.014Z"
|
||||
}
|
||||
Reference in New Issue
Block a user