学习 DirectShow 需要具备哪些知识呢?
1 英语知识
2 COM 知识
为什么需要英语知识呢?因为国内目前除了陆其明老师的两本关于 DirectShow 的书籍外,再无其他书籍,甚至连翻译过来的都没有。而陆老师的书籍我认为不太适合入门,有些晦涩 . 而我们想要把 DirectShow 学好, DirectShow 自带的帮助文档可以说是最好的资料了,讲解通俗易懂,条理清晰 . 另外还有两本国外书籍《 Programming DirectShow for Digital Video TV.chm 》和《 Programming DirectShow 》也很不错 . 不过这些书籍和文档都是英文的,故我说要想学好 DirectShow 需要一定的英文知识 . 这点只能靠你平时英语的学习了,无它法 .
那位什么需要 COM 知识呢?因为 DirectShow 在设计时时基于 COM 进行设计的,它里面的很多的接口都是利用 COM 知识进行设计的 . 要想完全理解 DirectShow 里面的一些接口,需要具备一些 COM 知识 . 那 COM 知识我们应该从何处获得呢?这点我建议阅读《 Inside COM 》,这本书籍讲解通俗易懂,不过我们如果只为学习 DirectShow 的话,没有必要阅读完,阅读前六章就可以了,基本上不会花费你太长时间,也许 2 个小时或是一上午就可以了 . 这点对理解 DirectShow 很有必要的 . 如果哪位朋友不想看这个的话,也可以去网上看些 COM 入门的资料,不过效果应该没这个好。
好了我们已经具备一定知识了,我们如何开始学习 DirectShow 呢?
对于这点我想初学者都是雷同的,就是看书,练习,再看书,再练习,不断的反复 .
这里我有一个小的建议那就是 GraphEdit 这个工具是我们学习 DirectShow 不可或缺的 . 所以我们需要熟练掌握这个工具 . 所以我的学习建议就是 :
1 大家先看一下 DirectShow 的介绍,对 DirectShow 有一个全面的了解之后,最好把 GraphEdit 熟练掌握一下,对此我们只需把 GraphEdit 帮助文档看一遍并练习一下就可以了 .
2 看 DirectShow 帮助文档,并练习上面的代码 .
3 看一些 DirectShow 自带的程序源码 .
4 更高级的学习,那就得需要多看基类源码和深入理解 DirectShow 机制了 .
OK, 这就是我认为的比较好的学习方法 . 仅供参考 . 如有不同意见 , 概不争论 .