2

我有一个组合的 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”事件,它的最终位置与声音的长度相匹配。

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

我不知道要采取什么其他步骤来调试它。有没有办法确定问题是在编译端还是在运行端?

更新

我尝试过的更多事情:

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

谢谢!

4

3 回答 3

1

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

一旦你这样做了,你就可以在你的库中导出动作脚本的声音符号,并设置一个类名,就像你嵌入它的方式一样。

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

    [Embed(source="Audio/Sfx.swf", symbol="WELCOME_1_WAV")]
    private static const WELCOME_1:Class;
于 2012-09-28T07:55:48.187 回答
0

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

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

为什么不管使用正确的关键帧,当帧速率为 25 时,长(ish)音轨最终会被切断是一个谜。然而,这解决了这些症状,因此如果您在 Flash Pro 中遇到音频中断问题,您可能需要检查您的帧速率。

于 2014-09-16T20:49:14.333 回答
-1

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

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

祝你好运!- J.霍尔

于 2017-11-10T18:56:23.873 回答