recursal/MDN huggingface dataset:
AnalyserNode.getByteFrequencyData()
===================================

La méthode **`getByteFrequencyData()`** de l'objet `AnalyserNode` copie les données de fréquence dans le `Uint8Array` (en-US) passé en argument.

Si le tableau a moins d'éléments que `AnalyserNode.frequencyBinCount`, les excédants sont supprimés; s'il en a davantage, les excédants sont ignorés.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();

// Uint8Array devrait avoir la même taille que frequencyBinCount
var tableauDonnees = new Uint8Array(analyseur.frequencyBinCount);

// remplit le Uint8Array avec les données retournées par la méthode getByteFrequencyData()
analyseur.getByteFrequencyData(tableauDonnees);
```

### Retourne

Un `Uint8Array` (en-US).

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();

  ...

analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(tailleMemoireTampon);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);

  analyseur.getByteFrequencyData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

  var largeurBarre = (LARGEUR / tailleMemoireTampon) \* 2.5;
  var hauteurBarre;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    hauteurBarre = tableauDonnees[i];

    contexteCanvas.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
       contexteCanvas.fillRect(x,HAUTEUR-hauteurBarre/2,largeurBarre,hauteurBarre/2);

    x += largeurBarre + 1;
  }
};

dessiner();
```

Paramètres
----------

array

Le `Uint8Array` (en-US) dans lequel seront copiées les données relatives à la fréquence.

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-getbytefrequencydata |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode()
==============

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Le constructeur **`AnalyserNode`** crée un nouvel objet `AnalyserNode`.

Syntaxe
-------


```js
var analyserNode = new AnalyserNode(context, options);
```

### Paramètres

*context*

Référence à un `AudioContext`.

*options* Facultatif

Un objet avec les propriétés suivantes :

* `fftSize`: taille initiale sde la FFT pour l'analyse du domaine fréquentiel . La valeur par défaut est 2048.
* `maxDecibels`: valeur maximale de puissance de la plage pour l'analyse FFT, en décibels. La valeur par défaut est -30.
* `minDecibels`: valeur minimale de puissance de la plage pour l'analyse FFT, en décibels. La valeur par défaut est -100.
* `smoothingTimeConstant`: valeur de lissage pour l'analyse FFT. La valeur par défaut est 0.8

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-analysernode |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
AnalyserNode.fftSize
====================

La propriété `fftSize` de l'objet `AnalyserNode` est un nombre entier non signé qui représente la taille de la FFT (transfomation de Fourier rapide) à utiliser pour déterminer le domaine fréquentiel.

La valeur de la propriété `fftSize` property's doit être une puissance de 2 non nulle située dans l'intervalle compris entre `32` et 32768 ; sa valeur par défaut est `2048`.

**Note :** Si la valeur n'est pas une puissance de 2, ou si elle ne se trouve pas dans l'intervalle spécifiée, l'exception `INDEX_SIZE_ERR` est levée.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
analyseur.fftSize = 2048;
```

### Valeur

Un nombre entier non signé.

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).


```js
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var analyser = audioCtx.createAnalyser();

  ...

analyser.fftSize = 2048;
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);

// dessine un oscilloscope pour la source audio courante

function draw() {

      drawVisual = requestAnimationFrame(draw);

      analyser.getByteTimeDomainData(dataArray);

      canvasCtx.fillStyle = 'rgb(200, 200, 200)';
      canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);

      canvasCtx.lineWidth = 2;
      canvasCtx.strokeStyle = 'rgb(0, 0, 0)';

      canvasCtx.beginPath();

      var sliceWidth = WIDTH \* 1.0 / bufferLength;
      var x = 0;

      for(var i = 0; i < bufferLength; i++) {

        var v = dataArray[i] / 128.0;
        var y = v \* HEIGHT/2;

        if(i === 0) {
          canvasCtx.moveTo(x, y);
        } else {
          canvasCtx.lineTo(x, y);
        }

        x += sliceWidth;
      }

      canvasCtx.lineTo(canvas.width, canvas.height/2);
      canvasCtx.stroke();
    };

    draw();
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-fftsize |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.frequencyBinCount
==============================

