Skip to content

Instantly share code, notes, and snippets.

@goofmint
Created February 20, 2018 07:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goofmint/2996a03cd6995a1cdefab9ce955972a5 to your computer and use it in GitHub Desktop.
Save goofmint/2996a03cd6995a1cdefab9ce955972a5 to your computer and use it in GitHub Desktop.
function startRecording(stream, lengthInMS) {
let recorder = new MediaRecorder(stream);
let data = [];
recorder.ondataavailable = event => data.push(event.data);
recorder.start();
let stopped = new Promise((resolve, reject) => {
recorder.onstop = resolve;
recorder.onerror = event => reject(event.name);
});
let recorded = new Promise((resolve, reject) => {
setTimeout(() => {
recorder.state == "recording" && recorder.stop()
resolve();
}, lengthInMS);
});
return Promise.all([
stopped,
recorded
])
.then(() => data);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment