C# Как на компьютере подключиться к web камере через wi fi
Написал такой код. Но программа видит только устройства, подключенные напрямую. Как сделать так, чтобы он подключался к камере через wi fi, например через общий роутер(проводов у камеры нет, лишь зарядка) Камера уже подключена к роутеру
using Emgu;
using Emgu.CV;
using Emgu.CV.Util;
using Emgu.CV.Structure;
using Emgu.Util;
using System.IO;
using DirectShowLib;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
private VideoCapture capture = null;
private DsDevice[] webCams = null;
private int selectedCameraId = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webCams = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
for (int i = 0; i < webCams.Length; i++)
{
toolStripComboBox1.Items.Add(webCams[i].Name);
}
}
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
selectedCameraId = toolStripComboBox1.SelectedIndex;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
try
{
if (webCams.Length == 0)
{
throw new Exception("Нет доступных камер!");
}
else if (toolStripComboBox1.SelectedItem == null)
{
throw new Exception("Необходимо выбрать камеру!");
}
else if (capture != null)
{
capture.Start();
}
else
{
capture = new VideoCapture(selectedCameraId);
capture.ImageGrabbed += Capture_ImageGrabbed;
capture.Start();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void Capture_ImageGrabbed(object? sender, EventArgs e)
{
try
{
Mat m = new Mat();
capture.Retrieve(m);
pictureBox1.Image = m.ToImage<Bgr, byte>().Flip(Emgu.CV.CvEnum.FlipType.Horizontal).ToBitmap();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
{
try
{
if (capture != null)
{
capture.Pause();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
try
{
if (capture != null)
{
capture.Pause();
capture.Dispose();
capture = null;
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
selectedCameraId = 0;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
try
{
Mat m = new Mat();
capture.Retrieve(m);
MakeScreenShotForm screenShotForm = new MakeScreenShotForm(m.ToImage<Bgr, byte>().Flip(Emgu.CV.CvEnum.FlipType.Horizontal));
screenShotForm.Show();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}