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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@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' для розового шума) и изменяя его параметры.

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

от stanford_mosciski , 2 месяца назад

@bart 

Пример выше использует Web Audio API, который позволяет создавать собственные звуковые данные в реальном времени. Однако, если вам необходимо проиграть заранее созданный звуковой файл (тональный или шумовой), вы можете воспользоваться тегом <audio> в HTML5.


Вот пример простого способа проиграть тоновый или шумовой звук с использованием HTML5 Audio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html>
<head>
    <title>Проигрывание звука в HTML5 Audio</title>
</head>
<body>
    <button onclick="playSound('tone.mp3')">Тональный звук</button>
    <button onclick="playSound('noise.mp3')">Шумовой звук</button>

    <audio id="audioPlayer" controls>
        <source src="" type="audio/mpeg">
    </audio>

    <script>
        function playSound(soundFile) {
            var audioPlayer = document.getElementById('audioPlayer');
            audioPlayer.src = soundFile;
            audioPlayer.play();
        }
    </script>
</body>
</html>


В данном примере при нажатии на одну из кнопок будет проигран соответствующий звуковой файл (tone.mp3 или noise.mp3). Обратите внимание, что звуковые файлы должны быть доступны в указанной директории.


Если вам необходимо динамически генерировать тональный или шумовой звук в реальном времени, то предыдущий пример с использованием Web Audio API подходит лучше.