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

C# 如何使用directshow断开与网络摄像头的连接?,c#,directshow.net,C#,Directshow.net,我用了directshow.net和我的网络摄像头,它工作得很好。但是当我关闭表单并再次打开它时,它在方法SetupGraph()中给了我一个错误,因为来自下一代码行的值是负数 hr=capGraph.RenderStream(ref cat,ref med,capFilter,null,null) 但是当我拔下相机的插头时,它第二次工作正常 我希望这没什么大不了的。您可以尝试调用您的MediaControl.StopWhenReady()方法,然后释放所有com对象实例,如图形,源代码,抓取器

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

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

但是当我拔下相机的插头时,它第二次工作正常


我希望这没什么大不了的。

您可以尝试调用
您的MediaControl.StopWhenReady()
方法,然后释放所有com对象实例,如
图形
源代码
抓取器
捕获图形

IMediaControl.StopWhenReady方法 暂停过滤器图形,允许 筛选到队列数据,然后停止 过滤图

最重要的是,每次启动网络摄像头视频时,您都需要执行以下操作:

  • 创建图形生成器、过滤图形、设备对象、抓取器
  • 渲染流
  • 运行媒体控制
  • 等待用户发出停止视频的信号
  • 停止介质控制(StopWhenReady)
  • 释放/销毁创建的对象

  • 您可以尝试调用
    yourMediaControl.StopWhenReady()
    方法,然后释放所有com对象实例,如
    graph
    source
    grabber
    capture graph

    IMediaControl.StopWhenReady方法 暂停过滤器图形,允许 筛选到队列数据,然后停止 过滤图

    最重要的是,每次启动网络摄像头视频时,您都需要执行以下操作:

  • 创建图形生成器、过滤图形、设备对象、抓取器
  • 渲染流
  • 运行媒体控制
  • 等待用户发出停止视频的信号
  • 停止介质控制(StopWhenReady)
  • 释放/销毁创建的对象

  • 不熟悉SDK,但有关闭流的方法吗?不熟悉SDK,但有关闭流的方法吗?