AudioContext API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдзреНрд╡рдирд┐ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ



рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЙрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд╣рдЪрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡реЗрдм рдкреЗрдЬ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдЯреБрдХрдбрд╝рд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдпрд╛ рд╢реВрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рддреЛрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдХреБрд▓ рдЯреНрд░реИрдХрд┐рдВрдЧ


рд╣рд╛рд▓ рд╣реА рдореЗрдВ, NY рдЯрд╛рдЗрдореНрд╕ рдХреЗ рдкрддреНрд░рдХрд╛рд░ рдХрд╢реНрдореАрд░ рд╣рд┐рд▓ рдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреБрдЫ рдЬрд╛рдиреА-рдорд╛рдиреА рдХрдВрдкрдиреА Sift рдиреЗ рдЗрд╕ рдкрд░ 400-рдкреЗрдЬ рдбреЛрдЬрд┐рдпрд░ рдЬрдорд╛ рдХрд┐рдП рдереЗ ред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд░реАрджрд╛рд░реА рдХреА рд╕реВрдЪреА рд╣реИ, рдПрдпрд░рдмреАрдПрдирдмреА рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрджреЗрд╢, рдХреЙрдЗрдирдмреЗрд╕ рд╡реЙрд▓реЗрдЯ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди, рдЖрдИрдкреА рдкрддреЗ, iPhone рдкрд┐рдЬреНрдЬрд╛ рдСрд░реНрдбрд░ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░ рд▓реЙрдЧ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдХрдИ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХрдВрдкрдирд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП "рдЯреНрд░рд╕реНрдЯ рд░реЗрдЯрд┐рдВрдЧ" рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╡реЗ 16,000 рдХрд╛рд░рдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред 34,000 рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рд╕рд┐рдлреНрдЯ рдЯреНрд░реИрдХрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдХреБрдХреАрдЬрд╝ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реЛрддреА рд╣реИ - рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ / рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп "рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ" рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдХреБрд▓ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдлреЛрдВрдЯ, рдкреНрд▓рдЧрдЗрдиреНрд╕, рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмрд┐рдЯреНрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреА рд╣реИред рдХреИрдирд╡рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред

рдХреИрдирд╡рд╛рд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ


рд╡реЗрдм рдкреЗрдЬ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХрдИ рддрддреНрд╡реЛрдВ рд╕реЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред

<canvas class="canvas"></canvas> 

  const canvas = document.querySelector('.canvas'); const ctx = canvas.getContext('2d'); // Maximize performance effect by // changing blending/composition effect ctx.globalCompositeOperation = 'lighter'; // Render a blue rectangle ctx.fillStyle = "rgb(0, 0, 255)"; ctx.fillRect(25,65,100,20); // Render a black text: "Hello, OpenGenus" var txt = "Hello, OpenGenus"; ctx.font = "14px 'Arial'"; ctx.fillStyle = "rgb(0, 0, 0)"; ctx.fillText(txt, 25, 110); // Render arcs: red circle & green half-circle ctx.fillStyle = 'rgb(0,255,0)'; ctx.beginPath(); ctx.arc(50, 50, 50, 0, Math.PI*3, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = 'rgb(255,0,0)'; ctx.beginPath(); ctx.arc(100, 50, 50, 0, Math.PI*2, true); ctx.closePath(); ctx.fill(); 

рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдПрдХ рдХреИрдирд╡рд╛рд╕ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдЯреЙрдбреБрд░рд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ () рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдпреВрдЖрд░рдЖрдИ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

  console.log(canvas.toDataURL()); /* Ouputs something like: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby mblAAAWDElEQVQImWNgoBMAAABpAAFEI8ARexAAAElFTkSuQmCC" */ 

рдпрд╣ рдпреВрдЖрд░рдЖрдИ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдЕрд▓рдЧ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдХреЛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛:

  • рд╕реНрдерд╛рдкрд┐рдд рдлреЛрдВрдЯ (рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рдЧрднрдЧ 4.37 рдмрд┐рдЯреНрд╕);
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд▓рдЧрдЗрдиреНрд╕ (3.08 рдмрд┐рдЯреНрд╕);
  • HTTP_ACCEPT рд╣реЗрдбрд░ (16.85 рдмрд┐рдЯреНрд╕)
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ;
  • рднрд╛рд╖рд╛;
  • рд╕рдордп рдХреНрд╖реЗрддреНрд░
  • рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдХрд╛рд░
  • рдХреИрдорд░рд╛ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди;
  • рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг
  • рдФрд░ рдЕрдиреНрдп

рдХреИрдирд╡рд╛рд╕ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд╣реИрд╢ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд 4.76 рдмрд┐рдЯреНрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИред WebGL рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд╣реИрд╢ 4.36 рдмрд┐рдЯреНрд╕ рд╣реИред

рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкрд░реАрдХреНрд╖рдг

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: AudioContext рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдСрдбрд┐рдпреЛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ ред

2016 рдореЗрдВ рд╡рд╛рдкрд╕, рдЗрд╕ рдкрд╣рдЪрд╛рди рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реИрдХрдбрд╝реЛрдВ рд╕рд╛рдЗрдЯреЛрдВ рдЬреИрд╕реЗ рдПрдХреНрд╕рдкреАрдбрд┐рдпрд╛, Hotels.com рдФрд░ рдЕрдиреНрдп рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

