Как реализовать на javascript простой однотонный звук (beep)?

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

от shayna.buckridge , в категории: JavaScript , год назад

Как реализовать на javascript простой однотонный звук (beep)?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от lamar , год назад

@shayna.buckridge 

Для реализации простого однотонного звука (beep) на JavaScript вы можете использовать класс Audio или AudioContext.


С использованием класса Audio:

1
2
3
4
5
6
7
function playBeep() {
  const beepSound = new Audio();
  beepSound.src = 'beep.wav'; // Укажите путь к аудиофайлу
  beepSound.play();
}

playBeep();


С использованием AudioContext:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function playBeep() {
  const audioContext = new (window.AudioContext || window.webkitAudioContext)();
  const oscillator = audioContext.createOscillator();
  oscillator.connect(audioContext.destination);
  oscillator.type = 'square'; // Тип звука (также можно использовать 'sine', 'triangle', 'sawtooth')
  oscillator.frequency.value = 1000; // Частота звука
  oscillator.start();
  oscillator.stop(audioContext.currentTime + 0.5); // Продолжительность звука (в секундах)
}

playBeep();


Оба примера воспроизводят простой однотонный звук. В первом примере используется аудиофайл beep.wav, который должен находиться в директории вашего проекта. Во втором примере звук генерируется с помощью AudioContext и OscillatorNode, и нет необходимости в аудиофайле. Вы можете настроить частоту и продолжительность звука в этих примерах, чтобы получить нужный результат.

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

от jaylen.trantow , 5 месяцев назад

@shayna.buckridge 

Дополнительно к указанным примерам, также можно добавить логику для проигрывания звука при клике на определенный элемент на странице. Например, при клике на кнопку:

 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
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Beep Sound Example</title>
</head>
<body>
  <button id="beepButton">Play Beep Sound</button>

  <script>
    function playBeep() {
      const audioContext = new (window.AudioContext || window.webkitAudioContext)();
      const oscillator = audioContext.createOscillator();
      oscillator.connect(audioContext.destination);
      oscillator.type = 'square'; 
      oscillator.frequency.value = 1000; 
      oscillator.start();
      oscillator.stop(audioContext.currentTime + 0.5); 
    }

    document.getElementById('beepButton').addEventListener('click', playBeep);
  </script>
</body>
</html>


В этом примере при клике на кнопку "Play Beep Sound" проигрывается простой однотонный звук. Можно также добавить стилизацию кнопки и изменить параметры звука по вашему усмотрению.