Spec-Zone.ru › Web APIs

BaseAudioContext: метод createAnalyser()

Базовая реализация Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с апреля 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод createAnalyser() интерфейса BaseAudioContext создаёт узел AnalyserNode, который можно использовать для получения данных о времени и частоте аудиосигнала и создания визуализаций данных.

Примечание: Рекомендуется использовать конструктор AnalyserNode() для создания узла AnalyserNode; см. Создание аудиоузла.

Примечание: Более подробная информация об использовании этого узла доступна на странице AnalyserNode.

Синтаксис

createAnalyser()

Параметры

Нет.

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

Узел AnalyserNode.

Примеры

В следующем примере показано базовое использование AudioContext для создания узла Analyser, а затем использование requestAnimationFrame() для многократного сбора данных временной области и рисования "осциллографического" вывода текущего аудиовхода. Для более полных примеров/информации ознакомьтесь с нашим демо Voice-change-O-matic (см. строки 108-193 файла app.js для соответствующего кода).

const audioCtx = new AudioContext();
const analyser = audioCtx.createAnalyser();

// …

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

// draw an oscilloscope of the current audio source

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();

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

  for (let 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(canvas.width, canvas.height / 2);
  canvasCtx.stroke();
}

draw();

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

Спецификация
Web Audio API
# dom-baseaudiocontext-createanalyser

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
createAnalyser 14 12 25 15 6 18 25 14 6 1.0 4.4.3

См. также

  • Использование Web Audio API

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createAnalyser

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API