- FLAG_KEEP_SCREEN_ON pendant la partie - Fin du timer de défi: carillon convivial do-mi-sol (AudioTrack, synthèse PCM avec enveloppe de cloche) à la place des bips ToneGenerator télécoms - Accord singulier/pluriel: «1 gorgée» / «N gorgées» dans les toasts, les stats et Game89Player (fini les «gorgée(s)»)
97 lines
2.1 KiB
Java
97 lines
2.1 KiB
Java
package com.example.boidelov3.utils;
|
|
|
|
import android.content.Context;
|
|
|
|
/**
|
|
* Gestionnaire de sons pour l'application
|
|
* Utilise SoundGenerator pour créer des sons sans fichiers externes
|
|
*/
|
|
public class SoundManager {
|
|
private static SoundManager instance;
|
|
private SoundGenerator soundGenerator;
|
|
private Context context;
|
|
|
|
/**
|
|
* Obtient l'instance unique du SoundManager (Singleton)
|
|
*/
|
|
public static synchronized SoundManager getInstance(Context context) {
|
|
if (instance == null) {
|
|
instance = new SoundManager(context.getApplicationContext());
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
/**
|
|
* Constructeur privé
|
|
*/
|
|
private SoundManager(Context context) {
|
|
this.context = context;
|
|
this.soundGenerator = new SoundGenerator();
|
|
}
|
|
|
|
/**
|
|
* Joue le son de clic
|
|
*/
|
|
public void playClick() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.playClick();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Joue le son de succès
|
|
*/
|
|
public void playSuccess() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.playSuccess();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Joue le son de manche (nouveau défi)
|
|
*/
|
|
public void playManche() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.playManche();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Joue le son de fin de partie
|
|
*/
|
|
public void playFin() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.playFin();
|
|
}
|
|
}
|
|
/**
|
|
* Joue un carillon convivial (fin de timer / nouveau défi)
|
|
*/
|
|
public void playChallenge() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.playChallenge();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Active ou désactive le son
|
|
*/
|
|
public void setMuted(boolean muted) {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.setMuted(muted);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Libère les ressources
|
|
*/
|
|
public void release() {
|
|
if (soundGenerator != null) {
|
|
soundGenerator.release();
|
|
soundGenerator = null;
|
|
}
|
|
instance = null;
|
|
}
|
|
}
|