2012-09-05 19 views
1

Flash中的某些內容已更改嗎?我不久前爲一個我正在開發的網站製作了音樂可視化工具。它使用SoundMixer.computeSpectrum獲取音頻中所有頻率的級別。這對我來說很好,它甚至可以播放來自其他Flash對象的音頻,這些對象對我來說工作得很好,併爲我節省了嘗試以各種播放器對象將音頻傳送到可視化器的麻煩。帶有computeSpectrum的Flash音頻可視化工具已停止工作

那麼現在它不再工作了。自上次測試以來,我對網站進行了更改,但我認爲這不是問題所在。即使在同一個Flash實例中,可視化工具也不再對任何音頻有任何響應。但是當我在可視化器中播放音頻時,在任何瀏覽器中幀速率都會明顯下降。如果我從使用Flash Player 9的Flash Professional CS3預覽swf,它可以正常工作,但對於瀏覽器中不支持的Flash 11.3。有人可以解釋發生了什麼變化以及我需要做些什麼才能使事情發揮作用?

更新:

下面是一些相關的代碼位。

var ba:ByteArray = new ByteArray(); 

addEventListener(Event.ENTER_FRAME,timerHandler); 

function timerHandler(event:Event):void { 
    SoundMixer.computeSpectrum(ba, true); 

} 

我還對字節數組使用readFloat和writeFloat。當然,還有很多其他代碼,但它在Flash 9中都可以正常工作。

+0

你能分享一些代碼或網址嗎?也許看這些可能有助於縮小這個範圍。 – jbalsas

+0

在Flash Professional CS5或CS5.5或CS6中播放Flash Player10.2嗎? – Moorthy

+0

我無法訪問flash 10.2。 – Moss

回答

1

我遇到了同樣的問題,並且正在努力修復它。

我有參考,你會介意看看那些?

的Adobe論壇:使用SoundMixer.computeSpectrum()不能工作http://forums.adobe.com/thread/67089

Kirupa論壇:聲音在時間表:使用SoundMixer.computeSpectrum http://www.kirupa.com/forum/showthread.php?329632-Sound-on-timeline-SoundMixer-computeSpectrum

請編輯2012/09/30

當你聲明Sound實例化,如果你已經這樣編碼:

var sound:Sound = new Sound(new URLRequest("url"));

在哪裏聽到的聲音就是Sound實例,網址是您正在加載的聲音的URL的名稱,將其更改爲:

var sound:Sound = new Sound(new URLRequest("url"), new SoundLoaderContext(0, true));

這應該工作。

+0

我明白你和我有類似的問題,但這不是一個答案。你應該發佈這個評論。我嘗試了你的Kirupa代碼,並且我從ctrl-enter中得到了一個0。 – Moss

1

在flash v11.3中存在一個缺陷,導致computeSpectrum()返回不完整和空的數據。它尚未在最新的Flash Player發行版中得到修復(截止撰寫本文時爲v11.5)。

如果您將flash player降級到v11.2,您會看到您的可視化效果與以前一樣。

https://bugbase.adobe.com/index.cfm?event=bug&id=3222042

請對這個錯誤進行表決所以土坯修復它!

---編輯--- 現在固定爲Flash Player 11.7!