protected override bool PrepPlay() { if (PlayHandle < 0) { PlayHandle = HCNetSDKWrap.NET_DVR_RealPlay(DVRDevice.UserID, ref mClientInfo); if (PlayHandle > -1) { HCNetSDKWrap.NET_DVR_SetPlayerBufNumber(PlayHandle, 10); HCNetSDKWrap.NET_DVR_SetRealDataCallBack(PlayHandle, mPlayDataCallback, 0); if (ImageDrawer.DrawFun != null) { HCNetSDKWrap.NET_DVR_RigisterDrawFun(PlayHandle, ImageDrawer.DrawFun, DVRDevice.UserID); } Thread.Sleep(1000); PlayPort = HCNetSDKWrap.NET_DVR_GetRealPlayerIndex(PlayHandle); int n = 0; while (PlayPort < 0) { Thread.Sleep(100); PlayPort = HCNetSDKWrap.NET_DVR_GetRealPlayerIndex(PlayHandle); if (++n > 5) { break; } } if (PlayPort > -1) { return(true); } else { HKDVRException hke = new HKDVRException("获取播放器端口失败"); CLocalSystem.WriteErrorLog(string.Format("HKDVRRealPlayer({0}) 播放时获取播放器端口({1})失败:{2}", this.Name, PlayPort, hke.Message)); if (HCNetSDKWrap.NET_DVR_StopRealPlay(PlayHandle)) { PlayHandle = -1; } } } else { HKDVRException hke = new HKDVRException("播放失败"); CLocalSystem.WriteErrorLog(string.Format("HKDVRRealPlayer({0}) {1}", this.Name, hke.Message)); } } return(false); }
protected override bool PrepStop() { if (PlayHandle >= 0) { if (HCNetSDKWrap.NET_DVR_StopRealPlay(PlayHandle)) { PlayPort = -1; PlayHandle = -1; return(true); } } return(false); }