读书人

【】【求解决】海康威视SDK二次开发 手

发布时间: 2012-07-31 12:33:46 作者: rapoo

【在线等】【求解决】海康威视SDK二次开发 手动解码时预览视频时会出现绿色(全屏绿色)
海康威视SDK二次开发 手动解码时预览视频时会出现绿色(全屏绿色)
代码如下:

C# code
 m_PictureBox = p_PictureBox;            m_PictureHandle = p_PictureBox.Handle;            CHCNetSDK.NET_DVR_CLIENTINFO lpClientInfo = new CHCNetSDK.NET_DVR_CLIENTINFO();            lpClientInfo.hPlayWnd = IntPtr.Zero;             lpClientInfo.lChannel = 1;            lpClientInfo.lLinkMode = 0;            lpClientInfo.sMultiCastIP = null;            this.m_nBagCount = nBagCount;            m_Reviewhandle = CHCNetSDK.NET_DVR_RealPlay_V30(m_UserID, ref lpClientInfo, m_RealData, IntPtr.Zero, 1);            if (m_Reviewhandle == -1)            {                nBagCount = -1;                uint _Error = CHCNetSDK.NET_DVR_GetLastError();                if (_Error > 0)                    YTLog.Error("预览视频失败!错误代码为:" + _Error.ToString() + ";错误信息:" + GetErrStr(_Error));                return false;            }       //播放回调        private void RealDataCallBack(Int32 lRealHandle, UInt32 dwDataType, ref byte pBuffer, UInt32 dwBufSize, IntPtr pUser)        {            switch (dwDataType)            {                case CHCNetSDK.NET_DVR_SYSHEAD:                    if (m_lPort < 0)                    {                        if (!HKPlayCtrl.PlayM4_GetPort(ref m_lPort))                        {                            YTLog.Error("获取播放库端口失败!错误代码为:");                        }                    }                    if (dwBufSize > 0)                    {                        if (!HKPlayCtrl.PlayM4_SetStreamOpenMode(m_lPort, HKPlayCtrl.STREAME_REALTIME))                        {                            break;                        }                        if (!HKPlayCtrl.PlayM4_OpenStream(m_lPort, ref pBuffer, dwBufSize, 1024 * 1024))                        {                            break;                        }                        if (!HKPlayCtrl.PlayM4_SetDisplayBuf(m_lPort, 100))                        {                            break;                        }                        //解码回调                        if (!HKPlayCtrl.PlayM4_SetDecCallBackEx(m_lPort, m_DECCBFUN, IntPtr.Zero, 0))                        {                            break;                        }                        //画图回调                        if (!HKPlayCtrl.PlayM4_RegisterDrawFun(m_lPort, m_Play_DrawFun, 0))                        {                            break;                        }                        if (!HKPlayCtrl.PlayM4_Play(m_lPort, m_PictureHandle))                        {                            break;                        }                        if (!HKPlayCtrl.PlayM4_SetOverlayMode(m_lPort, 0, 0/* COLORREF(0)*/))//play off screen // todo!!!                        {                            break;                        }                    }                    break;                case CHCNetSDK.NET_DVR_STREAMDATA:     // video stream data                    if (dwBufSize > 0 && m_lPort != -1)                    {                        for (int i = 0; i < 10; ++i)                        {                            if (HKPlayCtrl.PlayM4_InputData(m_lPort, ref pBuffer, dwBufSize))                            {                                break;                            }                            Thread.Sleep(5);                        }                        //while (HKPlayCtrl.PlayM4_InputData(m_lPort, ref pBuffer, dwBufSize) == false)                        //{                        //    Thread.Sleep(5);                        //}                    }                    break;                default:                    break;            }



谢谢!!!

[解决办法]
咦, 没有回复?
分给我呗~~~~

读书人网 >C#

热点推荐