1
C#でWebcam用のライブラリをたくさん見ました。C#でウェブカメラを正しく処理する
- 彼らはあまりにも、クリップボードを使用するユーザの能力を排除し、クリップボードを使用します。しかし、2つの一般的な問題があります。
- ウェブカメラが接続されているかどうかを検出する方法はありません。ただし、「テスト写真を撮る」以外は、ウェブカメラが点滅するとユーザーを苛立たせる可能性があります。
これらの2つの問題を解決する方法はありますか?
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WebcamLibrary
{
public static class Webcam
{
private static IntPtr Handle;
public static void Start()
{
try
{
Stop();
Handle = capCreateCaptureWindowA("WebCap", 0, 0, 0, 320, 240, 0, 0);
SendMessage(Handle, 1034, 0, 0);
SendMessage(Handle, 1074, 0, 0);
}
catch { }
}
public static void Stop()
{
try
{
SendMessage(Handle, 1035, 0, 0);
Clipboard.Clear();
}
catch { }
}
public static Image CaptureFrame()
{
try
{
SendMessage(Handle, 1084, 0, 0);
SendMessage(Handle, 1054, 0, 0);
Image image = (Image)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
Clipboard.Clear();
return image;
}
catch
{
return null;
}
}
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
[DllImport("avicap32.dll")]
private static extern IntPtr capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hwndParent, int nID);
}
}
このコードは機能しますか?それは私のためにCaptureFrameメソッドでnull値をimageとして返します!提案はありますか? –