所以我使用的是我在网上找到的这个库,它可以让我在C#上使用我的网络摄像头非常容易,所以我决定试一试。 我模仿的项目是使用WPF或WinForms,其中有两个。 我决定要创建一个这样的控制台版本,现在有一些小问题,关于控制和什么不是,但我似乎控制了所有这一切我面临的问题是它踩到了它的逻辑原因不明。
这就是它应该如何流动。 (它在WPF中也是如此)
webcam.Start(); -> webcam.Start(0); Starts the webcam here -> webcam_ImageCaptured() -> LoadBitmap() -> webcam_ImageCaptured() -> LoadBitmap() -> webcam_ImageCaptured() and loop through those last two
以下是我所做的(控制台应用程序)
webcam.Start(); -> webcam.Start(0); Starts the webcam here -> and then it steps out of webcam.Start(); and closes.
我不知道为什么它会像这样,我真的很想知道,来回调试但我真的无法解决这里的谜。
这是控制台应用程序主
class Program
{
static WebCam webcam;
static System.Windows.Controls.Image image = new System.Windows.Controls.Image();
[STAThread]
static void Main(string[] args)
{
webcam = new WebCam();
webcam.InitializeWebCam(ref image);
webcam.Start();
}
}
WebCam课程https://ghostbin.com/paste/kvvx2
助手班https://ghostbin.com/paste/vk8qz
这是WPF应用程序的主要部分
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
WebCam webcam;
private void mainFrm_Loaded(object sender, RoutedEventArgs e)
{
webcam = new WebCam();
webcam.InitializeWebCam(ref imgMain);
}
private void btnCapture_Click(object sender, RoutedEventArgs e)
{
webcam.Start();
}
}
以下是我发现所有内容的原始帖子https://sites.google.com/site/webcamlibrarydotnet/wpf-and-csharp-sample-code-and-download
答案 0 :(得分:0)
在控制台应用程序中,最后添加Console.ReadLine(),以便应用继续运行。
static void Main(string[] args)
{
webcam = new WebCam();
webcam.InitializeWebCam(ref image);
webcam.Start();
Console.ReadLine();
}
然后确保您的 webcam_ImageCaptured - 事件正在解雇。即使Start-method立即返回,它也可能被设计为不会阻止调用线程。