1

AVAudioEngine和相關的AVAudioNode對象似乎對音頻處理非常強大,但很難看出如何使用它們自動化參數更改。作爲一個粗略的例子,我確定必須有一些比手動使用Timer來更改值更有效的方法。如何在AVMutableComposition中使用AVAudioPlayerNode

AVMutableAudioMixInputParameters包括一個方法setVolumeRampFromStartVolume:toEndVolume:timeRange:,但我看不出如何將它與AVAudioPlayerNode(與AVAudioEffectNodes連接)集成並使用該方法隨着時間推移淡化音量。相反,我只看到AVMutableAudioMixInputParametersAVMutableComposition實例一起使用的示例,其中沒有包含AVAudioNode對象。

任何人都可以發佈或鏈接到結合使用AVAudioNodes與setVolumeRampFromStartVolume:toEndVolume:timeRange:或解釋最佳實踐隨時間節點上自動參數更改一些代碼樣本?

非常感謝

回答

2

的AVAudioEngine是一個實時引擎,但AVMutableComposition似乎是一個非實時的對象。因此不相容。另一種方法是建立並插入您自己的推子實時AUAudioUnit節點..

+0

鑑於,找到替代方案除了創建自己的推子音頻單元有多難,這可能是最佳答案。它看起來像AVAudioEngine API中的一個明顯的漏洞,當它幾乎支持'scheduleParameterBlock','flag_CanRamp'等作爲API的一部分時,無法使用內置單元逐步更改參數。我是唯一一個有這種感覺的人。話雖如此,我希望能有一個更好的解決方案。 –

相關問題