Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov
Издать звук динамика указанной частоты и длительности
Исходный код этого примера:
<form>
<label>Частота: <input id="fIn" min="40" max="6000" oninput="ShowRange()" type="range"></label>
<span id="fOut">773 Hz</span><br>
<label>Форма: <input id="tIn" min="0" max="3" oninput="ShowRange()" type="range"></label>
<span id="tOut">square</span><br>
<label>Громкость: <input id="vIn" min="0" max="100" oninput="ShowRange()" type="range"></label>
<span id="vOut">0.66</span><br>
<label>Длительность: <input id="dIn" min="1" max="5000" oninput="ShowRange()" type="range"></label>
<span id="dOut">266 ms</span>
<br>
<button onclick="beep();"> Да будет звук! </button>
</form>
<script>
audioCtx = new(window.AudioContext || window.webkitAudioContext)();
ShowRange();
function ShowRange() {
frequency = document.getElementById("fIn").value;
document.getElementById("fOut").innerHTML = frequency + ' Hz';
switch (document.getElementById("tIn").value * 1) {
case 0: type = 'sine'; name='синус'; break;
case 1: type = 'square'; name='квадрат'; break;
case 2: type = 'sawtooth'; name='пилообразный'; break;
case 3: type = 'triangle'; name='треугольник'; break;
}
document.getElementById("tOut").innerHTML = name;
volume = document.getElementById("vIn").value / 100;
document.getElementById("vOut").innerHTML = volume;
duration = document.getElementById("dIn").value;
document.getElementById("dOut").innerHTML = duration + ' ms';
}
function beep() {
var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);
gainNode.gain.value = volume;
oscillator.frequency.value = frequency;
oscillator.type = type;
oscillator.start();
setTimeout(
function() {
oscillator.stop();
},
duration
);
}
</script>
.
Прокомментировать/Отблагодарить