2009-07-13 8 views
0

J'essaye de lire des exemples de données grâce aux nouvelles capacités audio en temps réel de Flash Player 10. J'ai commencé par l'exemple donné en bas de la page this sur livedocs, ce qui semble fonctionne bien et joue un son clair.Lecture audio en temps réel de Flash Player

Je suppose que les deux writeFloat dans l'exemple écrivent respectivement dans les canaux audio gauche et droit et que les données écrites sont de 32 bits (à cause du flottement).

Cependant. Je semble avoir du mal à convertir mes anciennes données audio 8 bits dans un format qui est compris par cette interface. Quand je reproduis mes données d'échantillon, je peux vaguement entendre le son que j'attends mais il est déformé massivement. Mon exemple de données se compose d'échantillons bruts de 8 bits compris entre 0 et 255, où 127 est le silence.

J'ai essayé différentes formules de conversion mais il me semble qu'il manque des informations vitales concernant cette conversion.

Toute aide grandement appréciée.

UPDATE:

La formule exacte se révèle être:

f = (sample.data.readByte() - 127)/255 

Répondre

2

Essayer la conversion var newSample: Number = (Nombre (oldSample) -127,0) /127.0;

1

Assurez-vous de lire correctement vos données 8 bits. Si vous utilisez la classe ByteArray, utilisez readUnsignedByte (au lieu de readByte) pour obtenir une valeur comprise entre 0 et 255. Ensuite, utilisez la formule suggérée par MontyGomery.

Questions connexes