Recorder is a JavaScript library for capturing audio from browser microphones and processing it in real time across web platforms.
The library solves the problem of recording audio in web applications by wrapping the getUserMedia API and providing a unified interface for microphone access. It handles real-time audio capture and processing, allowing developers to record directly from the browser without server-side dependencies. The tool supports recording from various audio sources including microphone streams, WebRTC remote streams, and HTML media element capture streams. It offers multiple output formats—MP3, WAV, PCM, G711A, G711U, OGG, AMR, and WebM—with transcoding capabilities that allow conversion of recorded buffers or arbitrary PCM data into the desired format.
The library works across most modern browsers that implement getUserMedia, including Chrome, Firefox, Safari, iOS 14.3 and later, Android WebView, and various Android browsers updated after 2021. It also functions in non-browser environments like Node.js and can be used in WeChat mini-programs and uni-app through the RecordApp component. The tool is optimized for single-channel audio and supports extended recording sessions through real-time memory management. Developers choosing this tool should note that it focuses on voice recording rather than stereo audio capture. The minimal build sizes—150KB for MP3 support and 25KB for WAV—make it suitable for web applications where bandwidth matters. The project includes plugins for audio visualization, pitch and speed adjustment, speech recognition integration, and audio stream playback, making it applicable to scenarios ranging from simple recording to complex real-time speech-to-text applications.
The project maintains active engagement with users through community channels and offers customization services for specific recording requirements. Development activity shows ongoing refinement of browser compatibility and format support, with documentation covering multiple integration patterns including Vue, TypeScript, and ES modules.