在AS3 Flash / Flex项目中嵌入wav文件?

时间:2010-05-13 09:12:00

标签: flash actionscript-3 audio embed wav

Flash IDE能够嵌入多种类型的未压缩声音文件,包括wav,并在发布时提供可选的压缩。

然而,[Embed]标签似乎只允许嵌入mp3文件。是否真的不可能嵌入未压缩的wav文件,或者我是否缺少一些魔法的,未记录的mimeType?

我希望有类似的东西:

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

......但我得到了

no transcoder registered for mimeType 'audio/wav'

可以将wav或其他格式作为八位字节流嵌入并在运行时解析,但我觉得这很重要。

我很惊讶即使Flash IDE可以嵌入未压缩的声音数据,[Embed]也不能,因为swf规范可以包含未压缩的声音数据。

任何参赛者?

3 个答案:

答案 0 :(得分:14)

来自LiveDocs - Basics of working with sound

  

[...]   虽然有各种声音文件   用于编码数字音频的格式,   ActionScript 3.0,Flash Player和AIR   支持存储的声音文件   mp3格式。他们不能直接   在其他地方加载或播放声音文件   格式如WAV或AIFF。   [...]

但显然有一种解决方法。查看this thread from actionscript.org中的第3篇帖子:

  

如果有人有,请回复自己   未来同样的问题是   寻找答案。

     

我找不到任何直接支持   在Flex Builder中嵌入WAV文件   3 / ActionScript 3应用程序。我是什么   尝试过,很高兴看到它   作品是在中创建一个Flash电影   Flash CS 3(你需要拥有它   或获得评估)并导入您的   听到图书馆并将它们链接到   由ActionScript导出。出口   Flash CS3项目转换为SWF电影   并将其保存在您的项目中(我补充说   它到“lib文件夹”)。

     

要创建的ActionScript代码和   播放声音应该是:

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

答案 1 :(得分:7)

你可以使用一个图书馆

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

答案 2 :(得分:1)

Flash播放器不知道如何直接播放wav文件。确实,您可以导入到创作工具中,但是当您发布SWF时,您的音频将转换为mp3或adpcm或您在发布设置中选择的任何内容。即使您在运行时读取wav,播放它的唯一方法是解析二进制流,因此如果嵌入文件,自然会受到同样的限制。

this question处的一些相关信息。好奇的是,你似乎在去年评论过! :)