Firefox Audiocontext暂停

时间:2015-11-29 05:06:50

标签: javascript firefox web-audio audiocontext recorder.js

我正在尝试录制音频并使用javascript将其上传到服务器。我正在使用Matt Diamond的Recorder js。但问题是生成的文件是0分钟。通过firebug控制台调试时发现audiocontext属性已被暂停。当谷歌发现录音时,音响文本的状态应该处于运行状态。不知道问题究竟是因为国家还是我错过了什么。想知道是什么原因导致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中的上述代码被暂停。

提前致谢

2 个答案:

答案 0 :(得分:1)

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

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);
});
  

Issue 139有时它会在firefox#139

上创建0.0持续时间的wav文件

答案 1 :(得分:0)

这不是一个直接的答案,但它解决了问题,取自我的其他answer,如果您只需要将音频文件发送到服务器,而不是使用笨重的未压缩wav文件,您可以使用MediaRecorder API轻松(并原生)以压缩ogg格式录制音频,自v25以来在Firefox中受支持,自v47以来一直支持Chrome。