/// <summary> /// 播放回调函数 /// </summary> /// <param name="nPort"></param> /// <param name="pBuf"></param> /// <param name="nSize"></param> /// <param name="pFrameInfo"></param> /// <param name="nReserved1"></param> /// <param name="nReserved2"></param> private void pDecCBFun(int nPort, ref String pBuf,int nSize, ref FRAME_INFO pFrameInfo, int nReserved1, int nReserved2) { this.picPlayMain.Height = pFrameInfo.nHeight; this.picPlayMain.Width = pFrameInfo.nWidth; this.stlCurrentTime.Text = pFrameInfo.nStamp.ToString(); }
/// <summary> /// 播放控制 /// </summary> /// <param name="pPlayCom"> /// 播放命令: /// 1.PLAY_COMMAND.GetPictureSize:获得帧原始图像大小 /// </param> /// <param name="nPort">播放通道</param> /// <param name="frameInfo">帧信息</param> /// <returns>true:成功;false:失败</returns> public static bool DHPlayControl(PLAY_COMMAND pPlayCom, int nPort, ref FRAME_INFO frameInfo) { bool returnValue = false; switch (pPlayCom) { case PLAY_COMMAND.GetPictureSize: returnValue = PLAY_GetPictureSize(nPort, ref frameInfo.nWidth, ref frameInfo.nHeight); break; } DHThrowLastError(nPort); return returnValue; }
/// <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)); }