2015-05-13 59 views
0

我正在構建一個使用多個延遲節點的實時循環應用程序。我通過將maxDelayTime設置爲比delayTime稍長來初始化延遲節點,因爲這似乎是正確的做法。我不知道它是否真的有所作爲,但是設置一個maxDelayTime例如看起來很浪費。 3分鐘,我只需要延遲〜10-15秒。有一個很長的maxDelayTime有什麼危害?

但是,我希望用戶能夠調整循環的大小,這就是我遇到問題的地方。如果用戶希望循環更小,我可以將delayTime設置爲更小的數字,並且都是好的。但是,用戶不能使循環變大,因爲maxDelayTime不能被覆蓋。我可以用適當的maxDelayTime重新創建所有延遲節點,但延遲節點連接到其他節點或從其他節點連接,所以我寧願不重新創建整個事物。

所以我的問題是:

它是一個壞主意,創建8個延遲節點有3分鐘maxDelayTime,即使delayTime通常少於30秒,以防用戶想要做一個更長循環?

回答

4

是的,這是一個壞主意。

想到這一點的最佳方法是maxDelayTime設置不斷更新的內部緩衝區的大小 - delayTime只是改變了該緩衝區中的查找點。如果你設置的maxDelay過大,你會咀嚼大量的內存(例如8個延遲節點,立體聲爲44.1kHz,maxDelay爲3分鐘將佔用大約496兆字節。在移動設備上,這是一個(甚至在桌面上,這是相當多的)

我可能會有一些拐點換出新節點 - 例如> 30秒,> 2分鐘 - 併爲這些設置maxDelay例如,如果您的默認值爲30秒,那麼您的8個節點「僅」爲82 meg

+0

這正是我想知道的,謝謝。 –

相關問題