示例#1
0
        private static async void ScreenCastInitiated(object sender, ScreenCastRequest screenCastRequest)
        {
            ICapturer capturer;

            try
            {
                if (Conductor.Viewers.Count == 0)
                {
                    capturer = new DXCapture();
                    capturer.Init();
                }
                else
                {
                    capturer = new BitBltCapture();
                }
            }
            catch (Exception ex)
            {
                Logger.Write(ex);
                capturer = new BitBltCapture();
            }
            await Conductor.OutgoingMessages.SendCursorChange(CursorIconWatcher.GetCurrentCursor(), new List <string>() { screenCastRequest.ViewerID });

            ScreenCaster.BeginScreenCasting(screenCastRequest.ViewerID, screenCastRequest.RequesterName, capturer, Conductor);
        }
 private void ScreenCastRequested(object sender, ScreenCastRequest screenCastRequest)
 {
     App.Current.Dispatcher.Invoke(() =>
     {
         var result = MessageBox.Show($"You've received a connection request from {screenCastRequest.RequesterName}.  Accept?", "Connection Request", MessageBoxButton.YesNo, MessageBoxImage.Question);
         if (result == MessageBoxResult.Yes)
         {
             Task.Run(async() =>
             {
                 ICapturer capturer;
                 try
                 {
                     if (Conductor.Viewers.Count == 0)
                     {
                         capturer = new DXCapture();
                         capturer.Init();
                     }
                     else
                     {
                         capturer = new BitBltCapture();
                     }
                 }
                 catch (Exception ex)
                 {
                     Logger.Write(ex);
                     capturer = new BitBltCapture();
                 }
                 await Conductor.OutgoingMessages.SendCursorChange(CursorIconWatcher.GetCurrentCursor(), new List <string>()
                 {
                     screenCastRequest.ViewerID
                 });
                 ScreenCaster.BeginScreenCasting(screenCastRequest.ViewerID, screenCastRequest.RequesterName, capturer, Conductor);
             });
         }
     });
 }