📄 frmmain.cs
字号:
VideoOperate.VCASetVidCapFrameRate(0, 25, false);
VideoOperate.VCASetVidCapSize(0, 320, 240);
VideoOperate.VCASetXVIDQuality(0, 10, 3);
VideoOperate.VCASetXVIDCompressMode(0, VideoOperate.COMPRESSMODE.XVID_VBR_MODE);
VideoOperate.VCAStartVideoCapture(0, VideoOperate.CAPMODEL.CAP_MPEG4_STREAM, VideoOperate.MP4MODEL.MPEG4_AVIFILE_CALLBACK, sfDialog.FileName);
}
}
else if (btnVideo.Text == "停止录像")
{
btnVideo.Text = "录像";
VideoOperate.VCAStopVideoCapture(0);
}
}
//回放
private void btnPlay_Click(object sender, EventArgs e)
{
frmPlay frmpaly = new frmPlay();
frmpaly.ShowDialog();
}
//快照
private void btnSnapShots_Click(object sender, EventArgs e)
{
if (rbtnBMP.Checked)
{
VideoOperate.VCASaveAsBmpFile(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\")) + "\\Photo\\" + DateTime.Now.ToFileTime() + ".bmp");
}
else
{
VideoOperate.VCASaveAsJpegFile(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\")) + "\\Photo\\" + DateTime.Now.ToFileTime() + ".jpg", 100);
}
}
//开始自动监控
private void btnAutoMonitor_Click(object sender, EventArgs e)
{
if (btnAutoMonitor.Text == "开始")
{
if (rbtnWideWatch.Checked)
{
messagesend = pelcod.CameraTilt(addressin, PelcoD.Tilt.Up, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
Thread.Sleep(2000);
messagesend = pelcod.CameraPan(addressin, PelcoD.Pan.Left, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
Thread.Sleep(2000);
messagesend = pelcod.CameraTilt(addressin, PelcoD.Tilt.Down, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
Thread.Sleep(2000);
messagesend = pelcod.CameraPan(addressin, PelcoD.Pan.Right, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
else if (rbtnVerticalWatch.Checked)
{
messagesend = pelcod.CameraTilt(addressin, PelcoD.Tilt.Up, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
Thread.Sleep(2000);
messagesend = pelcod.CameraTilt(addressin, PelcoD.Tilt.Down, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
else
{
messagesend = pelcod.CameraPan(addressin, PelcoD.Pan.Left, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
Thread.Sleep(2000);
messagesend = pelcod.CameraPan(addressin, PelcoD.Pan.Right, speedin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
btnAutoMonitor.Text = "停止";
}
else
{
stopMove();
btnAutoMonitor.Text = "开始";
}
}
//停止监控
private void btnStop_Click(object sender, EventArgs e)
{
if (btnStop.Text == "停止")
{
string strDPath = Application.StartupPath;
string strPath = strDPath.Substring(0, strDPath.LastIndexOf("\\")).Substring(0, strDPath.Substring(0, strDPath.LastIndexOf("\\")).LastIndexOf("\\")) + "\\Image\\主页面\\主界面图片.bmp";
plVideo1.BackgroundImage = System.Drawing.Image.FromFile(strPath);
VideoOperate.VCAUnInitSdk();
btnStop.Text = "开始";
}
else if (btnStop.Text == "开始")
{
plVideo1.BackgroundImage = null;
startMonitor();
btnStop.Text = "停止";
}
}
//打开软件注册窗体
private void btnReg_Click(object sender, EventArgs e)
{
frmRegister frmregister = new frmRegister();
frmregister.Show();
this.Hide();
}
#region 释放鼠标时,视频监控停止移动
private void btnUp_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnDown_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnLeft_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnRight_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnAHighlghts_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnCHighlghts_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnAFocus_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnCFocus_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnAAperture_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnCAperture_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnAWipers_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
private void btnCWipers_MouseUp(object sender, MouseEventArgs e)
{
stopMove();
}
#endregion
//关闭主窗体时,退出应用程序
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
//开始监控
protected void startMonitor()
{
if (VideoOperate.VCAInitSdk(this.Handle, VideoOperate.DISPLAYTRANSTYPE.PCI_MEMORY_VIDEOMEMORY, false))
{
m_dwDevNum = VideoOperate.VCAGetDevNum();
if (m_dwDevNum == 0)
{
MessageBox.Show("VC404卡驱动程序没有安装");
}
else
{
for (int i = 0; i < m_dwDevNum; i++)
{
VideoOperate.VCAOpenDevice(i, plVideo1.Handle);
VideoOperate.VCAStartVideoPreview(i);
}
}
}
}
//停止移动
protected void stopMove()
{
messagesend = pelcod.CameraStop(addressin);
serialPort.Open();
serialPort.Write(messagesend, 0, 7);
serialPort.Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -