Comment obtenir de l'entrée microphone volume de la valeur avec l'api web audio?
Je suis à l'aide de l'entrée microphone avec l'api web audio et de la nécessité d'obtenir le volume de la valeur.
Droit maintenant, j'ai déjà eu le microphone de travail:
http://updates.html5rocks.com/2012/09/Live-Web-Audio-Input-Enabled
Aussi, je sais qu'il y a une méthode en manipulant le volume de fichier audio:
http://www.html5rocks.com/en/tutorials/webaudio/intro/
//Create a gain node.
var gainNode = context.createGain();
//Connect the source to the gain node.
source.connect(gainNode);
//Connect the gain node to the destination.
gainNode.connect(context.destination);
//Reduce the volume.
gainNode.gain.value = 0.5;
Mais comment combiner ces deux et obtenir le volume d'entrée de la valeur?
J'ai juste besoin de la valeur, pas besoin de le manipuler.
Quelqu'un sait?
Vous devez vous connecter pour publier un commentaire.
Il y a deux principales raisons pour vouloir le "volume":
1) détecter la source de "clips" - c'est à dire la valeur absolue du signal dépasse un niveau prédéfini, généralement très près de 1,0, où il va commencer à l'écrêtage.
2) donner à l'utilisateur une idée de comment haut et fort leur signal.
La raison pour laquelle je liste séparément parce que la première exige que vous traitez de tous les échantillons - parce que vous risquez de manquer une courte transitoire autrement. Pour cela, vous aurez besoin d'utiliser un ScriptProcessor nœud, et vous aurez à parcourir chaque échantillon dans la mémoire tampon à l'intérieur de onaudioprocess à regarder pour les valeurs absolues au-dessus de votre plan de niveau. Vous pourrait déterminer le niveau RMS-trop - juste la somme des carrés de chaque échantillon, diviser par N et de prendre la racine carrée. Pour NE PAS rendre de l'intérieur onaudioprocess, cependant, l'ensemble des valeurs que vous avez accès sur requestAnimationFrame.
Vous pouvez également utiliser un AnalyserNode de faire de la détection de niveau, et juste dans la moyenne des données, un peu comme ce que la réponse ci-dessus n'en getAverageVolume. Cependant, la réponse ci-dessus n'est PAS une bonne utilisation de ScriptProcessor - en fait, c'est à ne pas faire de traitement du script nœud du tout, pas même de transmettre les données à travers, c'est juste de l'utiliser comme une minuterie de rappel. Vous serait mieux servi en utilisant requestAnimationFrame que le visuel de rappel; ne jamais mise en page ou des paramètres visuels de l'intérieur onaudioprocess comme ça, ou vous êtes à la mendicité pour le thrash de votre système audio. Si vous n'avez pas besoin de détection de clip, il suffit de faire la getByteFrequencyCount/getAverageVolume à partir de ci-dessus sur un AnalyserNode (mais vous devez réduire le nombre de bandes dans l'Analyseur - 64 est le minimum, je pense), et vous devez pré-allouer et de la réutilisation d'un Uint8Array plutôt que d'allouer à chaque fois (qui va amplifier la collecte des ordures).
J'ai fait un volume d'affichage pour une lecture audio lorsque j'étais étudiant en HTML 5.
J'ai suivi ce tutoriel
http://www.smartjava.org/content/exploring-html5-web-audio-visualizing-sound
NOTE: je ne sais pas si cela va fonctionner sur une entrée audio est venu à partir d'un microphone
Bien qu'il est un peu tard, j'ai encore de l'espoir pour vous aider.
h5_get_microphone_volume