如何使用directshow断开与网络摄像头的连接?

时间:2011-04-05 17:44:26

标签: c# directshow.net

我使用directshow.net和我的网络摄像头,它运作良好。但是当我关闭表单并再次打开它时,它在方法SetupGraph()中给出了一个错误,因为来自下一个代码行的值是负数。

hr = capGraph.RenderStream(ref cat, ref med, capFilter, null, null);

但是当我拔掉相机时,它第二次运行良好。

我希望这不是什么大不了的事。

1 个答案:

答案 0 :(得分:1)

您可以尝试调用yourMediaControl.StopWhenReady()方法,然后释放所有com对象实例,例如graphsourcegrabbercapture graph {{3 }}

  

IMediaControl.StopWhenReady 方法   暂停过滤器图表,允许   过滤器排队数据,然后停止   过滤器图。

主要是每次启动网络摄像头视频时都需要执行以下操作:

  1. 创建图表构建器,过滤器图形,设备对象,抓取器......
  2. 渲染流
  3. 运行媒体控制
  4. 等到用户发出信号停止视频
  5. 停止媒体控制(StopWhenReady)
  6. 释放/销毁已创建的对象