コード例 #1
0
        public void DidFinish(RPBroadcastActivityViewController broadcastActivityViewController, RPBroadcastController broadcastController, NSError error)
        {
            Console.WriteLine($"BroadcastActivityVC: {broadcastActivityViewController}: BroadcastController: {broadcastController} Error: {error}");

            InvokeOnMainThread(() => broadcastActivityViewController.DismissViewController(true, null));

            _broadcastController = broadcastController;

            if (error == null)
            {
                broadcastController.StartBroadcast(err =>
                {
                    if (err == null)
                    {
                        broadcastController.Delegate = this;

                        //InvokeOnMainThread(() =>
                        //{
                        //    _shareButton.Title = "Stop";
                        //    _shareButton.TintColor = UIColor.Red;
                        //});
                    }
                    else
                    {
                        // Some error has occurred starting the broadcast, surface it to the user.
                        InvokeOnMainThread(() =>
                        {
                            UIAlertController alertController = UIAlertController.Create("Error", err.LocalizedDescription, UIAlertControllerStyle.Alert);
                            alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, null));
                            PresentViewController(alertController, true, null);
                        });
                    }
                });
            }
            else
            {
                Console.WriteLine($"Error returning from BroadcastActivity: {error}");
            }
        }
コード例 #2
0
        void OnShareButtonPressed(object sender, EventArgs e)
        {
            if (!RPScreenRecorder.SharedRecorder.Recording)
            {
                if (UIDevice.CurrentDevice.CheckSystemVersion(10, 0))
                {
                    RPBroadcastActivityViewController.LoadBroadcastActivityViewController(
                        (broadcastActivity, error) =>
                    {
                        broadcastActivity.ModalPresentationStyle = UIModalPresentationStyle.Popover;
                        broadcastActivity.Delegate = this;

                        if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
                        {
                            UIView srcView = (sender as UIBarButtonItem)?.ValueForKey(new NSString("view")) as UIView;
                            CGRect srcRect = srcView?.Frame ?? CGRect.Empty;

                            broadcastActivity.PopoverPresentationController.SourceRect = srcRect;
                            broadcastActivity.PopoverPresentationController.SourceView = srcView;
                        }

                        PresentViewController(broadcastActivity, true, null);
                    });
                }
            }
            else
            {
                Console.WriteLine("Disconnecting...");
                _broadcastController.FinishBroadcast(error =>
                {
                    InvokeOnMainThread(() =>
                    {
                        //_shareButton.TintColor = UIColor.FromRGB(0, 122, 255);
                        //_shareButton.Title = "Share";
                    });
                });
            }
        }