2015-12-27 4 views
3

En essayant de créer un nœud Analyzer pour obtenir le signal d'un microphone, et être capable de créer un graphique avec l'entrée reçue. Mais je ne veux pas que les haut-parleurs continuent de recevoir le signal du microphone.Désactiver le microphone dans les haut-parleurs mais être capable d'analyser (createAnalyser) avec Web Audio Api?

Source (micro) -> Analyseur -> Destination (? )

La destination est toujours les haut-parleurs ... Puis-je mettre la destination à un vide ou similaire, et être en mesure encore analyser le microphone?

J'ai essayé de jouer avec le Volumne (noeud de gain) mais cela affecte l'analyseur à la fin.

En résumé: Je dois pouvoir analyser une entrée du microphone mais couper ce signal sur les haut-parleurs.

EDIT: Voici ce que je fais.

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

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

Cela fonctionne très bien ... mais je reçois le son sur les haut-parleurs. Si je demande par exemple:

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

Ensuite, les données contiendront le microphone du Reponse.

Mais si j'ajoute gain après comme celui-ci

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

ou je ne fais pas le connecter à context.destination, le tableau de données sera tout 0 (pas de micro Reponse)

Répondre

2

Ajouter un nœud de gain après le nœud de l'analyseur et définissez sa valeur à 0. Alors ..

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

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

Ce fut la première chose que j'ai faite, mais je reçois un tableau de 0 de l'analyseur – JsStack

+0

Pourriez-vous vérifier ma question similaire? https://stackoverflow.com/questions/47799590/audiocontext-gain-node-does-not-mute-audio-source-web-audio-api – Surz

+0

Heh. Déjà vu et a répondu. :) – cwilso

2

en fait, vous n'avez même pas besoin de connecter les analys er. Il devrait traiter sans être connecté à la destination.

+0

Je l'ai fait aussi, et l'analyseur obtient une réponse un tableau de 0 ainsi. – JsStack

+0

Pourriez-vous vérifier ma question similaire? https://stackoverflow.com/questions/47799590/audiocontext-gain-node-does-not-mute-audio-source-web-audio-api – Surz