我有一個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大小總是大於聲音大小(我的意思是字節數)。這是檢查整個聲音是否嵌入的另一種方法 –