我使用以下從聲音對象中提取聲音數據並將其存儲在字節數組中。AS3 - 聲音提取到bytearray - 進度處理程序
我要求整個MP3加載到ByteArray前進之前和下面的工作正常但是爲了這個目的閃爍暫時掛起,而它提取該數據(2.4MB MP3)
有沒有辦法可以阻止它掛起來,即使用eventlistener來檢查提取過程的進度?
iniSound();
function iniSound()
{
playLoadedSound(mp3);
}
function playLoadedSound(s:Sound):void
{
var bytes:ByteArray = new ByteArray();
s.extract(bytes, int(s.length * 44.1));
playSound(bytes);
}
function playSound(bytes:ByteArray)
{
//stop();
dynamicSound = new Sound();
dynamicSound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
loadedMP3Samples = bytes;
numSamples = bytes.length/8;
phase = 0;
}
感謝,所以我提取音軌的一小部分,並嘗試使用while循環的處理進度然而閃光燈仍然只是掛起,然後我得到只有在滿足條件後纔會有一組跟蹤輸出。無論如何,我可以阻止它懸掛並顯示負載消息,而這是發生?代碼是:function playLoadedSound(s:Sound):void { \t var bytes:ByteArray = new ByteArray(); \t while(s.extract(bytes,4096)) \t { \t \t trace(「loading」); \t} \t playSound(bytes); } – digitalpencil 2011-03-17 15:56:58
不要使用while循環,請使用ENTER_FRAME或TIMER – NemoStein 2011-03-29 17:24:31