Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MediaRecorder-暂停和恢复事件不';我不能在Firefox中工作_Javascript_Firefox_Webrtc_Mozilla_Mediarecorder - Fatal编程技术网

Javascript MediaRecorder-暂停和恢复事件不';我不能在Firefox中工作

Javascript MediaRecorder-暂停和恢复事件不';我不能在Firefox中工作,javascript,firefox,webrtc,mozilla,mediarecorder,Javascript,Firefox,Webrtc,Mozilla,Mediarecorder,我试着把我的脑袋绕过去,所以我编写了一个简单的web应用程序,可以启动、暂停、恢复和停止录音。代码似乎工作正常,直到我在Firefox(最新版本)中进行了测试 Javascript代码: var mediaRecorder = null, constraints = { audio: true }; function onSuccess( stream ) { mediaRecorder = new MediaRecorder( stream ); function getS

我试着把我的脑袋绕过去,所以我编写了一个简单的web应用程序,可以启动、暂停、恢复和停止录音。代码似乎工作正常,直到我在Firefox(最新版本)中进行了测试

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);
<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>
Html代码:

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);
<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中,当单击pause时,mediaRecorder实际上是暂停的,但它不会触发暂停事件(onpause),对于resume也是如此


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

不幸的是,这是一个解决方案,我发现了这个很棒的跨浏览器库,它对我来说非常有用:

有些已知的bug,请参阅@PhilippHancke非常感谢,这很有意义。该漏洞是一年前报告的!?!,idk为什么他们没有修好它@PhilippHancke这台MediaRecorder似乎非常不稳定。@CryptoBird因为它偶然发现了一个不清楚的区域。@Dexter你太棒了,现在图片非常清晰。祝贺你们,错误已经修复了