Memulai
-
Instal paket
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 -
Sinkronkan dengan proyek asli
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Penggunaan
Section titled “Penggunaan”Impor plugin dan gunakan metodenya untuk memeriksa status mute:
import { CapacitorMute } from '@capgo/capacitor-mute';
// Periksa apakah perangkat dalam mode muteconst checkMuteState = async () => { const { value } = await CapacitorMute.isMuted();
if (value) { console.log('Perangkat dalam mode mute/senyap'); // Sesuaikan perilaku aplikasi untuk mode senyap } else { console.log('Suara perangkat menyala'); }};Referensi API
Section titled “Referensi API”isMuted()
Section titled “isMuted()”Memeriksa apakah perangkat saat ini dalam mode mute/senyap.
const result = await CapacitorMute.isMuted();// Mengembalikan: { value: boolean }Contoh Lengkap
Section titled “Contoh Lengkap”import { CapacitorMute } from '@capgo/capacitor-mute';
export class SoundManager { private isMuted = false;
async initialize() { // Dapatkan status mute awal await this.checkMuteState(); }
async checkMuteState() { try { const { value } = await CapacitorMute.isMuted(); this.isMuted = value; this.updateAppBehavior(); } catch (error) { console.error('Gagal memeriksa status mute:', error); } }
private updateAppBehavior() { if (this.isMuted) { // Perangkat dalam mode mute - sesuaikan perilaku aplikasi this.disableSoundEffects(); this.showVisualNotifications(); } else { // Suara perangkat menyala this.enableSoundEffects(); this.useAudioNotifications(); } }
private disableSoundEffects() { // Nonaktifkan suara dalam aplikasi console.log('Menonaktifkan efek suara'); }
private enableSoundEffects() { // Aktifkan suara dalam aplikasi console.log('Mengaktifkan efek suara'); }
private showVisualNotifications() { // Gunakan umpan balik visual daripada audio console.log('Menggunakan notifikasi visual'); }
private useAudioNotifications() { // Gunakan notifikasi audio console.log('Menggunakan notifikasi audio'); }}
// Penggunaanconst soundManager = new SoundManager();await soundManager.initialize();
// Polling secara berkala untuk memeriksa perubahansetInterval(() => { soundManager.checkMuteState();}, 5000); // Periksa setiap 5 detikPerilaku Platform
Section titled “Perilaku Platform”- Mendeteksi status sakelar mute fisik
- Tidak ada event perubahan real-time (diperlukan polling)
- Bekerja pada iPhone dan iPad dengan sakelar mute
Android
Section titled “Android”- Memeriksa apakah mode dering diatur ke senyap atau getar
- Tidak ada event perubahan (diperlukan polling)
- Berdasarkan mode dering AudioManager
Praktik Terbaik
Section titled “Praktik Terbaik”-
Polling untuk perubahan Karena plugin tidak menyediakan event real-time, lakukan polling secara berkala jika Anda perlu melacak perubahan:
// Periksa status mute secara berkalasetInterval(async () => {const { value } = await CapacitorMute.isMuted();if (value !== previousMuteState) {handleMuteStateChange(value);}}, 5000); -
Hormati preferensi pengguna Selalu hormati status mute dan sesuaikan perilaku audio aplikasi Anda dengan tepat.
-
Sediakan alternatif visual
const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Tampilkan notifikasi visualshowToast('Pesan baru diterima');} else {// Putar notifikasi suaraplayNotificationSound();}
Kasus Penggunaan
Section titled “Kasus Penggunaan”-
Manajemen Suara Game
const shouldPlaySound = async () => {const { value: isMuted } = await CapacitorMute.isMuted();return !isMuted && userPreferences.soundEnabled;}; -
Penanganan Notifikasi
const sendNotification = async (message: string) => {const { value: isMuted } = await CapacitorMute.isMuted();if (isMuted) {// Gunakan getaran atau notifikasi visualawait Haptics.vibrate();showBanner(message);} else {// Putar notifikasi suaraawait playSound('notification.mp3');}}; -
Pemutar Video
const initVideoPlayer = async () => {const { value: isMuted } = await CapacitorMute.isMuted();videoPlayer.setMuted(isMuted);if (isMuted) {showSubtitles(true);showMuteIndicator();}};
Pemecahan Masalah
Section titled “Pemecahan Masalah”-
Selalu mengembalikan false di Android
- Periksa apakah mode dering perangkat benar-benar diatur ke senyap
- Beberapa perangkat Android mungkin memiliki perilaku yang berbeda
-
Tidak ada event perubahan yang tersedia
- Plugin tidak menyediakan event perubahan real-time
- Implementasikan polling jika Anda perlu mendeteksi perubahan
-
Tidak berfungsi di simulator
- Simulator iOS tidak memiliki sakelar mute
- Uji pada perangkat nyata untuk hasil yang akurat