Comenzar
-
Instalar el paquete
Ventana de terminal npm i @Capgo/Capacitor-muteVentana de terminal pnpm add @Capgo/Capacitor-muteVentana de terminal yarn add @Capgo/Capacitor-muteVentana de terminal bun add @Capgo/Capacitor-mute -
Sincronizar con proyectos nativos
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync
Importa el Plugin y usa sus métodos para verificar el estado de silencio:
import { CapacitorMute } from '@capgo/capacitor-mute';
// Verificar si el dispositivo está silenciadoconst checkMuteState = async () => { const { value } = await CapacitorMute.isMuted();
if (value) { console.log('El dispositivo está silenciado/en modo silencioso'); // Ajustar el comportamiento de la aplicación para modo silencioso } else { console.log('El sonido del dispositivo está activado'); }};Referencia de API
Section titled “Referencia de API”isMuted()
Section titled “isMuted()”Verifica si el dispositivo está actualmente silenciado/en modo silencioso.
const result = await CapacitorMute.isMuted();// Devuelve: { value: boolean }Ejemplo Completo
Section titled “Ejemplo Completo”import { CapacitorMute } from '@capgo/capacitor-mute';
export class SoundManager { private isMuted = false;
async initialize() { // Obtener el estado inicial de silencio await this.checkMuteState(); }
async checkMuteState() { try { const { value } = await CapacitorMute.isMuted(); this.isMuted = value; this.updateAppBehavior(); } catch (error) { console.error('Error al verificar el estado de silencio:', error); } }
private updateAppBehavior() { if (this.isMuted) { // El dispositivo está silenciado - ajustar el comportamiento de la aplicación this.disableSoundEffects(); this.showVisualNotifications(); } else { // El sonido del dispositivo está activado this.enableSoundEffects(); this.useAudioNotifications(); } }
private disableSoundEffects() { // Desactivar sonidos dentro de la aplicación console.log('Desactivando efectos de sonido'); }
private enableSoundEffects() { // Activar sonidos dentro de la aplicación console.log('Activando efectos de sonido'); }
private showVisualNotifications() { // Usar retroalimentación visual en lugar de audio console.log('Usando notificaciones visuales'); }
private useAudioNotifications() { // Usar notificaciones de audio console.log('Usando notificaciones de audio'); }}
// Usoconst soundManager = new SoundManager();await soundManager.initialize();
// Sondear periódicamente para verificar cambiossetInterval(() => { soundManager.checkMuteState();}, 5000); // Verificar cada 5 segundosComportamiento por Plataforma
Section titled “Comportamiento por Plataforma”- Detecta el estado del interruptor físico de silencio
- Sin eventos de cambio en tiempo real (se requiere sondeo)
- Funciona en iPhone y iPad con interruptor de silencio
Android
Section titled “Android”- Verifica si el modo de timbre está configurado en silencio o vibración
- Sin eventos de cambio (se requiere sondeo)
- Basado en el modo de timbre de AudioManager
Mejores Prácticas
Section titled “Mejores Prácticas”-
Sondear para detectar cambios Dado que el Plugin no proporciona eventos en tiempo real, sondea periódicamente si necesitas rastrear cambios:
// Verificar el estado de silencio periódicamentesetInterval(async () => {const { value } = await CapacitorMute.isMuted();if (value !== previousMuteState) {handleMuteStateChange(value);}}, 5000); -
Respetar las preferencias del usuario Siempre honra el estado de silencio y ajusta el comportamiento de audio de tu aplicación en consecuencia.
-
Proporcionar alternativas visuales
const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Mostrar notificaciones visualesshowToast('Nuevo mensaje recibido');} else {// Reproducir notificación de sonidoplayNotificationSound();}
Casos de Uso
Section titled “Casos de Uso”-
Gestión de Sonido en Juegos
const shouldPlaySound = async () => {const { value: isMuted } = await CapacitorMute.isMuted();return !isMuted && userPreferences.soundEnabled;}; -
Manejo de Notificaciones
const sendNotification = async (message: string) => {const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Usar vibración o notificación visualawait Haptics.vibrate();showBanner(message);} else {// Reproducir sonido de notificaciónawait playSound('notification.mp3');}}; -
Reproductor de Video
const initVideoPlayer = async () => {const { value: isMuted } = await CapacitorMute.isMuted();videoPlayer.setMuted(isMuted);if (isMuted) {showSubtitles(true);showMuteIndicator();}};
Solución de Problemas
Section titled “Solución de Problemas”-
Siempre devuelve false en Android
- Verifica si el modo de timbre del dispositivo está realmente configurado en silencio
- Algunos dispositivos Android pueden tener un comportamiento diferente
-
No hay eventos de cambio disponibles
- El Plugin no proporciona eventos de cambio en tiempo real
- Implementa sondeo si necesitas detectar cambios
-
No funciona en el simulador
- El Simulador de iOS no tiene un interruptor de silencio
- Prueba en dispositivos reales para obtener resultados precisos