Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        protected override bool PrepStop()
        {
            if (PlayHandle >= 0)
            {
                if (HCNetSDKWrap.NET_DVR_StopRealPlay(PlayHandle))
                {
                    PlayPort   = -1;
                    PlayHandle = -1;

                    return(true);
                }
            }
            return(false);
        }