AudioContext рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ


рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдорд╛рди рд╣реИ: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрд╢ (рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ) рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдСрдбрд┐рдпреЛ рд╕реНрдЯреИрдХ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреИрдирд╡рд╕ рдПрдкреАрдЖрдИ рдХреЗ рдмрдЬрд╛рдп, рдСрдбрд┐рдпреЛ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╡реЗрдм рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдХрдо-рдЖрд╡реГрддреНрддрд┐ рдСрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдзреНрд╡рдирд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдЙрдкрдХрд░рдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдИ рдзреНрд╡рдирд┐ рд░рд┐рдХреЙрд░реНрдб рдпрд╛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реНрдкреАрдХрд░ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреНрд░реЛрдо рд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдлрд┐рд░ рдУрдкреЗрд░рд╛ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

AudioContext API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдЯреЗрд╕реНрдЯ



рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ, рд╡реЙрдХрдереНрд░реВ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЖрд╡реГрддреНрддрд┐ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

      let freq_data = []; 

  2. рдлрд┐рд░ рдПрдХ AudioContext рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ AudioContext рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

      // Create nodes const ctx = new AudioContext(); // AudioContext Object const oscillator = ctx.createOscillator(); // OscillatorNode const analyser = ctx.createAnalyser(); // AnalyserNode const gain = ctx.createGain(); // GainNode const scriptProcessor = ctx.createScriptProcessor(4096, 1, 1); // ScriptProcessorNode 

  3. рд╡реЙрд▓реНрдпреВрдо рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдиреЛрдбреНрд╕ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

      // Disable volume gain.gain.value = 0; // Connect oscillator output (OscillatorNode) to analyser input oscillator.connect(analyser); // Connect analyser output (AnalyserNode) to scriptProcessor input analyser.connect(scriptProcessor); // Connect scriptProcessor output (ScriptProcessorNode) to gain input scriptProcessor.connect(gain); // Connect gain output (GainNode) to AudioContext destination gain.connect(ctx.destination); 

  4. ScriptProcessorNode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдСрдбрд┐рдпреЛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрд╡реГрддреНрддрд┐ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред
    • рдлрд╝рдВрдХреНрд╢рди Float32Array рдореЗрдВ рдбреЗрдЯрд╛ рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА) рдХреЗ рдмрд░рд╛рдмрд░ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕рд░рдгреА Float32Array рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдорд╛рдиреЛрдВ рд╕реЗ рднрд░рддрд╛ рд╣реИред
    • рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рддрдм рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рд░рдгреА рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( freq_data ) рддрд╛рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХреЗрдВред
    • рдиреЛрдбреНрд╕ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

        scriptProcessor.onaudioprocess = function(bins) { // The number of (frequency) data values bins = new Float32Array(analyser.frequencyBinCount); // Fill the Float32Array array of these based on values analyser.getFloatFrequencyData(bins); // Copy frequency data to 'freq_data' array for (var i = 0; i < bins.length; i = i + 1) { freq_data.push(bins[i]); } // Disconnect the nodes from each other analyser.disconnect(); scriptProcessor.disconnect(); gain.disconnect(); // Log output of frequency data console.log(freq_data); }; 

  5. рд╣рдо рдЯреЛрди рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдзреНрд╡рдирд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреА рд╣реИред

      // Start playing tone oscillator.start(0); 
рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  / *
 рдЖрдЙрдЯрдкреБрдЯ:
 [
 -119.79788967947266, -119.29875891113281, -118.90072674835938,
 -118.08164726269531, -117.02244567871094, -115.73435120521094,
 -114.24555969238281, -112.56678771972656, -110.70404089034375,
 -108.64968109130886, ...
 ]
 * / 

рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдпрд╣ рд╕рдВрдпреЛрдЬрди рдПрдХ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрд╢реЗрдб рд╣реИ, рдЬреЛ рддрдм рдЕрдиреНрдп рдкрд╣рдЪрд╛рди рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдСрдбрд┐рдпреЛ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдбрд┐рдлреЗрдВрдбрд░ рдЬреИрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╢реЛрд░ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред

рдПрдирд╡рд╛рдИ рдЯрд╛рдЗрдореНрд╕ рдИрдореЗрд▓ рдкрддреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдк рдкрд░ рдПрдХрддреНрд░рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред

  • рдЬреАрдЯрд╛ рдЧреНрд▓реЛрдмрд▓ : рдСрдирд▓рд╛рдЗрди рдлреЙрд░реНрдо
  • рдЦреБрджрд░рд╛ рд╕рдореАрдХрд░рдг : returnactivityreport@theretailequation.com
  • рдЬреЛрдЦрд┐рдо рднрд░рд╛ : privacy@riskified.com
  • Kustomer : privacy@kustomer.com
  • Sift : privacy@sift.com, рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рдСрдирд▓рд╛рдЗрди рдлреЙрд░реНрдо рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ




Source: https://habr.com/ru/post/hi475586/


All Articles