Comunidad de diseño web y desarrollo en internet online

Ecualizador de sonido con el microfono en Flash

Bueno, dejo aquí un código que emplea el micrófono y números aleatorios para simular un ecualizador (no tiene nada que ver con la modulación de voz, sólo con el volumen). Simplemente peguen este código en el primer fotograma de una película nueva. El código es todo lo que hace falta. Luego le dan CTRL+ENTER y hablan

Código :

//
var vertices:Number = 120;
var distBordes:Number = 80;
var altoMax:Number = 150;
//
var ancho:Number = 550;
var alto:Number = 400;
//
var distVertices = (ancho-distBordes*2)/vertices;
//
//
this.createEmptyMovieClip("grafico", this.getNextHighestDepth());
this.createEmptyMovieClip("sonido", this.getNextHighestDepth());
//
//
var microfono:Microphone = Microphone.get();
microfono.setSilenceLevel(80);
sonido.attachAudio(microfono);
//
this.onEnterFrame = function() {
   volumen = microfono.activityLevel;
   //
   graficar(volumen);
};
//
//
var graficar:Function = function (vol:Number) {
   //
   grafico.clear();
   //
   verde = (vol>50) ? vol-1 : 50;
   color = "0x00"+(verde)+"00";
   //
   grafico.lineStyle(.8, color);
   //
   grafico.moveTo(0, alto/2);
   grafico.lineTo(distBordes, alto/2);
   //
   for (i=1; i<vertices; i++) {
      //
      if (Math.round(Number(random(2))) == 1) {
         altura = alto/2+(Number(random(vol))/100)*altoMax;
      } else {
         altura = alto/2-(Number(random(vol))/100)*altoMax;
      }
      grafico.lineTo(distBordes+(distVertices*i), altura);
   }
   grafico.lineTo(ancho-distBordes, alto/2);
   grafico.lineTo(ancho, alto/2);
};
Otros usos podrían ser: modificar la boca de un personaje animado para que parezca que está hablando. Usar la clase micrófono y su propiedad activityLevel para detectar períodos de inactividad. Y si, siempre hay algo de ruido de fondo, pero se puede setear como "volumen de silencio" el volúmen máximo registrado durante un período en el que se pide al usuario que haga silencio o setearlo como 40 ó 50, un número más o menos normal de ruido de fondo.

No dejo el .fla o el .swf porque este código es lo único que hay en toda la película.

Espero que lo entiendan aún cuando no tiene comentarios (las dos barras están para organizar visualmente el código separando partes que hacen cosas totalmente distintas).

Saludos :wink:

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate