这个问题是关于Windows音频会话API的。在阅读微软的示例代码后,我发现在获得一个IAudioClient后,调用“GetService”方法来获得一个IAudioRenderClient。然后调用IAudioRenderClient的GetBuffer和ReleaseBuffer方法来添加要播放的缓冲区。为什么我们需要IAudioRenderClient接口
我的问题:
为什么IAudioRenderClient必要的,为什么不把的GetBuffer和ReleaseBuffer方法直接在IAudioClient?也就是说,我们需要多个IAudioRenderClient用于单个IAudioClient?
因为当我们播放音频,我们总是需要一个IAudioClient,并在此IAudioClient我们所说的GetService获得IAudioRenderClient,我们没有任何机会调用CoCreateInstance()创建IAudioRenderClient我们呢?那么为什么我们需要Iudio for IAudioRenderClient?
=========================================== ===================================
经过一番阅读,我认为IAudioClient可以是一个IAudioRenderClient或IAudioCaptureClient。但另一个问题出现了,为什么我们调用GetService来获取IAudioRenderClient而不是QueryInterface?