2

我正在尝试使用 javascript 录制音频并将其上传到服务器。我正在使用 Matt Diamond 的 Recorder js。但问题是生成的文件为 0 分钟。当通过 firebug 控制台调试时,发现 audiocontext 属性已暂停。当用谷歌搜索时发现记录音频上下文的状态应该处于运行状态。不知道问题是由于状态还是我错过了什么。想知道是什么导致 audiocontext 的状态处于挂起模式。如果我在其他浏览器上尝试状态正在运行并且正在生成文件。但我的限制是我想在我的应用程序中使用 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 中调试上述代码时已暂停。

提前致谢

4

2 回答 2

0

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

于 2016-05-16T09:21:28.557 回答
0

创建了一个 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);
});


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

于 2016-05-18T19:41:36.287 回答