2012-04-07 65 views
3

當使用Sound類的SAMPLE_DATA事件合成聲音時,Flash文檔建議寫出儘可能多的樣本,最多8192個。在我的系統上,除非每個事件至少寫入4192個樣本,否則聲音會被截斷。這是十分之一秒,這將是用戶注意。Flash可以做低延遲音頻合成嗎?

我可能會提前選擇緩衝,但這對我的應用程序來說是一個很大的麻煩。有沒有辦法獲得低延遲音頻輸出?

+0

我已經使用[SampleDataEvent](http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/events/SampleDataEvent.html)w /麥克風,但沒有意識到它對於產生聲音非常酷。有關計算延遲的文檔中的評論很有趣,您是否嘗試過使用以下許多示例:'((SampleDataEvent.position/44.1) - SoundChannel.position)'。或者,您可能需要使用戶可選數量(從文檔中刪除) – 2012-04-07 06:14:59

+0

我認爲延遲可能與最小緩衝區大小引起的延遲不同。 – user1300292 2012-04-07 07:03:26

回答

2

不幸的是,SAMPLE_DATA是綜合音頻的主要手段,它具有不同的平臺之間的性能和延遲。對於最小的延遲,您可以做的最好的方法是在SampleDataEvent中提供儘可能少的樣本(2048)。

還有一個Sound.loadPCMFromByteArray,它已添加到Flash Player 11中,並允許您將樣品直接加載到正常的Sound對象中。雖然這對實時動態音頻合成沒有幫助,但它可以讓您預先生成聲音並在需要時播放聲音。

+0

謝謝。前一代是我要去的地方,但需要一些複雜的工作來做我想做的事情。 – user1300292 2012-04-07 19:11:54