LiveTracker

A class for checking live current time and determining when the player is at or behind the live edge.

Constructor

new LiveTracker(player, optionsopt)

Creates an instance of this class.

Parameters:
NameTypeAttributesDescription
playerdefault

The Player that this class should be attached to.

optionsObject<optional>

The key/value store of player options.

Properties
NameTypeAttributesDefaultDescription
trackingThresholdnumber<optional>
20

Number of seconds of live window (seekableEnd - seekableStart) that media needs to have before the liveui will be shown.

liveTolerancenumber<optional>
15

Number of seconds behind live that we have to be before we will be considered non-live. Note that this will only be used when playing at the live edge. This allows large seekable end changes to not effect whether we are live or not.

Methods

atLiveEdge() → {boolean}

Determines if currentTime is at the live edge and won't fall behind on each seekableendchange

Returns:

Whether playback is at the live edge

Type: 
boolean

behindLiveEdge() → {boolean}

If we are currently behind the live edge, aka currentTime will be behind on a seekableendchange

Returns:

If we are behind the live edge

Type: 
boolean

dispose()

Dispose of liveTracker

handleDurationchange()

handle a durationchange event on the player and start/stop tracking accordingly.

handleFirstTimeupdate()

handle the first timeupdate on the player if it wasn't already playing when live tracker started tracking.

handlePlay()

handle the first play on the player, and make sure that we seek right to the live edge.

handleSeeked()

Keep track of what time a seek starts, and listen for seeked to find where a seek ends.

isLive() → {boolean}

Determines if the player is live, only checks if this component is tracking live playback or not

Returns:

Whether liveTracker is tracking

Type: 
boolean

isTracking()

Whether live tracker is currently tracking or not.

liveCurrentTime() → {number}

get what we expect the live current time to be

Returns:

The expected live current time

Type: 
number

liveWindow() → {number}

Get the live time window aka the amount of time between seekable start and live current time.

Returns:

The amount of seconds that are seekable in the live video.

Type: 
number

nextSeekedFromUser()

The next seeked event is from the user. Meaning that any seek

2s behind live will be considered behind live for real and liveTolerance will be ignored.

pastSeekEnd() → {number}

The number of seconds that have occurred after seekable end changed. This will be reset to 0 once seekable end changes.

Returns:

Seconds past the current seekable end

Type: 
number

reset_()

Stop tracking, and set all internal variables to their initial value.

seekableEnd() → {number}

A helper to get the player seekable end so that we don't have to null check everywhere

Returns:

The furthest seekable end or Infinity.

Type: 
number

seekableStart() → {number}

A helper to get the player seekable start so that we don't have to null check everywhere

Returns:

The earliest seekable start or 0.

Type: 
number

seekToLiveEdge()

Seek to the live edge if we are behind the live edge

startTracking()

start tracking live playback

stopTracking()

stop tracking live playback

toggleTracking()

start/stop tracking

trackLive_()

all the functionality for tracking when seek end changes and for tracking how far past seek end we should be