Example #1
0
        public void Setup(CustomVideoLayer layer)
        {
            if (!IsSupported() || IsSetep)
            {
                return;
            }

            if (layer?.VideoLayer != null)
            {
                controller          = new AVPictureInPictureController(layer.VideoLayer);
                controller.Delegate = this;
            }

            layer.VideoLayerChanged += (AVPlayerLayer obj) => {
                if (!IsSupported())
                {
                    return;
                }
                bool isActive = controller?.PictureInPictureActive ?? false;
                if (isActive)
                {
                    controller?.StopPictureInPicture();
                }
                controller          = new AVPictureInPictureController(layer.VideoLayer);
                controller.Delegate = this;
                if (isActive)
                {
                    controller.StartPictureInPicture();
                }
            };
            IsSetep = true;
        }
Example #2
0
 public void FailedToStartPictureInPicture(AVPictureInPictureController pictureInPictureController, NSError error)
 {
     // Picture in picture failed to start with an error, restore UI to continue
     // inline playback. Hide the active label and show the toolbar.
     PictureInPictureActiveLabel.Hidden = true;
     Toolbar.Hidden = false;
     HandleError(error);
 }
Example #3
0
 public void DidStartPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     // If your application contains a video library or other interesting views,
     // this delegate callback can be used to dismiss player view controller
     // and to present the user with a selection of videos to play next.
     PictureInPictureActiveLabel.Hidden = false;
     Toolbar.Hidden = true;
 }
Example #4
0
        void SetupPictureInPicturePlayback()
        {
            // Check to make sure Picture in Picture is supported for the current
            // setup (application configuration, hardware, etc.).

            if (AVPictureInPictureController.IsPictureInPictureSupported)
            {
                // Create `AVPictureInPictureController` with our `PlayerLayer`.
                // Set this as Delegate to receive callbacks for picture in picture events.
                // Add observer to be notified when PictureInPicturePossible changes value,
                // so that we can enable `PictureInPictureButton`.
                pictureInPictureController          = new AVPictureInPictureController(PlayerView.PlayerLayer);
                pictureInPictureController.Delegate = this;
                pictureInPictureController.AddObserver(this, "pictureInPicturePossible", NSKeyValueObservingOptions.New | NSKeyValueObservingOptions.Initial, IntPtr.Zero);
            }
            else
            {
                PictureInPictureButton.Enabled = false;
            }
        }
 public override void PictureInPictureController(AVPictureInPictureController pictureInPictureController, NSError error)
 {
     Debug.WriteLine($"failedToStartPictureInPictureWithError : {error.LocalizedDescription}");
 }
 public override void PictureInPictureControllerWillStopPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     Debug.WriteLine("pictureInPictureControllerWillStopPicture");
 }
 public override void PictureInPictureControllerDidStartPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     Debug.WriteLine("pictureInPictureControllerDidStartPicture");
 }
Example #8
0
 public override void WillStartPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     Console.WriteLine("WillStartPictureInPicture(pictureInPictureController)");
 }
Example #9
0
 public override void FailedToStartPictureInPicture(AVPictureInPictureController pictureInPictureController, NSError error)
 {
     Console.WriteLine($"FailedToStartPictureInPicture(pictureInPictureController, {error.LocalizedDescription})");
 }
Example #10
0
 public override void DidStopPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     Console.WriteLine("DidStopPictureInPicture(pictureInPictureController)");
 }
Example #11
0
 public void WillStopPictureInPicture(AVPictureInPictureController pictureInPictureController)
 {
     // Picture in picture mode will stop soon, hide the active label and show the toolbar.
     PictureInPictureActiveLabel.Hidden = true;
     Toolbar.Hidden = false;
 }
		public void FailedToStartPictureInPicture (AVPictureInPictureController pictureInPictureController, NSError error)
		{
			// Picture in picture failed to start with an error, restore UI to continue
			// inline playback. Hide the active label and show the toolbar.
			PictureInPictureActiveLabel.Hidden = true;
			Toolbar.Hidden = false;
			HandleError (error);
		}
		public void WillStopPictureInPicture (AVPictureInPictureController pictureInPictureController)
		{
			// Picture in picture mode will stop soon, hide the active label and show the toolbar.
			PictureInPictureActiveLabel.Hidden = true;
			Toolbar.Hidden = false;
		}
		public void DidStartPictureInPicture (AVPictureInPictureController pictureInPictureController)
		{
			// If your application contains a video library or other interesting views,
			// this delegate callback can be used to dismiss player view controller
			// and to present the user with a selection of videos to play next.
			PictureInPictureActiveLabel.Hidden = false;
			Toolbar.Hidden = true;
		}
		void SetupPictureInPicturePlayback ()
		{
			// Check to make sure Picture in Picture is supported for the current
			// setup (application configuration, hardware, etc.).

			if (AVPictureInPictureController.IsPictureInPictureSupported) {
				// Create `AVPictureInPictureController` with our `PlayerLayer`.
				// Set this as Delegate to receive callbacks for picture in picture events.
				// Add observer to be notified when PictureInPicturePossible changes value,
				// so that we can enable `PictureInPictureButton`.
				pictureInPictureController = new AVPictureInPictureController (PlayerView.PlayerLayer);
				pictureInPictureController.Delegate = this;
				pictureInPictureController.AddObserver (this, "pictureInPicturePossible", NSKeyValueObservingOptions.New | NSKeyValueObservingOptions.Initial, IntPtr.Zero);
			} else {
				PictureInPictureButton.Enabled = false;
			}
		}