TweaksConfig

@objcMembers
@objc(BMPTweaksConfig)
public final class TweaksConfig : NSObject

This configuration is used as an incubator for experimental features. Tweaks are not officially supported and are not guaranteed to be stable, i.e. their naming, functionality and API can change at any time within the tweaks or when being promoted to an official feature and moved into its final configuration namespace.

  • If enabled, HLS playlists will be parsed and additional features and events are enabled. This includes:

    • MetadataEvents carrying segment-specific metadata for custom HLS tags, like #EXT-X-SCTE35
    • MetadataParsedEvents carrying segment-specific metadata for custom HLS tags, like #EXT-X-SCTE35
    • DrmDataParsedEvents when a #EXT-X-KEY is found
    • Player.availableVideoQualities includes additional information
    • Automatic retries when HLS playlist requests failed with non-2xx HTTP status code

    Default is false.

    Declaration

    Swift

    public var isNativeHlsParsingEnabled: Bool
  • If enabled, playlists will be downloaded by the Bitmovin Player SDK instead of AVFoundation. This enables additional features and events, like DownloadFinishedEvents for playlist downloads.

    If set to false, enabling nativeHlsParsingEnabled won’t have any effect.

    Default is true.

    Declaration

    Swift

    public var isCustomHlsLoadingEnabled: Bool
  • The frequency in seconds PlayerListener#onTimeChanged is called with TimeChangedEvents. Default is 1. Minimum is 0.025.

    Declaration

    Swift

    public var timeChangedInterval: TimeInterval
  • When duration for subtitle tracks mismatch between the HLS manifest and the subtitle track, this can cause the player to get stalled or prevent it from rendering subtitles after seeking. This can be avoided by deselecting subtitles during seeking and reselecting them afterwards.

    If set to true, active subtitle track will be deselected before seeking and reselected when seeking finished. No subtitle change related events will be fired. If set to false, no changes are applied to subtitle selection on seeking.

    Default is false.

    Declaration

    Swift

    @available(*, deprecated, message: "This tweak is deprecated and will be removed without replacement in an upcoming minor version!")
    public var disableSubtitleTracksWhileSeeking: Bool
  • The threshold which will be applied when seeking to the end in seconds. This value will be used to calculate the maximum seekable time when calling player.seek(time:) or player.playlist.seek(source:time:), so the maximum value will be duration - seekToEndThreshold.

    This is useful if the duration of the segments does not match the duration specified in the manifest. In this case, if we try to seek to the end, AVPlayer could get stuck and might stall forever Therefore increasing this value could help.

    Default is 0.5.

    Declaration

    Swift

    public var seekToEndThreshold: TimeInterval
  • Specifies the player behaviour when Player.play is called. Default is PlaybackStartBehaviour.relaxed.

    Declaration

    Swift

    public var playbackStartBehaviour: PlaybackStartBehaviour
  • Specifies the player behaviour when stalling should be exited. Default is UnstallingBehaviour.relaxed.

    Declaration

    Swift

    public var unstallingBehaviour: UnstallingBehaviour
  • If set to true, the timing of initial subtitle handling will be delayed until the Source is ready to start playback. This can be helpful when having a live stream with a growing DVR window and a default subtitle track. In this case, there might be an AVPlayer race-condition that happens occasionally which results in AVPlayer starting playback at the beginning of the DVR window instead if at the live-edge.

    In other cases, setting this to true does not have any positive effect.

    Default is false.

    Declaration

    Swift

    public var delayInitialSubtitleSelection: Bool
  • Declaration

    Swift

    override public init()