nvr zzz

来源:互联网 发布:手机看病软件 编辑:程序博客网 时间:2024/05/21 09:50
 

1. NVRClientLib.RecordFile.cs
BuildRecordFileName(),  file extention is ".264"

2. client\SWNetSDK.cs
StartPlayByServer

3.  server\SWNetSDK.cs
Add 2 variable --> 
 private bool m_bRealPlaying = false;

        private byte[] _headerBytes = null;
        private byte[] _totalHeaderBytes = null;


StartPlay()
            if (_hdev > 0)
            {
                if (!isRealPlaying && _realHandle > 0)
                {
...

 isRealPlaying = true;

private void ClientReadDataCallBack(

 _totalHeaderBytes = new byte[nRet];
 Array.Copy(szBuff, _totalHeaderBytes, nRet);

 

SendToClients()
                    try
                    {
                        if (!_header_sent_clients.Contains(_clients.Keys[i].ToString

()))
                        {
                            if (_totalHeaderBytes != null)
                            {
                                SWLogger.writeLog("SWNetSDK.SendToClients, send header

size: " + _totalHeaderBytes.Length.ToString());
                                _clients.Values[i].Send(_totalHeaderBytes,

_totalHeaderBytes.Length);
                                _header_sent_clients.Add(_clients.Keys[i].ToString());

                              
                            }
                        }
                        SWLogger.writeLog("SWNetSDK.SendToClients, pPacketBuffer size:

" + nPacketSize.ToString());
                        _clients.Values[i].Send(pPacketBuffer, (int)nPacketSize);

 


        public void Cleanup()
        {
            if (isInitOk)
            {
                _headerBytes = null;
                _totalHeaderBytes = null;
                _header_sent_clients.Clear();

 


        public void RemoveClient(string socketId)
        {
            lock (_clientLock)
            {
                if (_clients.ContainsKey(socketId))
                {
                    _clients.Remove(socketId);
                    if (onDevMsgRef != null)
                    {
                        onDevMsgRef.BeginInvoke(GetVideoKey(), " 客户端断开一个与[" +

GetVideoKey() + "]的连接 ", null, null);
                    }
                }
                if (_header_sent_clients.Contains(socketId))
                    _header_sent_clients.Remove(socketId);
            }
        }