コード例 #1
0
 /// <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
     }
 }
コード例 #2
0
 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");
     }
 }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 /// <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);
         }
     }
 }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 /// <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();//刷新画面
     }
 }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
 /// <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));
     }
 }
コード例 #9
0
 /// <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";
     }
 }
コード例 #10
0
 /// <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);
     }
 }
コード例 #11
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;
 }
コード例 #12
0
        /// <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));
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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;
        }
コード例 #15
0
        /// <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("请选择存放目录和设备保存文件名!", "提示:");
            }
        }
コード例 #16
0
        /// <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);
            }
        }
コード例 #17
0
 /// <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);
         }
     }
 }
コード例 #18
0
 /// <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);
 }
コード例 #19
0
 /// <summary>
 /// 刷新
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnRefresh_Click(object sender, EventArgs e)
 {
     DHPlay.DHRefreshPlayEx(DisplayRegionPort, RegionSN);
 }
コード例 #20
0
 /// <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);
 }
コード例 #21
0
 /// <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);
 }
コード例 #22
0
 /// <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对应
 }