Filter Graph Manager 的IBasicAudio
实现只不过是对第一个合适的过滤器实现的调用的简单转发IBasicAudio
。也就是说,如果图表中有一个音频流,它可能会很好。那里有两个或更多,您将需要找到音频渲染器过滤器并使用它们的IBasicAudio
.
MSDN 指示您始终通过 FGM 进行查询,但仅当您有一个音频馈送/渲染器时,这是一个很好的建议。
此接口在 Audio Renderer (WaveOut) 过滤器和 DirectSound Renderer 过滤器上实现,但通过过滤器图形管理器向应用程序公开。应用程序应始终从 Filter Graph Manager 检索此接口。
非常基本的获取路径IBasicAudio
如下图所示\Samples\Players\PlayWnd\MainForm.cs
:
this.graphBuilder = (IGraphBuilder) new FilterGraph();
// [...]
// Query for audio interfaces, which may not be relevant for video-only files
this.basicAudio = this.graphBuilder as IBasicAudio;
这就像MSDN建议的那样,通过FGM获得接口指针。在图表中有单个音频流的情况下效果很好。