Skip to main content

Mic

The Mic module provides functionality for managing microphone input and audio recording in the browser.

Features

  • 🎤 Microphone input device management
  • 🔊 Audio stream handling
  • 📊 Real-time audio analysis
  • 💾 Persistent device selection

Usage Example

import { Mic } from '@micdrop/client'

// Start microphone with default device
const stream = await Mic.start()

// Start microphone with specific device
const deviceStream = await Mic.start('device-id')

// Stop microphone and cleanup when done
Mic.stop()

// Monitor volume changes using the audio analyser
// Volume is in dB range -100 to 0
Mic.analyser.on('volume', (volume: number) => {
// Convert to 0-100 range for visualization if needed
const normalizedVolume = Math.max(0, volume + 100)
console.log('Current volume:', normalizedVolume)
})

API Reference

Functions

start(deviceId?: string): Promise<MediaStream>

Starts the microphone and returns the audio stream.

const stream = await Mic.start()

or

const stream = await Mic.start(deviceId)

stop(): void

Stops the microphone stream and cleans up resources.

Mic.stop()

Variables

analyser

An instance of AudioAnalyser that can be used to analyze the microphone input.

Mic.analyser.on('volume', (volume: number) => {
console.log('Current volume:', volume)
})

// AnalyserNode
// See https://developer.mozilla.org/docs/Web/API/AnalyserNode
console.log(Mic.analyser.node)

Browser Support

Fully supported in Chrome, Firefox, Safari and Edge.

Requires support for:

  • Web Audio API
  • MediaDevices API