diff --git a/package.json b/package.json index 1f945c19ac617b21e24f502a60dab73d756019eb..2f6d4d3782fcc6a6cad5c390d485b5c7a0a520c2 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "eslint-plugin-react": "^7.5.1", "file-loader": "1.1.6", "get-float-time-domain-data": "0.1.0", + "get-user-media-promise": "1.1.1", "gh-pages": "github:rschamp/gh-pages#publish-branch-to-subfolder", "html-webpack-plugin": "^2.30.0", "immutable": "3.8.1", diff --git a/src/lib/audio/audio-recorder.js b/src/lib/audio/audio-recorder.js index 528bb1eec28e9a020d37e7caa2ebb1cf11c97c58..2d1bcb91dd3bc3c3fbb686ed1f8252ce2117acae 100644 --- a/src/lib/audio/audio-recorder.js +++ b/src/lib/audio/audio-recorder.js @@ -1,4 +1,5 @@ import 'get-float-time-domain-data'; +import getUserMedia from 'get-user-media-promise'; import SharedAudioContext from './shared-audio-context.js'; import {computeRMS} from './audio-util.js'; @@ -22,17 +23,19 @@ class AudioRecorder { startListening (onStarted, onUpdate, onError) { try { - navigator.getUserMedia({audio: true}, userMediaStream => { - if (!this.disposed) { - this.started = true; - onStarted(); - this.attachUserMediaStream(userMediaStream, onUpdate); - } - }, e => { - if (!this.disposed) { - onError(e); - } - }); + getUserMedia({audio: true}) + .then(userMediaStream => { + if (!this.disposed) { + this.started = true; + onStarted(); + this.attachUserMediaStream(userMediaStream, onUpdate); + } + }) + .catch(e => { + if (!this.disposed) { + onError(e); + } + }); } catch (e) { if (!this.disposed) { onError(e);