DefaultLivePlaybackSpeedControl.Builder


public final class DefaultLivePlaybackSpeedControl.Builder


Builder for a DefaultLivePlaybackSpeedControl.

Summary

Public constructors

Creates a builder.

Public methods

DefaultLivePlaybackSpeedControl

Builds an instance.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setFallbackMaxPlaybackSpeed(float fallbackMaxPlaybackSpeed)

Sets the maximum playback speed that should be used if no maximum playback speed is defined by the media.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setFallbackMinPlaybackSpeed(float fallbackMinPlaybackSpeed)

Sets the minimum playback speed that should be used if no minimum playback speed is defined by the media.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setMaxLiveOffsetErrorMsForUnitSpeed(
    long maxLiveOffsetErrorMsForUnitSpeed
)

Sets the maximum difference between the current live offset and the target live offset, in milliseconds, for which unit speed (1.0f) is used.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setMinPossibleLiveOffsetSmoothingFactor(
    float minPossibleLiveOffsetSmoothingFactor
)

Sets the smoothing factor when smoothing the minimum possible live offset that can be achieved during playback.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setMinUpdateIntervalMs(long minUpdateIntervalMs)

Sets the minimum interval between playback speed changes, in milliseconds.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setProportionalControlFactor(float proportionalControlFactor)

Sets the proportional control factor used to adjust the playback speed.

DefaultLivePlaybackSpeedControl.Builder
@CanIgnoreReturnValue
setTargetLiveOffsetIncrementOnRebufferMs(
    long targetLiveOffsetIncrementOnRebufferMs
)

Sets the increment applied to the target live offset each time the player is rebuffering, in milliseconds.

Public constructors

Builder

public Builder()

Creates a builder.

Public methods

build

public DefaultLivePlaybackSpeedControl build()

Builds an instance.

setFallbackMaxPlaybackSpeed

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setFallbackMaxPlaybackSpeed(float fallbackMaxPlaybackSpeed)

Sets the maximum playback speed that should be used if no maximum playback speed is defined by the media.

The default is DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED.

Parameters
float fallbackMaxPlaybackSpeed

The fallback maximum factor by which playback can be sped up.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setFallbackMinPlaybackSpeed

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setFallbackMinPlaybackSpeed(float fallbackMinPlaybackSpeed)

Sets the minimum playback speed that should be used if no minimum playback speed is defined by the media.

The default is DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED.

Parameters
float fallbackMinPlaybackSpeed

The fallback minimum factor by which playback can be sped up.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setMaxLiveOffsetErrorMsForUnitSpeed

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setMaxLiveOffsetErrorMsForUnitSpeed(
    long maxLiveOffsetErrorMsForUnitSpeed
)

Sets the maximum difference between the current live offset and the target live offset, in milliseconds, for which unit speed (1.0f) is used.

The default is DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED.

Parameters
long maxLiveOffsetErrorMsForUnitSpeed

The maximum live offset error for which unit speed is used, in milliseconds.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setMinPossibleLiveOffsetSmoothingFactor

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setMinPossibleLiveOffsetSmoothingFactor(
    float minPossibleLiveOffsetSmoothingFactor
)

Sets the smoothing factor when smoothing the minimum possible live offset that can be achieved during playback.

The live playback speed control keeps track of the minimum possible live offset achievable during playback to know whether it can reduce the current target live offset. The minimum possible live offset is defined as currentLiveOffset - bufferedDuration. As the minimum possible live offset is constantly changing, it is smoothed over recent samples by applying exponential smoothing: smoothedMinPossibleOffset = smoothingFactor x smoothedMinPossibleOffset + (1-smoothingFactor) x currentMinPossibleOffset.

Parameters
float minPossibleLiveOffsetSmoothingFactor

The smoothing factor. Must be ≥ 0 and <1.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setMinUpdateIntervalMs

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setMinUpdateIntervalMs(long minUpdateIntervalMs)

Sets the minimum interval between playback speed changes, in milliseconds.

The default is DEFAULT_MIN_UPDATE_INTERVAL_MS.

Parameters
long minUpdateIntervalMs

The minimum interval between playback speed changes, in milliseconds.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setProportionalControlFactor

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setProportionalControlFactor(float proportionalControlFactor)

Sets the proportional control factor used to adjust the playback speed.

The factor by which playback will be sped up is calculated as 1.0 + proportionalControlFactor x (currentLiveOffsetSec - targetLiveOffsetSec).

The default is DEFAULT_PROPORTIONAL_CONTROL_FACTOR.

Parameters
float proportionalControlFactor

The proportional control factor used to adjust the playback speed.

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.

setTargetLiveOffsetIncrementOnRebufferMs

@CanIgnoreReturnValue
public DefaultLivePlaybackSpeedControl.Builder setTargetLiveOffsetIncrementOnRebufferMs(
    long targetLiveOffsetIncrementOnRebufferMs
)

Sets the increment applied to the target live offset each time the player is rebuffering, in milliseconds.

Parameters
long targetLiveOffsetIncrementOnRebufferMs

The increment applied to the target live offset when the player is rebuffering, in milliseconds

Returns
DefaultLivePlaybackSpeedControl.Builder

This builder, for convenience.