#javascript #audio
#javascript #Аудио
Вопрос:
Я только изучаю аудио в JavaScript, и у меня возникли проблемы с тем, что звук не трескается.
Я пытаюсь использовать exponentialRampToValueAtTime, но, похоже, он только регулирует время, без затухания, и, следовательно, все еще слышен треск.
Это мой код:
const AudioContext = window.AudioContext || window.webkitAudioContext;
let context = new AudioContext()
let o = context.createOscillator()
let g = context.createGain()
o.connect(g)
g.connect(context.destination)
g.gain.exponentialRampToValueAtTime(0.00001, 0.04);
o.start(0)
Комментарии:
1. эта проблема только с safari?
2. Похоже, этого не происходит. Я только что протестировал его в Firefox, и у меня тоже такая же проблема.
3. насколько я читал, firefox «частично поддерживает» этот метод, поэтому, возможно, не лучший другой браузер для проверки — вы пробовали запускать
g.gain.exponentialRampToValueAtTime(0.00001, 0.04);
послеo.start(0)
? — тем не менее, в любом случае вы получите0.04
секунды быстрого затухания звука (при1
условии, что gain по умолчанию, конечно)4. Кстати, большое спасибо за помощь! Я попытался разместить его позже, и все та же проблема. Я пробовал это как в Opera, так и в Chrome, и у меня другая проблема в том, что они будут издавать звук только в ответ на действие пользователя. Для справки, я использую код с этого сайта, чтобы попытаться внедрить звук в мою игру: marcgg.com/blog/2016/11/01/javascript-audio
5. Хорошо, итак, я решил проблему, похоже, это проблема с ботом Firefox и Safari. Мне нужно было добавить: ` g.gain.setValueAtTime(1, context.currentTime); `