11348 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

sur le site sur lequel je travaille, je joue du son, en tache de fond. Je voudrais extraire les caractéristiques du son joué, pour les utiliser pour alimenter un visuel. Comment récupérer les caractéristiques du son ?

Merci de votre aide.
Bonjour,

et merci de vos réponses.

Les fichiers son que je joue sont des flac.

Effectivement, je veux récupérer les caractéristiques du son joué (volume, fréquence), en temps réel. J'ai étudié la web audio api, en long, en large, et en travers, sans rien trouver :o(
Bonjour !

Je suis, toujours, sur ma problématique d'afficher un visuel alimenté par du son.

Quand je mets la ligne :
source = audioCtx.createMediaElementSource(monplayer);
cela inhibe le son du player. Comment se fait-ce ???
Si l'un-e d'entre vous a envie de mettre son nez dedans, voici l'ensemble du script :

var monplayer=d.$('audio');
var scene=d.$('scene');
var hre;
var double=32;
var hrs=new Array;

var audioCtx=new AudioContext;
var analyser=audioCtx.createAnalyser();
var liste=new Uint8Array(double);
analyser.fftSize=double;
 
animer=function() 
{ 
audioCtx.createMediaElementSource(monplayer).connect(analyser);
analyser.getByteFrequencyData(liste);
d.$('h1').html(liste); 
analyser.connect(audioCtx.destination);
for(var n=0; n<double; n++ ) hrs[n].style.bottom=liste[n]+'vw'; 
if(run)requestAnimationFrame(animer);
}

for(var n=0; n<double; n++ )
{ 
hre=d.createElement('hr'); 
hre.style.left=n+.5+'vw';
hrs.push(hre);
scene.add(hre); 
}
 
Bonsoir,

je le confesse : je suis un tueur ! J'ai enfin trouvé l'équipe qui gagne :

<?php 

$main["div id=\"scene\""] = VIDE ;

$script = "
var scene=d.$('scene');
var hre;
var nombre=32;
var hrs=new Array;
var run=false;

var myplayer=new Audio; myplayer.src='gyako.mp3';

scene.on('click',function(){
if(run=!run) { myplayer.play(); d.setvaleur=setInterval(animer,200); } 
else {  myplayer.pause(); clearInterval(d.setvaleur); }
});

var audioCtx=new AudioContext;
var analyser=audioCtx.createAnalyser();
var liste;

audioCtx.createMediaElementSource(myplayer).connect(analyser);
analyser.connect(audioCtx.destination);
 
animer=function() 
{
liste=new Uint8Array(nombre);
analyser.getByteFrequencyData(liste);
for(var n=0; n<nombre; n++ ) hrs[n].style.bottom=liste[n]/9+'vw'; 
}

for(var n=0; n<nombre; n++ )
{ 
hre=d.createElement('hr'); 
hre.style.left=n+.5+'vw';
hrs.push(hre);
scene.add(hre); 
}
" ;

?>

https://labo.doobee.fr/?son-visu

Si vous voyez des améliorations...

Merci de votre contribution.
Meilleure solution