La propriété **`frequencyBinCount`** de l'objet `AnalyserNode` est un nombre entier non signé équivalent à la moitié la taille de la FFT. Il correspond en général au nombre de valeurs que vous aurez à manipuler pour la visualisation.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
var tailleMemoireTampon = analyseur.frequencyBinCount;
```

### Valeur

Un nombre entier non signé.

Example
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscopeen sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
analyseur.minDecibels = -90;
analyseur.maxDecibels = -10;

  ...

analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(tailleMemoireTampon);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);

  analyseur.getByteFrequencyData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

  var largeurBarre = (LARGEUR / tailleMemoireTampon) \* 2.5 - 1;
  var hauteurBarre;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    hauteurBarre = tableauDonnees[i];

    contexteCanvas.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
       contexteCanvas.fillRect(x,HAUTEUR-hauteurBarre/2,largeurBarre,hauteurBarre/2);

    x += largeurBarre;
  }
};

dessiner();
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-frequencybincount |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.maxDecibels
========================

La propriété **`maxDecibels`** de l'objet `AnalyserNode` est un nombre flottant à double précision représentant la puissance maximum de l'intervalle pour l'analyse des données FFT, pour une conversion vers des valeurs non signées ou des nombres flottants — en d'autres termes, elle spécifie la valeur maximum pour l'intervalle de résultats des méthodes `getFloatFrequencyData()` et `getByteFrequencyData()`.

Sa valeur par défaut est `-30`.

**Note :** Si une valeur supérieure à `AnalyserNode.maxDecibels` est indiquée, une erreur `INDEX_SIZE_ERR` est levée.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
analyseur.maxDecibels = -10;
```

### Valeur

Un nombre flottant à double précision.

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lignes 128–205).


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
analyseur.minDecibels = -90;
analyseur.maxDecibels = -10;

  ...

analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(bufferLength);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);

  analyseur.getByteFrequencyData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

  var largeurBarre = (LARGEUR / tailleMemoireTampon) \* 2.5;
  var hauteurBarre;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    hauteurBarre = tableauDonnees[i];

    contexteCanvas.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
       contexteCanvas.fillRect(x,HEIGHT-hauteurBarre/2,largeurBarre,hauteurBarre/2);

    x += largeurBarre + 1;
  }
};

dessiner();
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-maxdecibels |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.getFloatTimeDomainData()
=====================================

La méthode **`getFloatTimeDomainData()`** de l'interface `AnalyserNode` copie les données de forme d'onde ou du domaine temporel, dans un tableau `Float32Array` (en-US) passé en paramètre.

Si le tableau a moins d'éléments que la propriété `AnalyserNode.fftSize`, les données en excès sont supprimées. S'il a davantage d'éléments, les éléments non utilisés sont ignorés.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();

// La taille du tableau Float32Array doit correspondre à la valeur de la propriété fftSize
var tableauDonnees = new Float32Array(analyseur.fftSize);

// remplit le tableau Float32Array avec les données renvoyées par la méthode getFloatTimeDomainData()
analyseur.getFloatTimeDomainData(tableauDonnees);
```

### Renvoie

Un tableau `Float32Array` (en-US).

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lignes 128–205).


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();

  ...

analyseur.fftSize = 1024;
var tailleMemoireTampon = analyseur.fftSize;
console.log(tailleMemoireTampon);
var tableauDonnees = new Float32Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);
  analyseur.getFloatTimeDomainData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(200, 200, 200)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);
  contexteCanvas.lineWidth = 2;
  contexteCanvas.strokeStyle = 'rgb(0, 0, 0)';
  contexteCanvas.beginPath();

  var largeurTranche = LARGEUR \* 1.0 / tailleMemoireTampon;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    var v = tableauDonnees[i] \* 200.0;
    var y = HAUTEUR/2 + v;

    if(i === 0) {
      contexteCanvas.moveTo(x, y);
    } else {
      contexteCanvas.lineTo(x, y);
    }
    x += largeurTranche;
  }

  contexteCanvas.lineTo(canvas.width, canvas.height/2);
  contexteCanvas.stroke();
};

dessiner();
```

