2009-07-31 6 views
0

Ich baue eine kleine Flash-Anwendung, um Audio vom Client-Computer aufzunehmen. Ich möchte das Mikrofon verwenden können, die aufgezeichneten Informationen in einem Byte-Array speichern und dann weiterleiten. Ich sah das folgende Stück Code, das mit der Kamera gut funktioniert:Cahcing Flash aufgezeichnet Audio in einem Bytearray auf Client

 var _loc_1:BitmapData; 
     var _loc_2:ByteArray; 
     _loc_1 = new BitmapData(video.width, video.height, false, 13421772); 
     _loc_1.draw(video, new Matrix()); 

     _loc_2 = PNGEncoder.encode(_loc_1); 
     return Base64.encodeByteArray(_loc_2); 

Damit dies funktioniert mit Audio Ich brauche Klassen wie BitmapData- und PNGEncoder, die mit Audio arbeiten und nicht nur Bilder \ Video. Kennst du solche Klassen? Ist es überhaupt möglich?

Antwort

1

Ich fürchte, das ist nicht möglich mit Blitz allein. Sie müssen die Eingabe an einen Server streamen, der die Daten zurücksendet. Hier zwei sehr kurze Fäden es diskutieren:

http://www.actionscript.org/forums/showthread.php3?t=88653

http://www.gotoandlearnforum.com/viewtopic.php?f=29&t=21974&p=115759

Auch über Ihren Code-Beispiel, ich möchte nur sagen, dass, wenn Sie wissen, was Sie tun und müssen die speichern Daten als String, müssen nicht mit Base64 codiert werden, es wird sowohl CPU-Ressourcen als auch Speicherplatz verschwenden.

+2

Ich weiß, dass es möglich ist, ein Byte von Arrays basierend auf dem auf dem Bildschirm angezeigten Bild zu cachen, wodurch ein lokaler Cache basierend auf den von der Webkamera aufgenommenen Bildern erzeugt wird. Sind Sie sicher, dass etwas Ähnliches nicht mit Audio gemacht werden kann? – vondip

+6

Sie können auf die grafische Ausgabe zugreifen und alles damit machen, aber es gibt keine Möglichkeit, auf die Audioausgabe im Flash zuzugreifen, und leider haben Sie auch nicht diese Art von Kontrolle über das Mikrofon. Ich hatte gehofft, dass dies mit der Veröffentlichung von AS3 geändert hätte, aber es nicht getan hat. – Clox