AnalyserNode.getByteFrequencyData()
===================================

Метод **`getByteFrequencyData()`** интерфейса `AnalyserNode` копирует текущие данные частоты в переданный в него Uint8Array `Uint8Array` (en-US) (unsigned byte array).

Данные частоты состоят из целых чисел по шкале от 0 до 255.

Каждый элемент в массиве представляет собой значение в децибелах для определённой частоты. Частоты распределены линейно от 0 до 1/2 частоты дискретизации. Например, для частоты дискретизации `48000` последний элемент массива будет представлять значение в децибелах для `24000` Гц.

Если в массиве меньше элементов, чем в `AnalyserNode.frequencyBinCount` (en-US), лишние элементы удаляются. Если в нем больше элементов, чем необходимо, лишние элементы игнорируются.

Синтаксис
---------


```js
var audioCtx = new AudioContext();
var analyser = audioCtx.createAnalyser();
var dataArray = new Uint8Array(analyser.frequencyBinCount); // Uint8Array должен иметь такой же размер, что и frequencyBinCount

void analyser.getByteFrequencyData(dataArray); // заполняет Uint8Array данными, полученными из getByteFrequencyData()
```

### Параметры

`array`

`Uint8Array` (en-US) , в который будут скопированы данные частотной области. Для любого образца, который не содержит данных, значение равно `-Infinity`.
 Если в массиве меньше элементов, чем в `AnalyserNode.frequencyBinCount` (en-US), лишние элементы удаляются. Если в нем больше элементов, чем необходимо, лишние элементы игнорируются.


### Возвращаемое значение

None.

Пример
------

Следующий пример показывает базовое использование `AudioContext` для создания AnalyserNode, затем `requestAnimationFrame` и `<canvas>` для повторения сбора частотных данных и вывода в стиле гистограммы winamp для текущего аудиовхода. Для получения дополнительных примеров / информации ознакомьтесь с нашей демонстрацией Voice-change-O-matic (см. соответствующий код в строках app.js lines 128–205 ).


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

  ...

analyser.fftSize = 256;
var bufferLength = analyser.frequencyBinCount;
console.log(bufferLength);
var dataArray = new Uint8Array(bufferLength);

canvasCtx.clearRect(0, 0, WIDTH, HEIGHT);

function draw() {
  drawVisual = requestAnimationFrame(draw);

  analyser.getByteFrequencyData(dataArray);

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

  var barWidth = (WIDTH / bufferLength) \* 2.5;
  var barHeight;
  var x = 0;

  for(var i = 0; i < bufferLength; i++) {
    barHeight = dataArray[i];

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

    x += barWidth + 1;
  }
};

draw();
```

Параметры
---------

array

`Uint8Array` (en-US), в который будут скопированы данные частотной области.

Спецификации
------------

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

Совместимость с браузерами
--------------------------

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

Смотрите также
--------------

* Using the Web Audio API (en-US)