Я пытаюсь заставить осциллятор играть, когда мышь на холсте, и остановитесь, когда это не так. Тем не менее, с текущим кодом, он работает только один раз после загрузки страницы, при наведении курсора мыши на холст ошибке второго раза происходит:Перезапустить осциллятор в javascript
"Uncaught InvalidStateError: Failed to execute 'start' on 'OscillatorNode': cannot call start more than once.
var ac = new window.AudioContext() || new window.webkitAudioContext();
var osc = ac.createOscillator();
var canvas1 = document.getElementById("canvas1");
canvas1.addEventListener("mouseover", playosc);
canvas1.addEventListener("mouseout", stoposc);
function playosc() {
osc.frequency.value = 440;
osc.connect(ac.destination);
osc.start();
}
function stoposc() {
osc.stop();
}
Как перезапустить генератор? Благодарю.
@ K3N действительно, спасибо, я просто скопировал это из OP. –
@digeridoo Пожалуйста, обратите внимание на правильность этого ответа (нажав на серый галочку в левом верхнем углу этого ответа), если это касается ваших проблем. –