Easily record microphone on all devices
GreggHume

GreggHume @greggcbs

About: A developer who works with and on some of the worlds leading brands. My company is called Cold Brew Studios, see you out there :)

Joined:
Mar 10, 2021

Easily record microphone on all devices

Publish Date: Aug 24 '22
4 3

I have had an array of issues with mediaRecorder:

  1. Audio doesnt play on all devices or browsers
  2. Audio isnt in a standard format
  3. Audio is blank on some devices like ios

This package saved my life! No data chunks, no converting of files or types, it does it for you:
https://github.com/closeio/mic-recorder-to-mp3

Simple code example:

const MicRecorder = require('mic-recorder-to-mp3');

// New instance
const recorder = new MicRecorder({
  bitRate: 128
});

// Start recording. Browser will request permission to use your microphone.
recorder.start().then(() => {
  // update ui or whatever
}).catch((e) => {
  console.error(e);
});

// Once you are done singing your best song, stop and get the mp3.
recorder.stop().getMp3().then(([buffer, blob]) => {
  // do what ever you want with buffer and blob
  // Example: Create a mp3 file and play
  const file = new File(buffer, 'me-at-thevoice.mp3', {
    type: blob.type,
    lastModified: Date.now()
  });

  const player = new Audio(URL.createObjectURL(file));
  player.play();

}).catch((e) => {
  alert('We could not retrieve your message');
  console.log(e);
});
Enter fullscreen mode Exit fullscreen mode

Beats working with mediaRecorder directly. Thanks closeio, you make us devs look like we know what we are doing.

Comments 3 total

  • aTechGuy
    aTechGuyNov 3, 2022

    Thanks a lot for writing this post - 'Easily record microphone on all devices'

  • GreggHume
    GreggHumeNov 14, 2022

    With iPhones new security additions it seems web developers could face quite a few challenges in being able to record microphone audio on all devices.

    If you have issues let me know.

  • Entonman
    EntonmanOct 6, 2023

    Dealing with microphone recording can be a real puzzle sometimes, and I totally understand your frustration. It's awesome to hear that you found a solution that works like a charm.
    I'll definitely check out that package you mentioned; anything that simplifies the process and saves time is a win for us devs. Plus, it's like having a secret weapon in our coding arsenal!
    If you ever need recommendations or info on microphones, there's this cool site I stumbled upon: asmrmicrophones.com/. It's been a game-changer for me when it comes to choosing the right mic for different projects.

Add comment