Paramètres
----------

array

Un tableau `Float32Array` (en-US) dans lequel seront copiées les données du domaine temporel.

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-getfloattimedomaindata |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.minDecibels
========================

La propriété **`minDecibels`** de l'objet `AnalyserNode` est un nombre flottant à double précision représentant la puissance minimum de l'intervalle pour l'analyse des données FFT, pour une conversion vers des valeurs non signées ou des nombres flottants — en d'autres termes, elle spécifie la valeur minimum pour l'intervalle de résultats des méthodes `getFloatFrequencyData()` et `getByteFrequencyData()`.

Sa valeur par défaut est `-100`.

**Note :** Si une valeur inférieure à `AnalyserNode.minDecibels` est indiquée, une erreur `INDEX_SIZE_ERR` est levée.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
analyseur.maxDecibels = -90;
```

### Valeur

Un nombre flottant à double précision.

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
analyseur.minDecibels = -90;
analyseur.maxDecibels = -10;

  ...

analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(bufferLength);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);

  analyseur.getByteFrequencyData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

  var largeurBarre = (LARGEUR / tailleMemoireTampon) \* 2.5;
  var hauteurBarre;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    hauteurBarre = tableauDonnees[i];

    canvasCtx.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
       canvasCtx.fillRect(x,HEIGHT-hauteurBarre/2,largeurBarre,hauteurBarre/2);

    x += largeurBarre + 1;
  }
};

dessiner();
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-mindecibels |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.getByteTimeDomainData()
====================================

La méthode **`getByteTimeDomainData()`** de l'interface `AnalyserNode` copie les données de forme d'onde, ou du domaine temporel, dans un tableau `Uint8Array` (en-US) passé en paramètre.

Si le tableau a moins d'éléments que la propriété `AnalyserNode.fftSize`, les données en excès sont supprimées. S'il a davantage d'éléments, les éléments non utilisés sont ignorés.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();

// La taille du tableau Uint8Array doit correspondre à la valeur de la propriété fftSize
var tableauDonnees = new Uint8Array(analyseur.fftSize);

// remplit le tableau Uint8Array avec les données renvoyées par la méthode getByteTimeDomainData()
analyseur.getByteTimeDomainData(tableauDonnees);
```

### Renvoie

Un tableau `Uint8Array` (en-US).

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lignes 128–205).


```js
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioCtx.createAnalyser();

  ...

analyser.fftSize = 2048;
const bufferLength = analyser.fftSize;
const dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);

// dessine un oscilloscope pour la source audio courante
function draw() {
  drawVisual = requestAnimationFrame(draw);
  analyser.getByteTimeDomainData(dataArray);

  canvasCtx.fillStyle = 'rgb(200, 200, 200)';
  canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);

  canvasCtx.lineWidth = 2;
  canvasCtx.strokeStyle = 'rgb(0, 0, 0)';

  const sliceWidth = WIDTH \* 1.0 / bufferLength;
  let x = 0;

  canvasCtx.beginPath();
  for(var i = 0; i < bufferLength; i++) {
    const v = dataArray[i]/128.0;
    const y = v \* HEIGHT/2;

    if(i === 0)
      canvasCtx.moveTo(x, y);
    else
      canvasCtx.lineTo(x, y);

    x += sliceWidth;
  }

  canvasCtx.lineTo(WIDTH, HEIGHT/2);
  canvasCtx.stroke();
};

draw();
```

Paramètres
----------

array

Le tableau `Uint8Array` (en-US) dans lequel les données temporelles seront copiées.

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-getbytetimedomaindata |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
AnalyserNode.smoothingTimeConstant
==================================

