嵌入式声音提前切断

时间:2012-07-04 01:42:52

标签: actionscript-3 flash flex flash-builder embed

我有一个Flash Builder / Flash Pro组合项目。由于在时间线上维护声音资产的麻烦,我的声音都嵌入到类文件中,如:

[Embed (source="/mp3/Welcome_01_V.mp3", mimeType="audio/mpeg")]
private static const WELCOME_1:Class;

这些文件随后由基类引用,用于需要它们的符号,在第10帧上为Actionscript嵌入(因为第二帧标签位于第10帧,为您提供阅读第一帧的空间)。

我发现其中一些声音并没有完全播放,但SoundChannel调度“soundComplete”事件,其最终位置与Sound的长度匹配。

所有声音都以44Hz / 16 kbps从wav转换为mp3。我伪造了编译器,通过包含一个扩展Sound的虚拟SoundAsset来避免引用Flex。

我不知道调试它的其他步骤。有没有办法弄清楚问题是在编译端还是在运行端?

更新

我尝试了更多的事情:

  • 查看尺寸报告:非工作声音较小 他们的嵌入式表格比源mp3
  • 摆脱我自己的BitmapAsset,让Flex框架中的Flash链接做任何事情(肯定更糟)
  • 将编码从44 kHz降至22 kHz(无改善或更差)
  • 将比特率降至8kbps(最低的dbPowerAmp,我使用的工具,支持)。这通常有所帮助,但我仍然经常使用文件末尾的一两句话
  • 在编码中删除了这两个参数。这有助于一些只是降低比特率,但不是所有文件。再加上听起来很无聊。

谢谢!

3 个答案:

答案 0 :(得分:1)

对于Flash音频,如果您拥有高质量的源wav,我建议使用wav文件将声音资源导入FLA。否则,您也可以考虑将mp3转换为wav。然后将FLA导出设置设置为您想要的质量,Flash会根据您设置的质量将您的wav转换为自己的格式,希望减少问题。

执行此操作后,您可以在库中导出actionscript的声音符号,并设置类名,就像嵌入它一样。

我使用的另一个技巧是我有一个FLA仅用于声音资产,可以用来存储我想要的大波。当我导出它时,它会变成一个小的SWF文件,然后我可以将其嵌入到我的主应用程序中。这样,我每次导出swf时都没有Flash将wav重新转换为swf。相反,它只是复制swf数据也快得多。

    [Embed(source="Audio/Sfx.swf", symbol="WELCOME_1_WAV")]
    private static const WELCOME_1:Class;

答案 1 :(得分:0)

如果您在Flash Pro中遇到音频切断问题,则可能需要检查帧速率。

我遇到了关闭声音的问题(在Flash pro CC 2014中)。我的问题结果与帧率设置为25而不是默认值24有关。我一直使用25来解决与此项目中的任何内容无关的问题,所以我的解决方案是将FPS更改为24,这被调用移动所有同步动画以重新对齐相应音频的必要性。

当帧速率为25时,无论使用正确的关键帧,为什么长(ish)音轨在结尾处被切断是一个谜。这解决了症状,因此如果您在Flash Pro中有音频切断问题,您可能需要检查帧速率。

答案 2 :(得分:-1)

我的症状特别是当音频片段特别长并且深入时间线时。

对我有用:我在音频编辑器中打开了音频文件,并在最后添加了几秒钟的静音。

祝你好运! - J.Hall