Spec-Zone.ru › Web APIs

AnalyserNode: свойство minDecibels

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

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

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

Свойство minDecibels интерфейса AnalyserNode — это значение с плавающей точкой, представляющее минимальное значение мощности в диапазоне масштабирования данных анализа FFT для преобразования в значения без знака байта. — по сути, это определяет минимальное значение для диапазона результатов при использовании getByteFrequencyData().

Значение

Число с плавающей точкой, представляющее минимальное значение децибел для масштабирования данных анализа FFT, где 0 дБ соответствует самому громкому возможному звуку, -10 дБ — это 1/10 от этого значения и т. д. Значение по умолчанию — -100 дБ.

При получении данных от getByteFrequencyData(), любые частоты с амплитудой minDecibels или ниже будут возвращены как 0.

Примечание: Если установлено значение больше, чем AnalyserNode.maxDecibels, будет выброшено исключение INDEX_SIZE_ERR.

Примеры

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

const audioCtx = new AudioContext();
const analyser = audioCtx.createAnalyser();
analyser.minDecibels = -90;
analyser.maxDecibels = -10;

// …

analyser.fftSize = 256;
const bufferLength = analyser.frequencyBinCount;
console.log(bufferLength);
const 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);

  const barWidth = (WIDTH / bufferLength) * 2.5;
  let barHeight;
  let x = 0;

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

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

Спецификация
Web Audio API
# dom-analysernode-mindecibels

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
minDecibels 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/AnalyserNode/minDecibels

Spec-Zone.ru

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