Firefox Audiocontext suspended



我正在尝试录制音频并使用javascript将其上传到服务器。我使用Matt Diamond的Recorder js。但问题是生成文件的时间是0分钟。当通过firebug控制台进行调试时,发现audiocontext属性已挂起。当谷歌搜索到录音时,音频上下文的状态应该处于运行状态。不知道这个问题到底是因为状态还是我遗漏了什么。想知道是什么原因导致音频上下文处于暂停模式。如果我在其他浏览器上尝试,则状态为正在运行,并且正在生成文件。但我的限制是,我想在应用程序中使用firefox

Firefox版本:42.0

以下是代码

if(audioRecorder)
{
 audioRecorder.clear();
 audioRecorder.record();
 setTimeout(stopRecorder,9000);   // 9 secs 
}
function stopRecorder()
{
  if(audioRecorder)
    {
       audioRecorder.stop();
       audioRecorder.exportWAV(function(blob){
       alert("Blob size : "+blob.size);
       // code for sending the blob to server 
          });
     }
}

在firebug中调试上述代码时,audiocontext被挂起。

提前感谢

这不是一个直接的答案,但它解决了这个问题,从我的另一个答案来看,如果你只需要将音频文件发送到服务器,而不是使用庞大的未压缩wav文件,你可以使用MediaRecorder API轻松地(并且本机地)以压缩ogg格式录制音频,firefox从v25开始支持,chrome从v47开始支持。

创建了一个JSFiddle并对其进行了几次测试-在Firefox42[macosx]上正常工作

  • https://jsfiddle.net/8unmn650/

function createDownloadLink() {
   recorder && recorder.exportWAV(function(blob) {
     var url = URL.createObjectURL(blob);
     var li = document.createElement('li');
     var au = document.createElement('audio');
     var hf = document.createElement('a');
     au.controls = true;
     au.src = url;
     hf.href = url;
     hf.download = new Date().toISOString() + '.wav';
     hf.innerHTML = hf.download;
     li.appendChild(au);
     li.appendChild(hf);
     recordingslist.appendChild(li);
});

  • RecorderJS演示似乎在FF 42[macosx]上运行正常

  • recorder.js github repo上存在一个关于Firefox浏览器创建0s wav文件的公开问题

问题139有时它在firefox#139 上创建持续时间为0.0的wav文件

最新更新