2009-07-20 5 views
1

J'ai un format de fichier hérité qui contient des sons incorporés (dans différents codages). Je voudrais être capable de jouer ces sons dans Flash (Air?) En lisant les octets sonores du fichier et en instanciant un objet Sound avec eux.dans flex, charge dynamiquement Objet sonore à partir d'octets codés

Si le son n'est pas codé (par exemple, pcm brut), j'ai trouvé que je peux utiliser le nouvel événement flex 4 SampleDataEvent.SAMPLE_DATA pour lire le son. Cependant, si le son est codé (par exemple mp3), alors je suis à court de données. Le son attendu par SampleDataEvent.SAMPLE_DATA doit être brut pcm. D'après ce que j'ai vu, les Sounds encodés ne peuvent être instanciés qu'en les [Embed] ou en utilisant un URLRequest avec Sound.load().

Sûrement il y a une troisième voie? AMF ou e4x?

Répondre

3

Il n'y a vraiment que deux routes pour vous. La première consiste à écrire un décodeur en ActionScript. Vous pouvez utiliser Alchemy pour transférer du code C/C++ afin de rendre ce travail beaucoup plus facile (et peut-être plus performant). C'est exactement comme cela que j'ai fait fonctionner la lecture Ogg Vorbis avec Flash.

L'autre option consiste à créer dynamiquement un fichier SWF valide dans un ByteArray. Ce fichier SWF peut contenir un objet audio incorporé composé de vos données audio. Un certain nombre de personnes ont retiré des hacks similaires dans le passé avant que Flash Player 10 soit disponible. Je crois que vous pouvez trouver un bon endroit pour commencer dans Andre Michelle's and Joa Ebert's PopForge codebase.

+1

J'ai essayé la technique de création dynamique d'un fichier SWF actif et fonctionne. Quelle bonne idée. Pour tous ceux qui essayent cela, je recommande ces outils pour obtenir une poignée sur le format SWF: SWF Spec (http://tinyurl.com/c6a2g4), 010 Hex Editor (http://tinyurl.com/d5gjad) , Modèle SWF Hex (http://tinyurl.com/n5vk4z), et SWF Tools (http://tinyurl.com/38edhl) – paleozogt

Questions connexes