2015-12-27 17 views
3

我試圖創建一個分析器節點來從麥克風獲取信號,並能夠使用接收到的輸入創建一個圖形。但我不想揚聲器仍然收回麥克風信號。在揚聲器中靜音麥克風,但仍然能夠使用Web Audio Api分析(createAnalyser)?

源(麥克風) - >分析 - >目標(?

目標始終是揚聲器......我可以把目的地爲空或類似的,並且能夠還在分析麥克風?

我試圖玩Volumne(增益節點),但最終影響分析儀。

總結:我需要能夠分析來自麥克風的輸入,但在揚聲器上靜音該信號。

編輯:這是我在做什麼。

analyser = context.createAnalyser(); 
analyser.smoothingTimeConstant = 0.4; 
analyser.fftSize = 64; 

microphone.connect(analyser) 
analyser.connect(context.destination); 

這工作正常......但我在揚聲器上獲得聲音。 如果我問例如:

var data = new Uint8Array(analyzer.frequencyBinCount); 
analyzer.getByteFrequencyData(data) 

那麼數據將包含來自麥克風效應初探。

但是,如果我以後添加增益這樣

volume.gain.value = 0; 
microphone.connect(analyser) 
analyser.connect(volume); 
volume.connect(context.destination); 

或者我不要使連接到context.destination,那麼數據陣列將是所有0(而不是從麥克風REPONSE)

回答

2

添加增益節點的分析節點後,並將其值設置爲0。所以..

var volume = context.createGain(); 
volume.gain.value = 0; 

microphone.connect(analyser); 
analyser.connect(volume); 
volume.connect(context.destination); 
+0

這是我做的第一件事,但是我從分析器中得到了一個0的數組 – JsStack

+0

你介意查看我的類似問題嗎? https://stackoverflow.com/questions/47799590/audiocontext-gain-node-does-not-mute-audio-source-web-audio-api – Surz

+0

heh。已經看到並回答了。 :) – cwilso

2

事實上,你甚至都不需要連接analys呃。它應該在沒有連接到目的地的情況下處理。

+0

我也這樣做了,分析儀也得到了一個0的數組。 – JsStack

+0

你介意查看我的類似問題嗎? https://stackoverflow.com/questions/47799590/audiocontext-gain-node-does-not-mute-audio-source-web-audio-api – Surz

相關問題