Files
EM2_ERP/em2rp/web/test_audio_tts.js
ElPoyo bc93f3fa9a 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/`.
2026-03-08 19:51:13 +01:00

72 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
*// 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');