2010-05-13 7 views
6

L'IDE Flash est capable d'intégrer de nombreux types de fichiers audio non compressés, y compris wav, et offre une compression facultative lors de la publication. Cependant, la balise [Embed] semble seulement permettre l'incorporation de fichiers mp3. Est-il vraiment impossible d'intégrer un fichier wav non compressé, ou est-ce que je manque un peu de magie, non documenté mimeType?Intégration de fichiers wav dans un projet AS3 Flash/Flex?

J'espérais quelque chose comme:

[Embed source="../../audio/wibble.wav" mimeType="audio/wav"] 

... mais je reçois

no transcoder registered for mimeType 'audio/wav' 

Il est possible d'intégrer wav ou un autre format comme un flux d'octets et analyser à l'exécution, mais c'est assez lourd je pense. Je suis surpris que même si l'IDE Flash peut intégrer des données audio non compressées, [Embed] ne le peut pas, étant donné que la spécification swf peut contenir des données audio non compressées.

Tout preneur?

Répondre

14

De l'LiveDocs - Basics of working with sound:

[...] Bien qu'il existe différents fichiers son formats utilisés pour encoder l'audio numérique, ActionScript 3.0, Flash Player et AIR en charge les fichiers sonores qui sont stocké dans le format mp3. Ils ne peuvent pas directement charger ou lire des fichiers son dans d'autres formats comme WAV ou AIFF. [...]

Mais apparemment, il existe une solution de contournement. Check Post n ° 3 à this thread from actionscript.org:

En réponse à moi-même au cas où quelqu'un a la même question à l'avenir et est la recherche d'une réponse.

Je n'ai pas trouvé de support direct pour incorporant des fichiers WAV dans une application Flex Builder 3/ActionScript 3. Ce que je ai essayé et a été ravi de le voir fonctionne est de créer une animation Flash en flash CS 3 (vous devez posséder cette ou d'obtenir une évaluation) et d'importer vos sons à la bibliothèque et les relier à être exporté par ActionScript. Exporter le projet Flash CS3 à un film SWF et enregistrez-le dans votre projet (j'ai ajouté à un "dossier lib").

Votre code ActionScript pour créer et jouer le son doit être:

[Embed(source="lib/Sounds.swf", symbol="BigShipSound")] 
private static var BigShipSound: Class; 
... 
var bigShipSound : Sound = BigShipSound as Sound; 
bigShipSound.play(0, 20); 
+0

Ah putain ... eh bien, bien que ce soit clairement un "non, vous ne pouvez pas" c'est une aussi bonne solution que je vais obtenir. Salutations Baelnorn! – aaaidan

1

Le lecteur Flash ne sait pas comment lire directement les fichiers wav. Il est vrai que vous pouvez les importer vers l'outil de création, mais lorsque vous publiez le fichier SWF, votre audio sera converti en mp3 ou adpcm ou tout ce que vous sélectionnez dans vos paramètres de publication. Même si vous lisez un wav au moment de l'exécution, la seule façon de le lire est d'analyser le flux binaire, donc naturellement la même limitation s'applique si vous incorporez le fichier.

Certains renseignements connexes à this question. Lequel curieusement vous semblez avoir commenté l'année dernière! :)

+0

Le monde est petit, hein? Eh bien, vous avez raison de dire que les wavs sont encodés peu importe ce que vous faites, mais je suppose que ce qui me frustre, c'est que vous ne pouvez pas intégrer une application AS3 dans les sons RAW (ou autre chose que mp3). lecteur audio natif (c'est-à-dire, n'utilisant pas l'événement SAMPLE_DATA). Creuser? – aaaidan

7

Il y a une bibliothèque, vous pouvez utiliser

http://code.google.com/p/as3wavsound/

+0

C'est plutôt cool! J'espérais éviter l'overhead du cpu de passer les données wav à travers un événement SAMPLE_DATA au moment de l'exécution, ce que fait cette bibliothèque (car le joueur "natif" est sûrement moins gourmand). – aaaidan

Questions connexes