2010-10-08 23 views
1

Je fais un enregistreur audio avec Adobe Flex (Microphone, NetStream), je veux que l'onde audio actuelle du microphone s'affiche dans la zone de visualisation, comment puis-je obtenir les données?Dessiner une forme d'onde pour le microphone en flex, est-ce possible?

+0

Avez-vous besoin juste pour obtenir le flux de données du micro, ou voulez-vous aussi savoir comment transformer ces données en un image de forme d'onde? – JoshD

+0

juste google à ce sujet ... il y a des tonnes de tutoriels .... –

+0

@JoshD la première partie, s'il vous plaît @Adrian je l'affiche ici parce que mon googling a échoué – tactoth

Répondre

1

Vous aurez besoin d'utiliser Flash Player 10 car je pense que c'est la première fois que vous avez réellement accès aux apis du microphone.

Ensuite, il y a une fonction simple, vous pouvez appeler qui obtenir les données du microphone:

private var soundBytes:ByteArray = new ByteArray; 
SoundMixer.computeSpectrum(soundBytes, false); 

J'appelle habituellement le code computeSpectrum dans un gestionnaire cadre saisir et d'en tirer la forme d'onde à partir de là.

Modifier: Je ne veux pas vous tromper. Je pense que le code ci-dessus est pour un fichier audio pré-enregistré. Si vous voulez à l'utilisateur le microphone en flash 10. Vous le faites comme ceci:

private var _mic:Microphone; 
_mid = Microphone.getMicrophone(); 
_mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData); 

protected function onSampleData(event:SampleDataEvent):void { 
    while(event.data.bytesAvailable){ 
     var n:Number = event.data.readFloat(); 
    } 
}