🎀 Micdrop

Mute/Unmute Call

Control microphone input during a conversation by muting and unmuting the microphone while keeping the call active.

Mute Call

Temporarily mute the microphone to stop sending audio while keeping the conversation active:

import { Micdrop } from '@micdrop/client'
// Mute the microphone - stops recording but keeps call active
Micdrop.mute()
console.log('Call muted:', Micdrop.isMuted) // true

When muted:

  • ⏸️ Microphone stops recording
  • ⏸️ No audio is sent to the server
  • βœ… Voice activity detection stays enabled
  • βœ… WebSocket connection remains active
  • βœ… Assistant audio continues to play
  • βœ… Call processing continues normally

Unmute Call

Unmute the microphone to resume sending audio:

// Unmute the microphone - restarts recording
Micdrop.unmute()
console.log('Call muted:', Micdrop.isMuted) // false
console.log('Now listening:', Micdrop.isListening) // true

When unmuted:

  • βœ… Microphone starts recording again

State Monitoring

Monitor mute/unmute state changes:

Micdrop.on('StateChange', (state) => {
if (state.isMuted) {
console.log('πŸ”‡ Microphone is muted')
// Update UI to show muted state
updateStatus('Muted - Click to unmute')
} else if (state.isListening) {
console.log('🎀 Microphone unmuted - Listening...')
// Update UI to show active state
updateStatus('Listening for your voice')
}
})

UI Integration

Create mute/unmute controls in your interface:

// Button handler for mute/unmute toggle
function toggleMute() {
if (Micdrop.isMuted) {
Micdrop.unmute()
document.getElementById('muteBtn').textContent = 'Mute'
} else {
Micdrop.mute()
document.getElementById('muteBtn').textContent = 'Unmute'
}
}

React example:

import { useMicdropState } from '@micdrop/react'
function CallControls() {
const state = useMicdropState()
return (
<button onClick={state.isMuted ? Micdrop.unmute : Micdrop.mute}>
{state.isMuted ? 'πŸ”Š Unmute' : 'πŸ”‡ Mute'}
</button>
)
}

Difference from Pause

Unlike pausing, muting only affects the microphone input:

FeatureMutePause
Microphone❌ Disabled❌ Disabled
Assistant Audioβœ… Continues❌ Stopped
Processingβœ… Active❌ Paused
Connectionβœ… Activeβœ… Active

Use mute when you want to temporarily stop speaking but continue listening to the assistant. Use pause when you want to completely halt the conversation.