//void factory_Opened(object sender, EventArgs e) //{ //imageSeqeuenceNumber = 0; //phoneService.BeginStartSession(0, (int)resolution.Width, (int)resolution.Height, // a => // { // phoneService.EndStartSession(a); // cam.PreviewFrameAvailable += cam_PreviewFrameAvailable; // }, null); //} void cam_PreviewFrameAvailable(ICameraCaptureDevice sender, object args) { if (Environment.TickCount - lastSendImageTick < sendImageInterval) { return; } int[] pixels = new int[(int)Math.Ceiling(resolution.Width * resolution.Height)]; sender.GetPreviewBufferArgb(pixels); List <byte> buffer = new List <byte>(pixels.Length * 4); foreach (int v in pixels) { buffer.AddRange(BitConverter.GetBytes(v)); } if (phoneService != null) { phoneService.BeginSendImage(DateTime.UtcNow.GetUnixTimestamp() - App.TimeDifference, buffer.ToArray(), SendImageCompleted, null); } sendImageInterval += 100; //Dispatcher.BeginInvoke(() => { txtDebug.Text = "sendImageInterval=" + sendImageInterval; }); }