C# 用C语言实现视频输入#

C# 用C语言实现视频输入#,c#,video-capture,C#,Video Capture,我有一个视频捕获(usb网络摄像头)应用程序,目前使用非常旧的VFW,并将p-Invoke连接到C#。我试图替换它,但我无意中发现了,后来发现了。我设法进入我的应用程序,它给了我帧速率和相机控制,我需要。问题是,在某些PC上,即使设备已设置,对VideoInput.IsFrameNew()的调用也不会返回true(VideoInput.IsDeviceSetup()确实返回true)。 我已经在W7x64系统和XPx32系统上成功运行了此功能,但在W7x32上不起作用。你有没有想过为什么会这样

我有一个视频捕获(usb网络摄像头)应用程序,目前使用非常旧的VFW,并将p-Invoke连接到C#。我试图替换它,但我无意中发现了,后来发现了。我设法进入我的应用程序,它给了我帧速率和相机控制,我需要。问题是,在某些PC上,即使设备已设置,对VideoInput.IsFrameNew()的调用也不会返回true(VideoInput.IsDeviceSetup()确实返回true)。 我已经在W7x64系统和XPx32系统上成功运行了此功能,但在W7x32上不起作用。你有没有想过为什么会这样

更新1: 自从最初发布这个问题以来,我发现在不工作的系统上,我仍然能够调用VI.ShowSettingsWindow()生成对话框;但是,它是一个不同于我在工作系统上看到的对话框(即使它是相同的相机/驱动程序)。这是线索吗?还要注意的是,我在它使用的机器和它不使用的机器上运行相同版本的DirectX

更新2:
出现故障的系统是W7x32和W7x64,它们都使用Microsoft LifeCam。我昨天发现,如果我从机器上删除Microsoft LifeCam软件,它就会工作!我当然可以对此做出解释。

这些系统的卡驱动程序如何?我不完全明白你的问题。我正在使用一个网络摄像头,并且已经安装了驱动程序;虽然网络摄像头可能会有所不同,但在这种情况下,它工作的系统和不工作的系统都使用相同的网络摄像头。我明白了。你只是没有在问题中说明,这就是我问的原因。在其他应用中,摄像机是否可以在每个系统上工作?是的,可以。我的应用程序目前允许我使用VFW或VideoInput连接到相机。如果我使用VFW,效果很好。我已经更新了我的原始文本几次,使其更切题,并包含了新的细节。