private void video_NewFrame(object sender, Video.NewFrameEventArgs eventArgs) { try { byte[] byData; BitmapImage bi; IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000); IPEndPoint myEP = new IPEndPoint(ipAddress, 11000); Socket senDer = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); senDer.Bind(myEP); senDer.Connect(remoteEP); using (var bitmap = (Bitmap)eventArgs.Frame.Clone()) { bi = bitmap.ToBitmapImage(); } bi.Freeze(); // avoid cross thread operations and prevents leaks Dispatcher.BeginInvoke(new ThreadStart(delegate { byData = ConvertBitmapSourceToByteArray(bi); senDer.Send(byData); senDer.Receive(byData, 10000, SocketFlags.None); videoPlayer.Source = ToBitmapImage(byData); //bi; senDer.Close(); Thread.Sleep(5); })); } catch (Exception exc) { MessageBox.Show("Error on _videoSource_NewFrame:\n" + exc.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); StopCamera(); } }
private void video_NewFrame(object sender, Video.NewFrameEventArgs eventArgs) { try { BitmapImage bi; using (var bitmap = (Bitmap)eventArgs.Frame.Clone()) { bi = bitmap.ToBitmapImage(); } bi.Freeze(); // avoid cross thread operations and prevents leaks Dispatcher.BeginInvoke(new ThreadStart(delegate { videoPlayer.Source = bi; })); } catch (Exception exc) { MessageBox.Show("Error on _videoSource_NewFrame:\n" + exc.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); StopCamera(); } }