La propriété **`smoothingTimeConstant`** de l'interface `AnalyserNode` est un nombre flottant à double précision qui représente une moyenne entre le buffer courant et le buffer précédent - elle sert à lisser la transition entre les valeurs.

La valeur est `0.8` par défaut; elle doit être comprise entre `0` et `1`. Lorsqu'elle vaut 0, aucune moyenne n'est effectuée, tandis que la valeur 1 signifie que le chevauchement entre le buffer en cours et le buffer précédent est conséquent lors du calcul des valeurs, ce qui a pour effet d'adoucir le changement lors des appels `AnalyserNode.getFloatFrequencyData`/`AnalyserNode.getByteFrequencyData`.

En termes techniques, on applique une fenêtre de Blackman pour lisser les valeurs dans le temps. La valeur par défaut convient à la plupart des cas.

**Note :** Si la valeur n'est pas comprise entre 0 et 1, une exception `INDEX_SIZE_ERR` est levée.

Syntaxe
-------


```js
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
analyseur.smoothingTimeConstant = 1;
```

### Valeur

Un nombre flottant à double précision.

Exemple
-------

L'exemple suivant montre comment créer simplement un `AnalyserNode` avec `AudioContext`, puis utiliser `requestAnimationFrame` et `<canvas>` pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).

`Si vou sêtes curieux du fonctionnement de smoothingTimeConstant()`, essayez de cloner l'exemple ci-dessous et d'affecter : `analyser.smoothingTimeConstant = 0;`. Vous verrez que les changements de valeur sont bien plus discordants.


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
analyseur.minDecibels = -90;
analyseur.maxDecibels = -10;
analyseur.smoothingTimeConstant = 0.85;

  ...

analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(tailleMemoireTampon);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);

contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);

function dessiner() {
  dessin = requestAnimationFrame(dessiner);

  analyseur.getByteFrequencyData(tableauDonnees);

  contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
  contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

  var largeurBarre = (LARGEUR / tailleMemoireTampon) \* 2.5;
  var hauteurBarre;
  var x = 0;

  for(var i = 0; i < tailleMemoireTampon; i++) {
    hauteurBarre = tableauDonnees[i];

    contexteCanvas.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
       contexteCanvas.fillRect(x, HAUTEUR-hauteurBarre/2, largeurBarre, hauteurBarre/2);

    x += largeurBarre + 1;
  }
};

dessiner();
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-analysernode-smoothingtimeconstant |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API (en-US)
SharedWorkerGlobalScope.onconnect
=================================

La proriété **`onconnect`** de l'interface `SharedWorkerGlobalScope` (en-US) est un gestionnaire d'évènement pour l'évènement `connect`, c'est à dire quand une connexion `MessagePort` (en-US) est ouverte entre le `SharedWorker` et le *thread* principale.

Syntaxe
-------


```js
onconnect = function() { ... };
```

Exemple
-------

Cet exemple montre le gestionnaire d'évènement `onconnect` quand une connection depuis le thread principal vers un fichier de *worker* partagé via un `MessagePort` (en-US). L'objet évènement est un `MessageEvent`.

Le port de connexion peut-être récupéré avec la propriété `ports` de l'objet évènement. Le port a un gestionnaire d'évènement `onmessage` pour gérer les évènement venant de cet port et la méthode `postMessage()` peut-être utilisée pour répondre au *thread* principale qui utilise le *worker*.


```js
onconnect = function (e) {
  var port = e.ports[0];

  port.onmessage = function (e) {
    var workerResult = "Result: " + e.data[0] \* e.data[1];
    port.postMessage(workerResult);
  };

  port.start();
};
```


Pour l'exemple complet en fonctionnement, voir Basic shared worker example (run shared worker.)

**Note :** La propriété `data` de l'objet évènement est `null` dans Firefox. À partir de la version 65, elle est initialisée comme une chaîne vide, selon les spécifications (bug Firefox 1508824).

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # event-workerglobalscope-connect |
| HTML Standard # handler-sharedworkerglobalscope-onconnect |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `SharedWorkerGlobalScope` (en-US)