Используя ToneJS в Chrome, я часто получаю следующее сообщение об ошибке: «AudioContext не может быть запущен. Он должен быть возобновлен (или создан) после пользовательского жеста на странице».
Например,с помощью приведенного ниже кода, я получаю это сообщение каждый раз, когда использую ctrl-r или ctrl-f5 для обновления страницы.
Я могу заставить его работать снова, набрав Tone.context.resume()
в консоли, но это довольно красивоповторы.Почему это происходит, и как я могу это остановить?
var keyToPitch = { "z":"C3", "s":"C#3", "x":"D3", "d":"D#3", "c":"E3", "v":"F3", "g":"F#3", "b":"G3", "h":"G#3", "n":"A3", "j":"A#3", "m":"B3", ",":"C4" }
var synth = new Tone.PolySynth(6, Tone.Synth, {
"oscillator" : {
"type": "sawtooth",
"partials" : [0, 2, 3, 4],
}
}).toMaster();
window.addEventListener('keydown', this.onkeydown)
window.addEventListener('keyup', this.onkeyup)
function onkeydown(e){
synth.triggerAttack(keyToPitch[e.key], Tone.context.currentTime)
}
function onkeyup(e){
synth.triggerRelease(keyToPitch[e.key])
}