/// <summary> /// 添加VideoPackageModel /// </summary> /// <param name="sessionId"></param> /// <param name="model"></param> /// <returns></returns> private bool addVideoPackageModel(string sessionId, string privateKey, DateTime startTime, DateTime endTime, int seconds) { VideoPackageModel oldModel; if (FILE_WRITERS.TryGetValue(sessionId, out oldModel)) { if (oldModel.Disposed) //可能没删除 { FILE_WRITERS.TryRemove(sessionId, out oldModel); VideoPackageModel model = new VideoPackageModel(privateKey, sessionId, startTime, endTime, seconds, PATH); //避免计时器出错 return(FILE_WRITERS.TryAdd(sessionId, model)); } return(false); } else { VideoPackageModel model = new VideoPackageModel(privateKey, sessionId, startTime, endTime, seconds, PATH); return(FILE_WRITERS.TryAdd(sessionId, model)); } }
/// <summary> /// 处理设备发来的视频 /// </summary> /// <param name="requestInfo"></param> private void handleDeviceInfo(MyUdpRequestInfo requestInfo) { VideoPackageModel videoModel = getVideoPackage(requestInfo.SessionID); if (videoModel == null || requestInfo.Body.Length < MIN_IMG_SIZE) { return; } MemoryStream stream = null; stream = new MemoryStream(requestInfo.Body); Bitmap img = null; try { img = HandleUdpUtils.BytesToBitmap(requestInfo.Body); // img.Save("D:\\JGHPCXReadVersionD\\video\\001\\test.jpg"); videoModel.wirteVideo(img); } catch (Exception e) { LOG.Error(requestInfo.SessionID + "|" + e.ToString()); Console.WriteLine(requestInfo.SessionID + "|" + e.ToString()); } finally { if (stream != null) { stream.Close(); } if (img != null) { img.Dispose(); } } }