Можно ли создавать звуки в JS?

209
01 февраля 2018, 20:11

Дамы и Господа, возник вопрос, можно ли на JS создавать звуки? Помню в детстве, я писал код на basic-ке, когда еще IBM 386 или IBM 486, был мечтой мечтой моего поколения)))).... Так вот в basic был оператор BEEP. Вопрос: есть ли некий аналог данного оператора на JS?

Answer 1

Я вижу два варианта

  1. Добавить тег <audio>
  2. Воспользоваться Web Audio API

Первый вариант позволит вопроизводить заранее записанные треки. Второй также позволит генерировать звуки.

Пример из MDN:

// создаем аудио контекст 
var audioCtx = new(window.AudioContext || window.webkitAudioContext)(); 
 
// создаем OscillatorNode - генератор 
var oscillator = audioCtx.createOscillator(); 
 
oscillator.type = 'square'; 
// задаем частоту в герцах 
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); 
oscillator.connect(audioCtx.destination); 
 
// запускаем пищалку 
oscillator.start(); 
// говорим "горшочек не вари" через 300 мс 
setTimeout(e => oscillator.stop(), 300);

См. также:

  1. Making Music in the Browser – Web Audio API, Part 1 (по-английски)
  2. Violent Theremin demo (демо)
  3. OscillatorNode (по-английски)
Answer 2

И так:

<audio id="beep" src="https://www.soundjay.com/button/beep-01a.wav"  
       autostart="false" > 
</audio> 
 
<a onclick="playSound();">Click me to hear a beep</a> 
 
<script> 
    function playSound() { 
          var sound = document.getElementById("beep"); 
          sound.play(); 
     } 
</script>

READ ALSO
Удалить элемент из цикла

Удалить элемент из цикла

Добрый день! Ситуация такая: вытаскиваю картинки из папки вот таким образом

182
Кеширование файлов с помощью JavaScript

Кеширование файлов с помощью JavaScript

Имеется определённый массив путей наcss,

173
Поиск js элемента по HTML коду

Поиск js элемента по HTML коду

Возникла необходимость находить элементы по коду самих элементов, пример -

137