Passer au contenu

Commencer

  1. Installer le package

    Fenêtre de terminal
    npm i @capgo/capacitor-mute
  2. Synchroniser avec les projets natifs

    Fenêtre de terminal
    npx cap sync

Importez le plugin et utilisez ses méthodes pour vérifier l’état muet :

import { CapacitorMute } from '@capgo/capacitor-mute';
// Vérifier si l'appareil est en sourdine
const checkMuteState = async () => {
const { value } = await CapacitorMute.isMuted();
if (value) {
console.log('L\'appareil est en sourdine/silencieux');
// Ajuster le comportement de l'application pour le mode silencieux
} else {
console.log('Le son de l\'appareil est activé');
}
};

Vérifie si l’appareil est actuellement en sourdine/en mode silencieux.

const result = await CapacitorMute.isMuted();
// Renvoie : { value: boolean }
import { CapacitorMute } from '@capgo/capacitor-mute';
export class SoundManager {
private isMuted = false;
async initialize() {
// Obtenir l'état muet initial
await this.checkMuteState();
}
async checkMuteState() {
try {
const { value } = await CapacitorMute.isMuted();
this.isMuted = value;
this.updateAppBehavior();
} catch (error) {
console.error('Échec de la vérification de l\'état muet :', error);
}
}
private updateAppBehavior() {
if (this.isMuted) {
// L'appareil est en sourdine - ajuster le comportement de l'application
this.disableSoundEffects();
this.showVisualNotifications();
} else {
// Le son de l'appareil est activé
this.enableSoundEffects();
this.useAudioNotifications();
}
}
private disableSoundEffects() {
// Désactiver les sons de l'application
console.log('Désactivation des effets sonores');
}
private enableSoundEffects() {
// Activer les sons de l'application
console.log('Activation des effets sonores');
}
private showVisualNotifications() {
// Utiliser des retours visuels au lieu de l'audio
console.log('Utilisation des notifications visuelles');
}
private useAudioNotifications() {
// Utiliser des notifications audio
console.log('Utilisation des notifications audio');
}
}
// Utilisation
const soundManager = new SoundManager();
await soundManager.initialize();
// Interroger périodiquement pour vérifier les changements
setInterval(() => {
soundManager.checkMuteState();
}, 5000); // Vérifier toutes les 5 secondes
  • Détecte l’état du commutateur de sourdine physique
  • Pas d’événements de changement en temps réel (interrogation requise)
  • Fonctionne sur iPhone et iPad avec commutateur de sourdine
  • Vérifie si le mode sonnerie est défini sur silencieux ou vibreur
  • Pas d’événements de changement (interrogation requise)
  • Basé sur le mode sonnerie d’AudioManager
  1. Interroger pour les changements Étant donné que le plugin ne fournit pas d’événements en temps réel, interrogez périodiquement si vous devez suivre les changements :

    // Vérifier l'état muet périodiquement
    setInterval(async () => {
    const { value } = await CapacitorMute.isMuted();
    if (value !== previousMuteState) {
    handleMuteStateChange(value);
    }
    }, 5000);
  2. Respecter les préférences de l’utilisateur Honorez toujours l’état muet et ajustez le comportement audio de votre application en conséquence.

  3. Fournir des alternatives visuelles

    const { value: isMuted } = await CapacitorMute.isMuted();
    if (isMuted) {
    // Afficher des notifications visuelles
    showToast('Nouveau message reçu');
    } else {
    // Jouer une notification sonore
    playNotificationSound();
    }
  1. Gestion du son des jeux

    const shouldPlaySound = async () => {
    const { value: isMuted } = await CapacitorMute.isMuted();
    return !isMuted && userPreferences.soundEnabled;
    };
  2. Gestion des notifications

    const sendNotification = async (message: string) => {
    const { value: isMuted } = await CapacitorMute.isMuted();
    if (isMuted) {
    // Utiliser la vibration ou une notification visuelle
    await Haptics.vibrate();
    showBanner(message);
    } else {
    // Jouer un son de notification
    await playSound('notification.mp3');
    }
    };
  3. Lecteur vidéo

    const initVideoPlayer = async () => {
    const { value: isMuted } = await CapacitorMute.isMuted();
    videoPlayer.setMuted(isMuted);
    if (isMuted) {
    showSubtitles(true);
    showMuteIndicator();
    }
    };
  1. Renvoie toujours false sur Android

    • Vérifiez si le mode sonnerie de l’appareil est réellement défini sur silencieux
    • Certains appareils Android peuvent avoir un comportement différent
  2. Aucun événement de changement disponible

    • Le plugin ne fournit pas d’événements de changement en temps réel
    • Implémentez l’interrogation si vous devez détecter les changements
  3. Ne fonctionne pas sur le simulateur

    • Le simulateur iOS n’a pas de commutateur de sourdine
    • Testez sur de vrais appareils pour des résultats précis