如何在 AUGraph 中渲染特定的音频单元

How to render a specific audio unit in a AUGraph

我设置了一个包含多个音频单元的 AUGraph。

我知道当我调用 AUGraphStart() 时,图形开始渲染所有音频单元。但我希望能够开始渲染一个特定的 AUFilePlayer。

可能吗?

更新

我在评论中看到我的问题缺乏细节。 我有我的 AUGraph 的当前设置:

AUFilePlayer -> AUMixer -> AUOutput

我使用特定的 AudioFileID 设置了 AUFilePlayer。

当我启动图表时,我只想 "start" 图表而没有任何声音。 稍后我想做类似的事情:AUFilePlayer.Play() 开始发出声音。

不知道有没有可能...

更新:找到解决方法

我想我找到了解决方法。有关详细信息,请参阅我的答案。

我找到了以下解决方法:

当我设置我的 AUFilePlayer 时,我将 ScheduledAudioFileRegion 结构的值 mFramesToPlay 设置为:

ScheduledAudioFileRegion audio_file_region;
/*... init values...*/
audio_file_region_.mFramesToPlay = 0;

而不是

audio_file_region_.mFramesToPlay = number_of_frames_for_the_audio_file;

这样当我启动图形时,AUFilePlayer 不会播放任何声音。

然后我有一个方法 Play(),我在其中设置正确的帧以播放 mFramesToPlay 字段。

我不知道这样做是否是个好方法,但它确实起作用了。