2014-05-21 64 views
4

我在談論反饋 - 當您製作一個簡單的JavaScript應用程序,可以從用戶打開一個流並讀取頻率分析(或其它)時,它將全部收到數據返回到Google Chrome和Opera中的耳機。 Firefox在大多數時間都處於沉默狀態,隨機創建一個包含不穩定反饋的巨大混亂 - 它也會在幾秒鐘後關閉流。一般來說,這東西在Firefox中不起作用。如何避免播放正在錄製的聲音

我創建了一個fiddle。如果你的瀏覽器不支持它,你只會在我假設的控制檯中出錯。

代碼的重要組成部分的功能是當用戶接受麥克風訪問請求被稱爲:

 //Not sure why do I do this 
     var inputPoint = context.createGain(); 

     // Create an AudioNode from the stream. 
     var source = context.createMediaStreamSource(stream); 
     source.connect(inputPoint);   

     //Analyser - this converts raw data into spectral analysis 
     window.analyser = context.createAnalyser(); 
     //Mores stuff I know nothing about 
     analyser.fftSize = 2048; 
     //Sounds much like connecting nodes in MatLab, doesn't it? 
     inputPoint.connect(analyser); 
     analyser.connect(context.destination); 
     ///THIS should probably make the sound silent (gain:0) but it doesn't 
     var zeroGain = context.createGain(); 
     zeroGain.gain.value = 0.0; 
     //More connecting... are you already lost which node is which? Because I am. 
     inputPoint.connect(zeroGain); 
     zeroGain.connect(context.destination); 

零收益的想法是不是我的,我已經從簡單的sound recorder demo偷來的。但是對他們有用的東西不適合我。 該演示在Firefox中也沒有問題,就像我一樣。

在功能mediaGranted(流)

回答