2015-11-29 127 views
2

我正在嘗試使用javascript記錄音頻並將其上傳到服務器。我正在使用記錄器js的Matt Diamond.But問題是文件生成時間爲0分鐘。當通過螢火蟲控制檯調試發現audiocontext屬性被暫停。當谷歌搜索出來錄製時,audiocontext的狀態應該處於運行狀態。不知道問題是由於國家還是我缺少某些東西。想知道是什麼原因導致audiocontext狀態處於暫停模式。如果我嘗試在其他瀏覽器上運行狀態並生成文件。但我的限制是我想使用Firefox瀏覽我的應用程序Firefox Audiocontext已暫停

火狐版本: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 

      }); 
    } 
} 

調試的螢火audiocontext上面的代碼暫停時。

在此先感謝

回答

0

這不是一個直接的答案,但它解決了問題,從我的其他answer拍攝,如果你需要的是音頻文件發送到服務器,而不是使用龐大的未壓縮wav文件,您可以使用MediaRecorder API以壓縮格式ogg格式輕鬆(並且本機)錄製音頻,自v25起支持firefox,自v47起支持chrome。

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


  • 有關於Firefox瀏覽器創建0 wav文件

Issue 139有時,它是建立在0.0期間的wav文件上recorder.js github repo一個開放的問題firefox#139