我有一个使用DSPACK组件库在Delphi 6中编写的DirectShow应用程序。当我关闭我的过滤器图形(停止播放)时,由于在拥有回调方法的对象被销毁之后发生了Sample Grabber DirectShow过滤器的回调,我得到了访问冲突。它不是每次都发生,而是经常发生。有人能指出我的代码示例或文档,告诉我我需要采取哪些步骤来关闭我的图表,确保所有待处理的Sample Grabber回调都已被接收或消除?
答案 0 :(得分:1)
如何在停止/发布过滤器图表之前发出ISampleGrabber::SetCallback(NULL, ...
呢?
除此之外,您还可以设置一个内部标志,指示终止并在回调中检查它,您必须立即返回,而无需进一步处理。