/// <summary> /// Drag the playback operation /// </summary> /// <param name="nChannelID">channel</param> /// <param name="playControl">Playback control command</param> /// <param name="seekNum">Relative file at the beginning of the offset value</param> /// <returns></returns> public bool PlayBackControl(int nChannelID, PlayCon playControl,uint seekNum) { bool returnValue = false; uint uTemp = 0xffffffff; switch (playControl) { case PlayCon.SeekByTime://Drag the playback[According to the time migration] returnValue = CLIENT_SeekPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, seekNum, uTemp); break; case PlayCon.SeekByBit://Drag the playback[According to the byte offset] returnValue = CLIENT_SeekPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, uTemp, seekNum); break; default: returnValue = false; break; } return returnValue; }
/// <summary> /// 拖动播放操作 /// </summary> /// <param name="nChannelID">通道</param> /// <param name="playControl">播放控制命令</param> /// <param name="seekNum">相对文件开始处的偏移值</param> /// <returns></returns> public bool PlayBackControl(int nChannelID, PlayCon playControl,uint seekNum) { bool returnValue = false; uint uTemp = 0xffffffff; switch (playControl) { case PlayCon.SeekByTime://拖动播放[按时间偏移] returnValue = CLIENT_SeekPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, seekNum, uTemp); break; case PlayCon.SeekByBit://拖动播放[按字节偏移] returnValue = CLIENT_SeekPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, uTemp, seekNum); break; default: returnValue = false; break; } return returnValue; }
///// <summary> ///// According to the time playback。 ///// </summary> ///// <param name="channelId">channel ID。</param> ///// <param name="startTime">start time。</param> ///// <param name="endTime">end time。</param> ///// <param name="hWnd"> window handle。</param> ///// <param name="downLoadPositonCallback">Playback progress callback。</param> ///// <returns>return playHandle。</returns> //public bool PlayBackByTime( int channelId, DateTime startTime, // DateTime endTime, IntPtr hWnd, fDownLoadPosCallBack downLoadPositonCallback) //{ // NET_TIME netStartTime = ToNetTime(startTime); // NET_TIME netEndTime = ToNetTime(endTime); // int result = // CLIENT_PlayBackByTime(pClientInfo.ID, channelId, ref netStartTime, ref netEndTime, hWnd, // downLoadPositonCallback, IntPtr.Zero); // ThrowLastError(); // return result; //} /// <summary> /// Network playback control /// </summary> /// <param name="nChannelID">channel</param> /// <param name="playControl">Playback control command</param> /// <returns>successful return to TRUE,fail return to FALSE</returns> public bool PlayBackControl(int nChannelID, PlayCon playControl) { bool returnValue = false; switch (playControl) { case PlayCon.Play://paly returnValue=CLIENT_PausePlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, 0); break; case PlayCon.Pause://pause returnValue=CLIENT_PausePlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, 1); break; case PlayCon.Slow://slow returnValue = CLIENT_SlowPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; case PlayCon.Fast://fast returnValue = CLIENT_FastPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; case PlayCon.StepPlay://step play start returnValue = CLIENT_StepPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, false); break; case PlayCon.StepStop://step play stop returnValue = CLIENT_StepPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, true); break; case PlayCon.Stop://stop play returnValue = CLIENT_StopPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; default: returnValue = false; break; } return returnValue; }
///// <summary> ///// 按时间回放。 ///// </summary> ///// <param name="channelId">通道号。</param> ///// <param name="startTime">起始时间。</param> ///// <param name="endTime">结束时间。</param> ///// <param name="hWnd">窗口句柄。</param> ///// <param name="downLoadPositonCallback">播放进度回调。</param> ///// <returns>返回playHandle。</returns> //public bool PlayBackByTime( int channelId, DateTime startTime, // DateTime endTime, IntPtr hWnd, fDownLoadPosCallBack downLoadPositonCallback) //{ // NET_TIME netStartTime = ToNetTime(startTime); // NET_TIME netEndTime = ToNetTime(endTime); // int result = // CLIENT_PlayBackByTime(pClientInfo.ID, channelId, ref netStartTime, ref netEndTime, hWnd, // downLoadPositonCallback, IntPtr.Zero); // ThrowLastError(); // return result; //} /// <summary> /// 网络回放控制 /// </summary> /// <param name="nChannelID">通道</param> /// <param name="playControl">播放控制命令</param> /// <returns>成功返回TRUE,失败返回FALSE</returns> public bool PlayBackControl(int nChannelID, PlayCon playControl) { bool returnValue = false; switch (playControl) { case PlayCon.Play://播放 returnValue=CLIENT_PausePlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, 0); break; case PlayCon.Pause://暂停 returnValue=CLIENT_PausePlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, 1); break; case PlayCon.Slow://慢放 returnValue = CLIENT_SlowPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; case PlayCon.Fast://快进 returnValue = CLIENT_FastPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; case PlayCon.StepPlay://单步播放开始 returnValue = CLIENT_StepPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, false); break; case PlayCon.StepStop://单步播放停止 returnValue = CLIENT_StepPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle, true); break; case PlayCon.Stop://停止播放 returnValue = CLIENT_StopPlayBack(pClientInfo.Channel[nChannelID].PlayBackHandle); break; default: returnValue = false; break; } return returnValue; }