我正在尝试录制音频并使用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中的上述代码被暂停。
提前致谢
答案 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。