Как сгенерировать звук (tone/noize) в html5 audio?

Пользователь

от bart , в категории: HTML/CSS , 7 месяцев назад

Как сгенерировать звук (tone/noize) в html5 audio?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от magali , 6 месяцев назад

@bart 

Для генерации звука в HTML5 Audio можно использовать JavaScript API.


Вот пример генерации тона с помощью HTML5 Audio и JavaScript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
  <title>Генерация тона в HTML5 Audio</title>
</head>
<body>
  <button onclick="playTone()">Воспроизвести</button>

  <script>
    function playTone() {
      // Создание audio-элемента
      var audio = new Audio();

      // Создание аудио-контекста
      var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

      // Создание генератора звука
      var oscillator = audioCtx.createOscillator();
      oscillator.type = 'sine'; // тип звука (синусоида, квадрат, пила и т.д.)
      oscillator.frequency.value = 440; // частота звука в герцах (в данном случае - A4)

      // Подключение генератора звука к выходу аудио-контекста
      oscillator.connect(audioCtx.destination);

      // Начало воспроизведения
      oscillator.start();

      // Остановка воспроизведения через 1 секунду
      setTimeout(function() {
        oscillator.stop();
      }, 1000);
    }
  </script>
</body>
</html>


Этот пример создает кнопку, при нажатии на которую начинается воспроизведение тона с частотой 440 Гц (клавиша A4 на пианино) в течение 1 секунды. Вы можете изменить значение частоты и длительности звука в соответствии с вашими нуждами.


То же самое можно сделать для генерации шума, использовав другой тип генератора звука (например, 'white' для белого шума или 'pink' для розового шума) и изменяя его параметры.