SystemUserInterfaceConfig

@objcMembers
@objc(BMPSystemUserInterfaceConfig)
public class SystemUserInterfaceConfig : UserInterfaceConfig

Contains config values that can be used to alter the visual presentation and behaviour when the System UI is used.

  • An array of text style rules to apply to WebVTT subtitles and other legible text.

    Declaration

    Swift

    public var subtitleStyles: [AVTextStyleRule]?
  • When set to true the first frame of the main content will not be rendered before playback starts. Default is false.

    To reliably hide the first frame before a pre-roll ad, please ensure that you are using the AdvertisingConfiguration to schedule ads and not the scheduleAd API call.

    Declaration

    Swift

    public var hideFirstFrame: Bool
  • Indicates whether to show the ‘Auto’ option when choosing subtitles or not. Defaults to true.

    This property is only available on tvOS.

    Declaration

    Swift

    @available(tvOS 14.0, *)
    @available(iOS, unavailable)
    public var showAutoSubtitleOption: Bool { get set }
  • Indicates whether to show the seek bar and related controls during user interaction. Default is true.

    Depending on the tvOS version this property has a different behaviour:

    • On tvOS 14 it controls the seek bar visibility. Set this property to false to selectively prevent the seek bar from being displayed during user interaction.

    • On tvOS 15 and above it controls the seek bar and audio/subtitle track selection views visibility. Set this property to false to selectively prevent the seek bar and audio/subtitle track selection views from being displayed during user interaction.

    This property is only available on tvOS. The new tvOS 15 System UI is only used when the app is built using Xcode 13.

    Declaration

    Swift

    @available(tvOS 14.0, *)
    @available(iOS, unavailable)
    public var showSeekBar: Bool { get set }
  • Indicates whether to show the views for video metadata, navigation markers and playback settings when requested by the user. Default is true.

    Depending on the tvOS version this property has a different behaviour:

    • On tvOS 14 it controls the visibility of the info views which contains the media information and audio/subtitle track selection. If no AVNavigationMarkersGroups or AVMetadataItems are set, only the audio/subtitle selection view is shown.

    • On tvOS 15 and above it controls the visibility of the info views which contains the media information and chapters if AVNavigationMarkersGroups are configured. (The audio/subtitle selected was removed from the info view) If no AVNavigationMarkersGroups or AVMetadataItems are set, the info view isn’t shown.

    Set this property to false to selectively prevent the info views from being displayed during user interaction.

    This property is only available on tvOS. The new tvOS 15 System UI is only used when the app is built using Xcode 13.

    Declaration

    Swift

    @available(tvOS 14.0, *)
    @available(iOS, unavailable)
    public var showInfoViews: Bool { get set }
  • Indicates whether the title is shown above the seek bar. Default is true.

    Set this property to false to selectively prevent the title from being displayed. If showSeekBar is false, this property won’t have an effect. This property is only available on tvOS 15 and above.

    Declaration

    Swift

    @available(tvOS 15.0, *)
    @available(iOS, unavailable)
    public var showTitleInSeekBar: Bool { get set }
  • An array of actions and menus to display with the default player controls. Empty by default.

    Use this property to display custom pop-up menus in transport bar. This property only supports menu elements of type UIAction and UIMenu, and supports displaying inline one level of submenus.

    Declaration

    Swift

    @available(tvOS 15.0, *)
    @available(iOS, unavailable)
    public var transportBarCustomMenuItems: [UIMenuElement] { get set }
  • Called whenever the user is seeking in a VOD or time shifting in a Live source in the system UI. Can be used to override the target time of the seek or time shift operation, for instance to prevent the user from skipping over ads.

    Declaration

    Swift

    @available(tvOS 14.0, *)
    @available(iOS, unavailable)
    public var timeToSeekAfterUserSeeked: ((_ oldTime: TimeInterval, _ targetTime: TimeInterval) -> TimeInterval)? { get set }