我有一个Flash Builder/Flash Pro组合工程。因为在时间轴上维持良好的资产涉及的麻烦,我的声音都被嵌入到类文件,如:嵌入式声音提前切断
[Embed (source="/mp3/Welcome_01_V.mp3", mimeType="audio/mpeg")]
private static const WELCOME_1:Class;
这些文件,然后通过嵌入式ActionScript的需要它们的符号,基类引用在第10帧上(因为第二帧标签在第10帧上给你空间让你阅读第一帧)。
我在发现的是,这些声音中的一部分不会一直播放,但SoundChannel发送“soundComplete”事件,其最终位置与Sound的长度相匹配。
所有声音都以44Hz/16 kbps从wav转换为mp3。我伪装了编译器,以避免通过包含扩展Sound的虚拟SoundAsset来引用Flex。
我不知道采取什么其他步骤来进行调试。有没有办法确定问题是在编译端还是在运行端?
更新
更多的事情我已经尝试:
- 看着尺寸报告:非工作的声音是在 他们的嵌入式形式大于源MP3
- 摆脱了我自己了BitmapAsset的小并让Flash链接在Flex框架中并做任何事情(绝对更糟糕)
- 将编码从44 kHz降至22 kHz(没有改进或更差)
- 将比特率下降到8kbps(最低的dbPowerAmp,我使用的工具支持)。这通常会有所帮助,但我仍然通常在文件末尾使用一两个字
- 删除了编码中的两个参数。这有助于减少比特率,但不是所有文件。再加上它听起来很苗条。
谢谢!
你见过http://stackoverflow.com/questions/8807462/embedded-mp3-in-actionscript3-wont-play-all-the-way-through? –
只是一个想法 - 位置是已播放的毫秒数,这是否等于在MP3播放器中可见的声音长度?另外,当你嵌入时,最终的swf大小总是大于声音大小(我的意思是字节数)。这是检查整个声音是否嵌入的另一种方法 –