MediaRecorder - 暂停和恢复事件在Firefox中不起作用

时间:2018-05-02 11:37:16

标签: javascript firefox webrtc mozilla mediarecorder

我正试图绕着MediaRecorder API包围,所以我编写了一个简单的网络应用程序,可以启动,暂停,恢复和停止录音。代码似乎工作正常,直到我在Firefox(最新版本)中测试它。

[ The full code is here ]

Javascript代码:

var mediaRecorder = null,
constraints = { audio: true };


function onSuccess( stream ) {
   mediaRecorder = new MediaRecorder( stream );

   function getStatus() {
      alert('The mediaRecorder is ' + mediaRecorder.state);
   }

   mediaRecorder.onstart = getStatus;
   mediaRecorder.onpause = getStatus;
   mediaRecorder.onresume = getStatus;
   mediaRecorder.onstop = getStatus;
}

var onError = function(err) {
   console.log('Error: ' + err);
}

navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);

Html代码:

<button type="button" onclick="mediaRecorder.start()">Start</button>
<button type="button" onclick="mediaRecorder.pause()">Pause</button>
<button type="button" onclick="mediaRecorder.resume()">Resume</button>
<button type="button" onclick="mediaRecorder.stop()">Stop</button>

我发现,在Firefox中,当点击暂停时,mediaRecorder实际上已暂停,但它不会触发暂停事件(暂停),并且恢复同样的事情。

问题:有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

不幸的是,这是一个bug in Mozilla Firefox,作为一种解决方法,我发现了这个很棒的跨浏览器库,它对我来说就像一个魅力:Audrec