public static bool CleanupCard() { lock (mInitObj) { if (mRefCount > 0) { mRefCount--; } if (mSDKInit && mRefCount <= 0) { if (HikClientSDKWrap.MP4_ClientCleanup()) { mSDKInit = false; mRefCount = 0; return(true); } else { return(false); } } else { return(true); } } }
public static bool InitCard(short serverPort, short clientPort) { lock (mInitObj) { mRefCount++; if (!mSDKInit) { if (HikClientSDKWrap.MP4_ClientSetNetPort(serverPort, clientPort)) { mSDKInit = HikClientSDKWrap.MP4_ClientStartup(WM_MYCOMMAND, IntPtr.Zero); //if (mSDKInit) { mServerPort = serverPort; mClientPort = clientPort; HikClientSDKWrap.MP4_ClientSetWait(500, 3); bool f = HikClientSDKWrap.MP4_ClientSetTTL(64); mSDKInit = true; } } } return(mSDKInit); } }
protected override bool PrepStop() { if (mPlayHandle > -1) { //if (HikClientSDKWrap.MP4_ClientStopCapture(mPlayHandle)) if (HikClientSDKWrap.MP4_ClientSetCapPicCallBack(mPlayHandle, null)) { return(true); } } return(false); }
protected override bool PrepClose() { if (mPlayHandle > -1) { //HikClientSDKWrap.MP4_ClientSetCapPicCallBack(mPlayHandle, null); if (HikClientSDKWrap.MP4_ClientStop(mPlayHandle)) { mPlayHandle = -1; return(true); } } return(false); }
protected override bool PrepOpen(object target) { if (mPlayHandle < 0) { mClientVideoInfo.m_hShowVideo = HWnd; mPlayHandle = HikClientSDKWrap.MP4_ClientStart(ref mClientVideoInfo, null); if (mPlayHandle > -1) { int state = -1; while ((state = HikClientSDKWrap.MP4_ClientGetState(mPlayHandle)) < 2) { Thread.Sleep(5); } if (state == 2) { //HikClientSDKWrap.MP4_ClientSetCapPicCallBack(mPlayHandle, mCapPicFun); HikClientSDKWrap.MP4_ClientSetQuality(mPlayHandle, HikClientSDKWrap.PicQuality.LOWQUALITY); HikClientSDKWrap.MP4_ClientSetPlayDelay(mPlayHandle, 0); HikClientSDKWrap.MP4_ClientSetBufferNum(mPlayHandle, 0); return(true); } else { switch (state) { case 3: throw new Exception("异常退出!"); case 4: throw new Exception("接收完毕,退出!"); case 5: throw new Exception("无法联系服务端!"); case 6: throw new Exception("服务端拒绝访问!"); default: throw new Exception("发生未知错误!"); } } } } return(false); }