2011-12-07 106 views
2

我試圖加載MP3文件loadCompressedDataFromByteArray()然後播放它們,但似乎沒有辦法做到這一點。使用loadCompressedDataFromByteArray加載時,Sound類僅調度ID3事件,而不調度其他事件(完成,打開等)。如果我只是加載聲音loadCompressedDataFromByteArray,然後在以後的某個點嘗試播放聲音,我得到:用loadCompressedDataFromByteArray加載聲音並稍後播放它們?

ArgumentError: Error #1063 

唯一的選擇,現在似乎開始loadCompressedDataFromByteArray通話後,播放聲音正確的().. 。

_sound.loadCompressedDataFromByteArray(_bytes, _bytes.length); 
_sound.play(); 

但在我的情況下,完全沒用,因爲我試圖預加載需要以後使用MP3文件。

任何人都知道這個解決方法嗎?

+0

完整的錯誤信息總是有幫助的。 – apscience

+0

這可能與此有關嗎? 「將從當前的ByteArray位置讀取數據,並在完成後將ByteArray位置保留在指定字節長度的末尾」(http://help.adobe.com/zh_CN/FlashPlatform/beta/reference/actionscript/3 /flash/media/Sound.html#loadCompressedDataFromByteArray%28%29) – AsTheWormTurns

+0

不,我已經將ByteArray位置設置爲零,然後將其加載到聲音中。不過,現在這實際上是一個完全破碎的API。 Adobe完成的一項非常悲慘的工作!這同樣適用於其他新增聲音方法loadPCMFromByteArray(),它也被破壞,請參閱:http://bugs.adobe.com/jira/browse/ASL-281(並請投票)。如果只有Adobe的Bug系統可以讓我註冊(似乎也被打破: - /),我還會提交一個關於loadCompressedDataFromByteArray方法的錯誤。 – BadmintonCat

回答

0

我得到這個錯誤,並通過設置的ByteArray位置爲0調用loadCompressedDataFromByteArray固定它在我面前:

_bytes.position = 0; 
_sound.loadCompressedDataFromByteArray(_bytes, _bytes.length); 
_sound.play(); 

是否回答你的問題?