SystemUserInterfaceConfig
@objcMembers
@objc(BMPSystemUserInterfaceConfig)
public class SystemUserInterfaceConfig : UserInterfaceConfig, @unchecked Sendable
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
AVNavigationMarkersGroup
s orAVMetadataItem
s 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
AVNavigationMarkersGroup
s are configured. (The audio/subtitle selected was removed from the info view) If noAVNavigationMarkersGroup
s orAVMetadataItem
s 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. IfshowSeekBar
isfalse
, 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
andUIMenu
, 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 }