JWFullScreenExitReason

@objc
public enum JWFullScreenExitReason : Int
extension JWFullScreenExitReason: CustomStringConvertible

Constants indicating the reason fullscreen mode was exited, delivered through the optional JWPlayerViewControllerFullScreenDelegate dismiss callbacks.

The full set of constants is shared with the Android SDK so both platforms describe the same situations with the same values. The player does not currently exit fullscreen in every one of those situations, so some constants are reserved and are never reported today; each is marked below. Treat any unhandled value as equivalent to .unknown rather than switching exhaustively, so a reserved reason becoming live is not a breaking change.

Raw values are explicit and appended-only so the integers visible to Objective-C stay stable across releases.

  • The cause could not be determined.

    Declaration

    Swift

    case unknown = 0
  • Fullscreen exited when the user tapped the dedicated dismiss button: the ‘x’ in the upper-left corner of the backdrop, or the equivalent button in the related/gallery overlay top bar. This button only ever leaves fullscreen — it is not a toggle.

    Declaration

    Swift

    case userTappedDismissButton = 1
  • Fullscreen exited when the user tapped the fullscreen toggle button: the shrink icon in the VoD, Live, error and ad control bars, or the backdrop’s fullscreen button. The same control enters fullscreen when the player is windowed.

    Declaration

    Swift

    case userTappedToggleButton = 2
  • Reserved. Fullscreen presentation has no interactive swipe dismissal, so this is never reported.

    Declaration

    Swift

    case userSwipedDown = 3
  • Reserved. Device rotation does not itself dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case orientationChange = 4
  • Reserved. Backgrounding the app does not dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case appBackgrounded = 5
  • Reserved. Entering Picture in Picture does not dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case pictureInPictureInitiated = 6
  • Reserved. Completing playback does not dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case contentComplete = 7
  • Reserved. The end of an ad break does not dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case adBreakEnd = 8
  • Reserved. A playback error does not dismiss fullscreen, so this is never reported.

    Declaration

    Swift

    case playbackError = 9
  • Fullscreen exited because of a call to dismissFullScreen(animated:completion:), i.e. the request came from outside the player UI.

    Declaration

    Swift

    case external = 10
  • Declaration

    Swift

    public var description: String { get }