Audio qrafı
Web Audio API səsi qovşaqlardan ibarət qraf kimi emal edir. Mənba siqnal yaradır, effekt qovşaqları onu dəyişir, sonuncu qovşaq səsi dinamiklərə göndərir.
AudioContextbütün səs işinin konteyneri və saatıdır.ctx.currentTimesaniyə ilə vaxtdır.- Mənbələr:
OscillatorNode(sintez olunmuş dalğa) vəAudioBufferSourceNode(nümunə). - Effektlər:
GainNode(səs səviyyəsi),BiquadFilterNode(filtr),StereoPannerNode(balans). AnalyserNodeyalnız siqnalı ölçür;ctx.destinationçıxışdır.gain.gainvəosc.frequencykimiAudioParamdəyərlərini cədvəl üzrə dəyişmək olar.
Qovşaqlar connect() ilə birləşdirilir; o, verilən qovşağı qaytarır, ona görə zəncirlər soldan sağa oxunur.
AudioContext və autoplay siyasəti
const ctx = new AudioContext();
startButton.addEventListener('click', async () => {
if (ctx.state === 'suspended') {
await ctx.resume();
}
beep();
});İstifadəçi səhifə ilə qarşılıqlı əlaqədə olmayana qədər brauzerlər səsi bloklayır. Əvvəlcədən yaradılmış kontekst suspended vəziyyətində başlayır. ctx.resume() metodunu klik, toxunuş və ya düymə emalçısında çağırın və səsi oradan başladın.
⚠️
resume()istifadəçi hərəkətindən kənarda çağırılsa, onun promise-i heç vaxt tamamlanmaya bilər. Yüklənəndə səs çalmağa çalışmaq əvəzinə "Start" düyməsi göstərin.
Osilyator, gain və zərf
OscillatorNode dalğa yaradır: sine, square, sawtooth və ya triangle. Tezlik hertzlə verilir; 440 Hz la notudur.