Profesionalni internetni odvisnik • Navdušenec nad igrami • Tehnološki ustvarjalec
Profesionalni internetni odvisnik • Navdušenec nad igrami • Tehnološki ustvarjalec

Ustvarite avdio vizualizator z uporabo osnovnega HTML-ja, CSS-ja in JavaScripta

Kako korak za korakom iz nič ustvariti horizontalni vizualizator zvoka z uporabo osnovnega HTML-ja, CSS-ja in JavaScripta!
To stran so za vaše udobje iz angleščine prevedli moji visoko motivirani praktikanti s področja umetne inteligence. Ker se še vedno učijo, je morda prišlo do kakšnih napak. Za najbolj natančne informacije si oglejte angleško različico.
Domov Blog Ustvarite avdio vizualizator z uporabo osnovnega HTML-ja, CSS-ja in JavaScripta

Upoštevajte, da je bila ta objava na blogu objavljena oktobra 2020, zato so nekateri deli morda zastareli, odvisno od tega, kdaj jo berete. Žal teh objav ne morem vedno v celoti posodabljati, da bi zagotovil točnost informacij.

To je vodnik po korakih, kako ustvariti horizontalni vizualizator zvoka iz nič z uporabo osnovnega HTML-ja, CSS-ja in JavaScripta.

Oglejte si videoposnetek

Prosim, poglejte si videoposnetek, kjer bom stvari podrobneje razložil.

Celotna izvorna koda

Spodaj je celotna izvorna koda za horizontalni vizualizator zvoka.

<!-- License MIT, Author Special Agent Squeaky (specialagentsqueaky.com) --> <!doctype html> <html lang="en"> <head> <title>My Eq</title> <style> body { overflow: hidden; } .background { position: absolute; top: -50px; right: -50px; bottom: -50px; left: -50px; background-image: url("background.jpg"); background-position: center center; background-size: cover; filter: blur(15px); } .track-title { position: absolute; top: 200px; right: 0; left: 0; color: white; font-family: Calibri; font-size: 100px; text-align: center; } .visualizer-container { position: absolute; bottom: 450px; right: 0; left: 0; text-align: center; } .visualizer-container__bar { display: inline-block; background: white; margin: 0 2px; width: 25px; } </style> </head> <body> <audio src="track.mp3" controls></audio> <div class="background"></div> <div class="track-title">Awesome song</div> <div class="visualizer-container"></div> <script> (function () { // The number of bars that should be displayed const NBR_OF_BARS = 50; // Get the audio element tag const audio = document.querySelector("audio"); // Create an audio context const ctx = new AudioContext(); // Create an audio source const audioSource = ctx.createMediaElementSource(audio); // Create an audio analyzer const analayzer = ctx.createAnalyser(); // Connect the source, to the analyzer, and then back the the context's destination audioSource.connect(analayzer); audioSource.connect(ctx.destination); // Print the analyze frequencies const frequencyData = new Uint8Array(analayzer.frequencyBinCount); analayzer.getByteFrequencyData(frequencyData); console.log("frequencyData", frequencyData); // Get the visualizer container const visualizerContainer = document.querySelector(".visualizer-container"); // Create a set of pre-defined bars for( let i = 0; i < NBR_OF_BARS; i++ ) { const bar = document.createElement("DIV"); bar.setAttribute("id", "bar" + i); bar.setAttribute("class", "visualizer-container__bar"); visualizerContainer.appendChild(bar); } // This function has the task to adjust the bar heights according to the frequency data function renderFrame() { // Update our frequency data array with the latest frequency data analayzer.getByteFrequencyData(frequencyData); for( let i = 0; i < NBR_OF_BARS; i++ ) { // Since the frequency data array is 1024 in length, we don't want to fetch // the first NBR_OF_BARS of values, but try and grab frequencies over the whole spectrum const index = (i + 10) * 2; // fd is a frequency value between 0 and 255 const fd = frequencyData[index]; // Fetch the bar DIV element const bar = document.querySelector("#bar" + i); if( !bar ) { continue; } // If fd is undefined, default to 0, then make sure fd is at least 4 // This will make make a quiet frequency at least 4px high for visual effects const barHeight = Math.max(4, fd || 0); bar.style.height = barHeight + "px"; } // At the next animation frame, call ourselves window.requestAnimationFrame(renderFrame); } renderFrame(); audio.volume = 0.10; audio.play(); })(); </script> </body> </html>

Napisal/a Special Agent Squeaky. Prvič objavljeno 20. 10. 2020. Zadnja posodobitev 20. 10. 2020.

📺 Oglejte si najnovejši videoposnetek Squeakyja!

Kako dodati preproste podnapise v vaš prenos v živo v realnem času