Render和Video Render完成。音频渲染器较为简单也很少会出问题,我们主要讨论视频渲染器的问题。
7了,那自然是首选EVR了。这部分的代码如下:
Build工程后运行,使用GraphStudioNext查看生成的Filter Graph,可以看到音视频渲染器都已经成功加入了,如下图所示:
但是我们发现一个问题,电影已经正常播放,但是只有声音却没有图像,这是为何?
既然不支持,那我们就换掉,改为使用VMR-9进行绘制。方法很简单,在添加EVR组件的语句中将CLSID_EnhancedVideoRenderer改为CLSID_VideoMixingRenderer9就可以了。
编译链接运行,查看Filter Graph,如下图:
播放画面:
至此,我们已经成功地把一部主流格式的电影文件通过手动建立Filter Graph的方式播放出来了,也对DirectShow的基本概念有了一定的了解。接下来还将继续进一步深入研究与其相关的更多内容。