/// <summary> /// 播放录像菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuStart_Click(object sender, EventArgs e) { if (!DHPlay.DHPlayControl(PLAY_COMMAND.Start, 0, this.picPlayMain.Handle)) { MessageBox.Show("播放文件失败!", pMsgTitle); } else { SetPlayStopControl(1); chkEnableSound_CheckedChanged(sender, e);//处理声音开关6 } }
private void trbPlayFrames_MouseDown(object sender, MouseEventArgs e) { if (DHPlay.DHPlayControl(PLAY_COMMAND.Pause, 0)) { btnPlay2.Tag = ">"; timerGetPlayInfo.Stop(); timerGetPlayInfo.Enabled = false; } else { MessageBox.Show("Problema al ejecutar operación", "Error"); } }
/// <summary> /// 显示按钮按下处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDisplay_Click(object sender, EventArgs e) { //此处需要判断文本框中是不是输入的纯整型数字 Rectangle pRectangle = new Rectangle((int)nudLeft.Value, (int)nudTop.Value, (int)(nudRight.Value - nudLeft.Value), (int)(nudBottom.Value - nudTop.Value)); IntPtr pBoxInfo = IntPtr.Zero; pBoxInfo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Rectangle)));//分配固定的指定大小的内存空间 if (pBoxInfo != IntPtr.Zero) { Marshal.StructureToPtr(pRectangle, pBoxInfo, true); } DHPlay.DHSetDisplayRegion(DisplayRegionPort, RegionSN, pBoxInfo, this.picDisplayMain.Handle, true); }
/// <summary> /// 设置当前的播放属性 /// </summary> /// <param name="playedFrameNum"></param> /// <param name="playedTime"></param> private void SetPlayCurrentInfo(UInt32 playedFrameNum, UInt32 playedTime) { stlCurrentFrame.Text = Convert.ToString(playedFrameNum + 1); stlCurrentTime.Text = DHPlay.DHConvertToTime(playedTime, 1, "HH:MM:SS"); trbPlayFrames.Value = (int)(playedFrameNum < trbPlayFrames.Maximum ? playedFrameNum : 0); if (trbPlayFrames.Maximum <= playedFrameNum + 1) { mnuStop_Click(null, null); if (blnLoop) { mnuStart_Click(null, null); } } }
private void btnOpenSound_Click(object sender, EventArgs e) { if (btnOpenSound.Tag.ToString() == "Off") { btnOpenSound.Image = global::bykomDahua.Properties.Resources.audio16x16; btnOpenSound.Tag = "On"; DHPlay.DHPlayControl(PLAY_COMMAND.PlaySound, 0); } else { btnOpenSound.Image = global::bykomDahua.Properties.Resources.audioOff16x16; btnOpenSound.Tag = "Off"; DHPlay.DHPlayControl(PLAY_COMMAND.StopSound); } }
/// <summary> /// 停止播放菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuStop_Click(object sender, EventArgs e) { if (!DHPlay.DHPlayControl(PLAY_COMMAND.Stop, 0)) { MessageBox.Show("停止播放失败!", pMsgTitle); } else { SetPlayStopControl(0); trbPlayFrames.Value = 0; stlCurrentFrame.Text = "0"; stlCurrentTime.Text = "00:00:00"; this.picPlayMain.Refresh();//刷新画面 } }
private void procesoPlay2() { gFileInfo = nriFileInfo[lsvFiles.SelectedItems[0].Index]; pPlayBackChannelID = int.Parse(txtChannelID.Text.ToString()); fileInfo = gFileInfo; playRecordFile = DHClient.DHPlayBackByRecordFile(gLoginID, ref fileInfo, pictureBoxPlayback.Handle, null, IntPtr.Zero); if (playRecordFile == 0) { // MessageBox.Show("Ocurrió un error con al cargar la grabación", "Error"); btnCancelar_Click(null, null); playRecordFile = DHClient.DHPlayBackByRecordFile(gLoginID, ref fileInfo, pictureBoxPlayback.Handle, null, IntPtr.Zero); } if (playRecordFile > 0) { uint sizeFilecharge = fileInfo.size / 100; uint currentFrames = DHPlay.DHPlayControl(PLAY_COMMAND.GetCurrentFrameNum, 0, true); lblCurrentFrame.Text = currentFrames.ToString(); lblCurrentTime.Text = fileInfo.starttime.dwHour.ToString() + ":" + fileInfo.starttime.dwMinute.ToString() + ":" + fileInfo.starttime.dwSecond.ToString(); lblInfoVideo.Text = fileInfo.starttime.dwHour.ToString() + ":" + fileInfo.starttime.dwMinute.ToString() + ":" + fileInfo.starttime.dwSecond.ToString() + " - " + fileInfo.endtime.dwHour.ToString() + ":" + fileInfo.endtime.dwMinute.ToString() + ":" + fileInfo.endtime.dwSecond.ToString(); DateTime startTime = new DateTime(fileInfo.starttime.dwYear, fileInfo.starttime.dwMonth, fileInfo.starttime.dwDay, fileInfo.starttime.dwHour, fileInfo.starttime.dwMinute, fileInfo.starttime.dwSecond); DateTime endTime = new DateTime(fileInfo.endtime.dwYear, fileInfo.endtime.dwMonth, fileInfo.endtime.dwDay, fileInfo.endtime.dwHour, fileInfo.endtime.dwMinute, fileInfo.endtime.dwSecond); TimeSpan span = endTime.Subtract(startTime); segundosTotales = (int)span.TotalSeconds; lblTotalTime.Text = span.Hours.ToString() + ":" + span.Minutes.ToString() + ":" + span.Seconds.ToString(); trbPlayFrames.Maximum = 100;//(int) sizeFilecharge; timerGetPlayInfo.Enabled = true; btnPlay2.Tag = "||"; play2State(); gpbPlayBackControl.Enabled = true; } else { MessageBox.Show("Ocurrió un error con al cargar la grabación", "Error"); btnCancelar_Click(null, null); } }
/// <summary> /// 到最后帧播放菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuToEnd_Click(object sender, EventArgs e) { if (!DHPlay.DHPlayControl(PLAY_COMMAND.ToEnd, 0)) { MessageBox.Show("定位最后一帧失败!", pMsgTitle); } else { if (mnuPause.Enabled) { mnuPause_Click(null, null); } trbPlayFrames.Value = (trbPlayFrames.Maximum - 1 > 0?trbPlayFrames.Maximum - 1:0); stlCurrentFrame.Text = Convert.ToString((uint.Parse(stlTotalFrames.Text) - 1)); } }
/// <summary> /// 到最前帧播放菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuToBegin_Click(object sender, EventArgs e) { if (!DHPlay.DHPlayControl(PLAY_COMMAND.ToBegin, 0)) { MessageBox.Show("定位到起始帧失败!", pMsgTitle); } else { if (mnuPause.Enabled) { mnuPause_Click(null, null); } trbPlayFrames.Value = 0; stlCurrentFrame.Text = "1"; } }
/// <summary> /// 关闭录像文件菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuCloseFile_Click(object sender, EventArgs e) { if (!DHPlay.DHPlayControl(PLAY_COMMAND.CloseFile, 0)) { MessageBox.Show("关闭文件失败!", pMsgTitle); } else { this.picPlayMain.Refresh();//刷新画面 if (mnuStop.Enabled) { mnuStop_Click(sender, e); } SetOpenCloseFileControl(0); } }
/// <summary> /// 音频允许设置 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chkEnableSound_CheckedChanged(object sender, EventArgs e) { if (chkEnableSound.Checked) { chkEnableSound.Image = imlMain.Images["AUDIO_ENABLE"]; DHPlay.DHPlayControl(PLAY_COMMAND.PlaySound, 0); } else { chkEnableSound.Image = imlMain.Images["AUDIO_DISABLE"]; DHPlay.DHPlayControl(PLAY_COMMAND.StopSound); } trbSound.Enabled = chkEnableSound.Checked; mnuSoundUp.Enabled = trbSound.Enabled; mnuSoundDown.Enabled = trbSound.Enabled; mnuSoundSwitch.Checked = chkEnableSound.Checked; mnuSoundSwitch.Image = chkEnableSound.Image; }
/// <summary> /// 画面时钟处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerGetPlayInfo_Tick(object sender, EventArgs e) { if (pPlayVideoSizeMode != 9) { FRAME_INFO pFrameInfo = new FRAME_INFO(); uint totalFrames = DHPlay.DHPlayControl(PLAY_COMMAND.GetFileTotalFrames, 0, true); DHPlay.DHPlayControl(PLAY_COMMAND.GetPictureSize, 0, ref pFrameInfo); stlTotalFrames.Text = Convert.ToString(totalFrames); trbPlayFrames.Maximum = (int)(totalFrames > 0?totalFrames:0); int pParentHeight; int pParentWidth; if (palMain.Visible) { pParentWidth = palMain.Width; pParentHeight = palMain.Height; } else { pParentWidth = this.Width; pParentHeight = this.Height; } switch (pPlayVideoSizeMode) { case 0: //原始大小 picPlayMain.Width = pFrameInfo.nWidth; picPlayMain.Height = pFrameInfo.nHeight; picPlayMain.Top = (pParentHeight - picPlayMain.Height) / 2; picPlayMain.Left = (pParentWidth - picPlayMain.Width) / 2; break; case 1: //缩放 picPlayMain.Top = 0; picPlayMain.Height = pParentHeight; picPlayMain.Width = Convert.ToInt32(pFrameInfo.nWidth * ((float)pParentHeight / (float)pFrameInfo.nHeight)); picPlayMain.Left = (pParentWidth - picPlayMain.Width) / 2; break; } } SetPlayCurrentInfo(DHPlay.DHPlayControl(PLAY_COMMAND.GetCurrentFrameNum, 0, true), DHPlay.DHPlayControl(PLAY_COMMAND.GetPlayedTime, 0, true)); }
private void frm_Main_Load(object sender, EventArgs e) { chkEnableSound.Checked = true;//判断是不是允许声音 //字符叠加设置初始值 pShowTime = true; pTextPointSet = new PointF(100, 10); pTimePointSet = new PointF(200, 30); pFontSet = this.Font; pBrushSet = new SolidBrush(Color.Red); pDisplayText = ""; //设置画面控件可用属性 SetOpenCloseFileControl(0); //播放数据回调设置 playCBFun = new DecCBFun(pDecCBFun); SetCallBackTypeCheck(stmType); mnuSizeTrue_Click(null, null); //字符叠加设置 dFun = new DrawFun(DrawFun); DHPlay.DHRigisterDrawFun(0, dFun, 0);//字符叠加功能演示 StringUtil.InitControlText(this); }
private void trbPlayFrames_MouseUp(object sender, MouseEventArgs e) { if (DHPlay.DHPlayControl(PLAY_COMMAND.ReSume, 0)) { btnPlay2.Tag = "||"; play2State(); } else { MessageBox.Show("Problema al ejecutar operación", "Error"); } if (!DHClient.DHPlayBackControl(playRecordFile, PLAY_CONTROL.SeekByBit, (uint)(trbPlayFrames.Value * (fileInfo.size / 100)))) { MessageBox.Show("Problema al ejecutar operación", "Error"); } positionValue = trbPlayFrames.Value; timerGetPlayInfo.Start(); timerGetPlayInfo.Enabled = true; }
/// <summary> /// 开始录像按钮按下处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStartRecord_Click(object sender, EventArgs e) { string strtemp = txtDirPath.Text.ToString() + @"\" + txtFileName.Text.ToString(); strtemp = strtemp.Replace(@"\\", @"\"); if (strtemp.Length > 0) { //开始录像 if (DHPlay.DHStartDataRecord((int)nudPlayChannelNO.Value, strtemp, cmbDataType.SelectedIndex)) { //MessageBox.Show("开始数据流保存成功!", "提示:"); MessageBox.Show(strtemp, "提示:"); } else { MessageBox.Show("开始数据流保存失败!", "提示:"); }; } else { MessageBox.Show("请选择存放目录和设备保存文件名!", "提示:"); } }
/// <summary> /// 抓图菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuCatchPic_Click(object sender, EventArgs e) { //保存图片目录未选择则须要选择一下保存路径 if (strSavePicPath.Length == 0) { if (fbdMain.ShowDialog() == DialogResult.OK) { strSavePicPath = fbdMain.SelectedPath; } else { return; } } //抓图处理代码 bool blnSavePic = false; string saveFilePath = strSavePicPath + @"\" + (DateTime.Now.ToString("yyyyMMdd_HHmmss")) + ".bmp"; blnSavePic = DHPlay.DHPlayControl(PLAY_COMMAND.CatchPic, 0, saveFilePath); if (!blnSavePic) { MessageBox.Show("保存图片失败!\n" + saveFilePath, pMsgTitle); } }
/// <summary> /// 打开录像文件菜单处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mnuOpenFile_Click(object sender, EventArgs e) { if (ofdMain.ShowDialog() == DialogResult.OK) { if (DHPlay.DHPlayControl(PLAY_COMMAND.OpenFile, 0, ofdMain.FileName)) { SetOpenCloseFileControl(1); stlTotalTime.Text = DHPlay.DHConvertToTime(DHPlay.DHPlayControl(PLAY_COMMAND.GetFileTotalTime, 0, true), 1, "HH:mm:ss"); bool blnReturn = DHPlay.DHPlayControl(PLAY_COMMAND.GetColor, 0, (uint)picPlayMain.Handle, ref pColor); if (blnReturn) { hsbBrightness.Value = pColor.pBrightness; hsbContrast.Value = pColor.pContrast; hsbHue.Value = pColor.pHue; hsbSaturation.Value = pColor.pSaturation; } trbSound.Value = (int)DHPlay.DHPlayControl(PLAY_COMMAND.GetVolume, 0, true); } else { MessageBox.Show("打开文件失败!", pMsgTitle); } } }
/// <summary> /// 播放进度条处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void trbPlayFrames_MouseUp(object sender, MouseEventArgs e) { mnuResum_Click(sender, e); //float playPos = ((float)trbPlayFrames.Value / (float)trbPlayFrames.Maximum); DHPlay.DHPlayControl(PLAY_COMMAND.SetCurrentFrameNum, 0, (uint)trbPlayFrames.Value); }
/// <summary> /// 刷新 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRefresh_Click(object sender, EventArgs e) { DHPlay.DHRefreshPlayEx(DisplayRegionPort, RegionSN); }
/// <summary> /// 音量控制滑块处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void trbSound_ValueChanged(object sender, EventArgs e) { mnuSoundUp.Enabled = (trbSound.Value == trbSound.Maximum ? false : true); mnuSoundDown.Enabled = (trbSound.Value == 0 ? false : true); DHPlay.DHPlayControl(PLAY_COMMAND.SetVolume, 0, (uint)trbSound.Value); }
/// <summary> /// 关闭窗口的处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmDisplayRegion_FormClosing(object sender, FormClosingEventArgs e) { //此操作不做下次打开画面时会有问题,不做此操作不能正确显示 DHPlay.DHSetDisplayRegion(DisplayRegionPort, RegionSN, IntPtr.Zero, this.picDisplayMain.Handle, false); }
/// <summary> /// 实时监视数据回调数据处理 /// </summary> /// <param name="lRealHandle"></param> /// <param name="dwDataType"></param> /// <param name="pBuffer"></param> /// <param name="dwBufSize"></param> /// <param name="dwUser"></param> private void cbRealDataFun(int lRealHandle, UInt32 dwDataType, IntPtr pBuffer, UInt32 dwBufSize, IntPtr dwUser) { DHPlay.DHPlayControl(PLAY_COMMAND.InputData, 0, pBuffer, dwBufSize);//此处第二个参数nPort参数要与网络实时监控数据的取得的RealHandle对应 }