aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/analysernode/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/api/analysernode/index.md')
-rw-r--r--files/fr/web/api/analysernode/index.md178
1 files changed, 178 insertions, 0 deletions
diff --git a/files/fr/web/api/analysernode/index.md b/files/fr/web/api/analysernode/index.md
new file mode 100644
index 0000000000..217c8b7f64
--- /dev/null
+++ b/files/fr/web/api/analysernode/index.md
@@ -0,0 +1,178 @@
+---
+title: AnalyserNode
+slug: Web/API/AnalyserNode
+tags:
+ - API
+ - AnalyserNode
+ - Reference
+translation_of: Web/API/AnalyserNode
+---
+<div>{{APIRef("Web Audio API")}}</div>
+
+<p>L' interface <strong><code>AnalyserNode</code></strong><strong> </strong>représente un noeud capable de fournir en temps réel des informations d'analyse de la fréquence et du domaine temporel. C'est un {{domxref("AudioNode")}} qui transmet le flux audio inchangé depuis l'entrée vers la sortie, mais permet de capturer les données générées pour les traiter et/ou les visualiser.</p>
+
+<p>Il a exactement une entrée et une sortie. Le noeud fonctionne même si la sortie n'est pas connectée.</p>
+
+<p><img alt="Sans modifier le flux audio, le nœud permet d'obtenir la fréquence et les données temporelles associées en utilisant une transformée de Fourier rapide." src="fttaudiodata_en.svg"></p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row"><dfn>Nombre d'entrées</dfn></th>
+ <td><code>1</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><dfn>Nombre de sorties</dfn></th>
+ <td><code>1</code> (mais peut ne pas être connectée)</td>
+ </tr>
+ <tr>
+ <th scope="row"><dfn>Mode de comptage des canaux</dfn></th>
+ <td><code>"explicit"</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><dfn>Nombre de canaux</dfn></th>
+ <td><code>1</code></td>
+ </tr>
+ <tr>
+ <th scope="row"><dfn>Interprétation du canal</dfn></th>
+ <td><code>"speakers"</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Héritage">Héritage</h2>
+
+<p>L'interface hérite des parents suivants:</p>
+
+<p>{{InheritanceDiagram}}</p>
+
+<h2 id="Constructeur">Constructeur</h2>
+
+<dl>
+ <dt>{{domxref("AnalyserNode.AnalyserNode", "AnalyserNode()")}}</dt>
+ <dd>Crée une nouvelle instance de l'objet <code>AnalyserNode</code>.</dd>
+</dl>
+
+<h2 id="Propriétés">Propriétés</h2>
+
+<p><em>Hérite des propriétés de son parent. </em><em>{{domxref("AudioNode")}}</em>.</p>
+
+<dl>
+ <dt>{{domxref("AnalyserNode.fftSize")}}</dt>
+ <dd>Entier long non signé qui représente la taille de la <a href="/en-US/docs/">FFT</a> (transformation de Fourier rapide) qui sera utilisé pour déterminer le domaine fréquentiel.</dd>
+ <dt>{{domxref("AnalyserNode.frequencyBinCount")}} {{readonlyInline}}</dt>
+ <dd>Entier long non signé égal à la moitié fftSize. C'est en général le nombre de valeurs qu'on manipule pour la visualisation.</dd>
+ <dt>{{domxref("AnalyserNode.minDecibels")}}</dt>
+ <dd>Nombre flottant à double précision qui représente la valeur minimale de puissance dans la plage de mise à l'échelle pour l'analyse des données FFT, pour la conversion en octets non signés - cela équivaut à la valeur minimum de la plage de résultats de <code>getByteFrequencyData()</code>.</dd>
+ <dt>{{domxref("AnalyserNode.maxDecibels")}}</dt>
+ <dd>Nombre flottant à double précision qui représente la valeur maximale de puissance dans la plage de mise à l'échelle pour l'analyse des données FFT, pour la conversion en octets non signés - cela équivaut à la valeur maximum de la plage de résultats de <code>getByteFrequencyData()</code>.</dd>
+ <dt>{{domxref("AnalyserNode.smoothingTimeConstant")}}</dt>
+ <dd>Nombre flottant à double précision qui représente la moyenne de la trame en cours avec la dernière trame analysée - elle permet de lisser la transition entre les valeurs.</dd>
+</dl>
+
+<h2 id="Méthodes">Méthodes</h2>
+
+<p><em>Hérite des propriétés de son parent, </em><em>{{domxref("AudioNode")}}</em>.</p>
+
+<dl>
+ <dt>{{domxref("AnalyserNode.getFloatFrequencyData()")}}</dt>
+ <dd>Copie les données de fréquence dans un tableau {{domxref("Float32Array")}} passé en paramètre.</dd>
+</dl>
+
+<dl>
+ <dt>{{domxref("AnalyserNode.getByteFrequencyData()")}}</dt>
+ <dd>Copie les données de fréquence dans un tableau {{domxref("Uint8Array")}} passé en paramètre.</dd>
+ <dt>{{domxref("AnalyserNode.getFloatTimeDomainData()")}}</dt>
+ <dd>Copie les données de forme d'onde ou du domaine temporel dans un tableau {{domxref("Float32Array")}} passé en paramètre.</dd>
+</dl>
+
+<dl>
+ <dt>{{domxref("AnalyserNode.getByteTimeDomainData()")}}</dt>
+ <dd>Copie les données de forme d'onde ou du domaine temporel dans un tableau {{domxref("Uint8Array")}} passé en paramètre.</dd>
+</dl>
+
+<h2 id="Exemples">Exemples</h2>
+
+<div class="note">
+<p><strong>Note :</strong>: Voir <a href="/fr/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API">Visualisations avec la Web Audio API</a> pour plus d'informations.</p>
+</div>
+
+<p>L'exemple suivant montre comment créer simplement un  <code>AnalyserNode</code> avec {{domxref("AudioContext")}}, puis utiliser  {{domxref("window.requestAnimationFrame()","requestAnimationFrame")}} et {{htmlelement("canvas")}} pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo <a href="https://mdn.github.io/voice-change-o-matic/">Voice-change-O-matic</a>  (et en particulier <a href="https://github.com/mdn/voice-change-o-matic/blob/gh-pages/scripts/app.js#L128-L205">app.js lines 128–205</a>).</p>
+
+<pre class="brush: js">var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
+var analyseur = contexteAudio.createAnalyser();
+
+ ...
+
+analyseur.fftSize = 2048;
+var tailleMemoireTampon = analyseur.frequencyBinCount;
+var tableauDonnees = new Uint8Array(tailleMemoireTampon);
+analyseur.getByteTimeDomainData(tableauDonnees);
+
+// dessine un oscilloscope de la source audio
+var canvas = document.getElementById("oscilloscope");
+var contexteCanvas = canvas.getContext("2d");
+
+function dessiner() {
+
+ requestAnimationFrame(dessiner);
+
+ analyseur.getByteTimeDomainData(tableauDonnees);
+
+ contexteCanvas.fillStyle = 'rgb(200, 200, 200)';
+ contexteCanvas.fillRect(0, 0, WIDTH, HEIGHT);
+
+ contexteCanvas.lineWidth = 2;
+ contexteCanvas.strokeStyle = 'rgb(0, 0, 0)';
+
+ contexteCanvas.beginPath();
+
+ var sliceWidth = WIDTH * 1.0 / tailleMemoireTampon;
+ var x = 0;
+
+ for(var i = 0; i &lt; tailleMemoireTampon; i++) {
+
+ var v = tableauDonnees[i] / 128.0;
+ var y = v * HEIGHT/2;
+
+ if(i === 0) {
+ contexteCanvas.moveTo(x, y);
+ } else {
+ contexteCanvas.lineTo(x, y);
+ }
+
+ x += sliceWidth;
+ }
+
+ contexteCanvas.lineTo(canvas.width, canvas.height/2);
+ contexteCanvas.stroke();
+ };
+
+ dessiner();</pre>
+
+<h2 id="Spécifications">Spécifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Spécification</th>
+ <th scope="col">État</th>
+ <th scope="col">Commentaires</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Web Audio API', '#the-analysernode-interface', 'AnalyserNode')}}</td>
+ <td>{{Spec2('Web Audio API')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilité_navigateurs">Compatibilité navigateurs</h2>
+
+<p>{{Compat("api.AnalyserNode")}}</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li><a href="/fr/docs/Web/API/Web_Audio_API/Using_Web_Audio_API">Utiliser la Web Audio API</a></li>
+</ul>