Inizia
-
Installa il pacchetto
Terminal window npm i @capgo/capacitor-muteTerminal window pnpm add @capgo/capacitor-muteTerminal window yarn add @capgo/capacitor-muteTerminal window bun add @capgo/capacitor-mute -
Sincronizza con i progetti nativi
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Utilizzo
Section titled “Utilizzo”Importa il plugin e usa i suoi metodi per verificare lo stato di muto:
import { CapacitorMute } from '@capgo/capacitor-mute';
// Controlla se il dispositivo è silenziatoconst checkMuteState = async () => { const { value } = await CapacitorMute.isMuted();
if (value) { console.log('Il dispositivo è silenziato/muto'); // Adatta il comportamento dell'app per la modalità silenziosa } else { console.log('Il suono del dispositivo è attivo'); }};Riferimento API
Section titled “Riferimento API”isMuted()
Section titled “isMuted()”Controlla se il dispositivo è attualmente silenziato/in modalità silenziosa.
const result = await CapacitorMute.isMuted();// Restituisce: { value: boolean }Esempio completo
Section titled “Esempio completo”import { CapacitorMute } from '@capgo/capacitor-mute';
export class SoundManager { private isMuted = false;
async initialize() { // Ottieni lo stato iniziale di muto await this.checkMuteState(); }
async checkMuteState() { try { const { value } = await CapacitorMute.isMuted(); this.isMuted = value; this.updateAppBehavior(); } catch (error) { console.error('Impossibile controllare lo stato di muto:', error); } }
private updateAppBehavior() { if (this.isMuted) { // Il dispositivo è silenziato - adatta il comportamento dell'app this.disableSoundEffects(); this.showVisualNotifications(); } else { // Il suono del dispositivo è attivo this.enableSoundEffects(); this.useAudioNotifications(); } }
private disableSoundEffects() { // Disabilita i suoni nell'app console.log('Disabilitazione effetti sonori'); }
private enableSoundEffects() { // Abilita i suoni nell'app console.log('Abilitazione effetti sonori'); }
private showVisualNotifications() { // Usa feedback visivo invece di audio console.log('Utilizzo notifiche visive'); }
private useAudioNotifications() { // Usa notifiche audio console.log('Utilizzo notifiche audio'); }}
// Utilizzoconst soundManager = new SoundManager();await soundManager.initialize();
// Polling periodico per verificare le modifichesetInterval(() => { soundManager.checkMuteState();}, 5000); // Controlla ogni 5 secondiComportamento della piattaforma
Section titled “Comportamento della piattaforma”- Rileva lo stato dell’interruttore fisico di muto
- Nessun evento di modifica in tempo reale (richiesto polling)
- Funziona su iPhone e iPad con interruttore di muto
Android
Section titled “Android”- Controlla se la modalità suoneria è impostata su silenzioso o vibrazione
- Nessun evento di modifica (richiesto polling)
- Basato sulla modalità suoneria di AudioManager
Best practice
Section titled “Best practice”-
Polling per le modifiche Poiché il plugin non fornisce eventi in tempo reale, esegui il polling periodicamente se devi monitorare le modifiche:
// Controlla lo stato di muto periodicamentesetInterval(async () => {const { value } = await CapacitorMute.isMuted();if (value !== previousMuteState) {handleMuteStateChange(value);}}, 5000); -
Rispetta le preferenze dell’utente Rispetta sempre lo stato di muto e adatta di conseguenza il comportamento audio della tua app.
-
Fornisci alternative visive
const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Mostra notifiche visiveshowToast('Nuovo messaggio ricevuto');} else {// Riproduci notifica sonoraplayNotificationSound();}
Casi d’uso
Section titled “Casi d’uso”-
Gestione audio dei giochi
const shouldPlaySound = async () => {const { value: isMuted } = await CapacitorMute.isMuted();return !isMuted && userPreferences.soundEnabled;}; -
Gestione delle notifiche
const sendNotification = async (message: string) => {const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Usa vibrazione o notifica visivaawait Haptics.vibrate();showBanner(message);} else {// Riproduci suono di notificaawait playSound('notification.mp3');}}; -
Lettore video
const initVideoPlayer = async () => {const { value: isMuted } = await CapacitorMute.isMuted();videoPlayer.setMuted(isMuted);if (isMuted) {showSubtitles(true);showMuteIndicator();}};
Risoluzione dei problemi
Section titled “Risoluzione dei problemi”-
Restituisce sempre false su Android
- Controlla se la modalità suoneria del dispositivo è effettivamente impostata su silenzioso
- Alcuni dispositivi Android potrebbero avere comportamenti diversi
-
Nessun evento di modifica disponibile
- Il plugin non fornisce eventi di modifica in tempo reale
- Implementa il polling se devi rilevare le modifiche
-
Non funziona sul simulatore
- Il Simulatore iOS non ha un interruttore di muto
- Testa su dispositivi reali per risultati accurati