88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
---
|
|
name: managing-sound-effects
|
|
description: Manages sound effects and audio for user feedback (correct/wrong sounds, music, volume). Use when adding new sounds or managing audio
|
|
allowed-tools: Read, Write, Grep, Glob, Bash
|
|
---
|
|
|
|
# Sound Effect Manager
|
|
|
|
Gère effets sonores et feedback audio pour meilleure expérience utilisateur.
|
|
|
|
## Quand utiliser
|
|
|
|
- Ajout de nouveaux effets sonores
|
|
- Gestion du volume et mute
|
|
- Musique de fond pour jeux
|
|
- Feedback audio utilisateur
|
|
- Optimisation chargement audio
|
|
|
|
## AudioManager (js/core/audio.js)
|
|
|
|
**API :**
|
|
|
|
- `playSound(soundName, options)` - Jouer son
|
|
- `setVolume(volume)` - Volume global (0.0-1.0)
|
|
- `toggleMute()` / `isMuted()` - Mute control
|
|
|
|
**Sons disponibles (examine audio.js) :**
|
|
correct, wrong, victory, click, coin, levelup
|
|
|
|
## Ajouter un nouveau son
|
|
|
|
1. **Compresser :** < 50 KB (96 kbps pour effets, 128 kbps musique)
|
|
2. **Formats :** MP3, OGG, WebM (fallback)
|
|
3. **Placer :** assets/sounds/
|
|
4. **Enregistrer :** SOUND_CATALOG dans audio.js
|
|
5. **Utiliser :**
|
|
```javascript
|
|
import { playSound } from './core/audio.js';
|
|
playSound('yourSound');
|
|
```
|
|
|
|
## Patterns essentiels
|
|
|
|
- **Préchargement :** Sons critiques avant utilisation
|
|
- **Pool audio :** Instances multiples pour chevauchement
|
|
- **Musique fond :** Volume 0.3, loop activé, cleanup dans destroy
|
|
- **Mobile :** Autoplay nécessite interaction utilisateur
|
|
- **Accessibilité :** Respecter prefers-reduced-motion
|
|
|
|
## Gestion du lifecycle
|
|
|
|
**Mode avec musique :**
|
|
|
|
```javascript
|
|
// Lancer musique
|
|
playSound('background-music', { loop: true, volume: 0.3 });
|
|
|
|
// cleanup() → stopper musique
|
|
```
|
|
|
|
Examine QuizMode/ChallengeMode pour patterns existants.
|
|
|
|
## Checklist ajout son
|
|
|
|
- [ ] Fichier compressé < 50 KB
|
|
- [ ] Formats multiples (MP3, OGG, WebM)
|
|
- [ ] Ajouté au SOUND_CATALOG
|
|
- [ ] Volume testé
|
|
- [ ] Mute fonctionne
|
|
- [ ] Cleanup musique si loop
|
|
- [ ] Mobile autoplay OK
|
|
|
|
## En cas de doute
|
|
|
|
**Règles absolues :**
|
|
|
|
1. Utiliser audio.js API (jamais créer Audio directement)
|
|
2. < 50 KB par fichier
|
|
3. Stopper musique dans cleanup()
|
|
4. Pas d'autoplay sans interaction utilisateur
|
|
5. Volume par défaut ≤ 0.7
|
|
|
|
**Référence :**
|
|
|
|
- `js/core/audio.js` - API complète
|
|
- `assets/sounds/` - Catalogues existants
|
|
- Modes (QuizMode, ChallengeMode) - Exemples d'utilisation
|