Simulation d'analiseur de spectre

Soyez le premier à donner votre avis sur cette source.

Vue 16 858 fois - Téléchargée 2 664 fois

Description

C'est quand meme plus sympa quand on se fait un player de mp3 d'avoir des indicateurs visuels autres que le simple indicateur de niveau de volume (get.volume), aussi j'ai crée un analiseur de spectre, faux bien sur, mais qui rend assez bien.
Le code est basé sur l'objet micro disponible dans flash et extrapole les autres crêtes grâce a des nombres aléatoires (random) pour que la hauteur des barres ne se ressemblent pas.
Vous l'avez compris, il y a une contrainte, c'est de posseder un micro et qu'il soit connecté, on a rien sans rien, (en attendant flash 8 :-).

Démo ici : http://visiondesign.free.fr/sources_flash/spectrum/

Conclusion :


Le tout est compilé dans un clip, juste a coppier coller dans votre anim, cool non ?
Les infos et commentaires sont dans le fla.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
12
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
11 janvier 2010

Comment on fais sur CS4 pour creer le spectre avec le code.
Merci de m'aider svp

K
Messages postés
57
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

excellente source, est elle libre de droit?
Messages postés
1
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
10 février 2008

voici le code inclu dans l'aide de FLASH CS3 pour créer un spectre audio en action scripts 3.
En local cela fonctionne bien mais sur le net il faut créer un préload du fichier mp3
Si vous avez des idées pour créer le préload, n'hésitez pas à ajouter un commentaire.
Ce code est à placer sur la première frame


import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;

const PLOT_HEIGHT:int = 200;
const CHANNEL_LENGTH:int = 256;

var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("votremusic.mp3");
snd.load(req);

var channel:SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
snd.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);

var bytes:ByteArray = new ByteArray();

function onEnterFrame(event:Event):void
{
SoundMixer.computeSpectrum(bytes, true, 0);

var g:Graphics = this.graphics;

g.clear();
g.lineStyle(0, 0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0, PLOT_HEIGHT);

var n:Number = 0;

// left channel
for (var i:int = 0; i < CHANNEL_LENGTH; i++)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
g.endFill();

// right channel
g.lineStyle(0, 0xCC0066);
g.beginFill(0xCC0066, 0.5);
g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);

for (i = CHANNEL_LENGTH; i > 0; i--)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}

function onPlaybackComplete(event:Event)
Messages postés
61
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
23 janvier 2009

Cela vient de changer dans flash 9, l'action script 3 avec la classe SoundMixer permet de récuperer le spectre audio en cours qu'il vienne du micro ou d'un fichier interne ou externe... tout cela grace à la fonction SoundMixer.computeSpectrum...

De plus flash est a présent capable d'extraire toutes données ID3 même l'image de l'album.

Pour aller plus loin il semblerai qu'il soit également capable de modifier la vitesse de lecture du son (à vérifier...) voilà....

Mais je le dit cette source est suberbe ! bravo !
Messages postés
20
Date d'inscription
mardi 26 août 2003
Statut
Membre
Dernière intervention
3 août 2007

Malheureusement, a l'heure ou je te parle, flash n'est capable de récupérer le niveau sonore que par le micro, l'objet sound de flash mx ne gère quand a lui que le controle de la lecture, et le niveau du volume (sortie son), peut etre qu'avec un peu de chance la nouvelle version de flash 8 suara le gérer, il est prévu pour cet automne, patience...
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.