Class: shaka.media.GapJumpingController

Constructor

new GapJumpingController(videonon-null, timelinenon-null, config, stallDetector, onEvent)

Parameters:
Name Type Description
video HTMLMediaElement
timeline shaka.media.PresentationTimeline
config shaka.extern.StreamingConfiguration
stallDetector shaka.media.StallDetector The stall detector is used to keep the playhead moving while in a playable region. The gap jumping controller takes ownership over the stall detector. If no stall detection logic is desired, |null| may be provided.
onEvent function Called when an event is raised to be sent to the application.
Implements:
Source:

Members

BROWSER_GAP_TOLERANCE

The limit, in seconds, for the gap size that we will assume the browser will handle for us.
Source:

gapJumpTimer_ :shaka.util.Timer

We can't trust |readyState| or 'waiting' events on all platforms. To make up for this, we poll the current time. If we think we are in a gap, jump out of it. See: https://bit.ly/2McuXxm and https://bit.ly/2K5xmJO
Type:
Source:

gapsJumped_ :number

Type:
  • number
Source:

hadSegmentAppended_ :boolean

Type:
  • boolean
Source:

onEvent_ :?function(!Event)

Type:
  • ?function(!Event)
Source:

prevReadyState_ :number

Type:
  • number
Source:

seekingEventReceived_ :boolean

Type:
  • boolean
Source:

stallDetector_ :shaka.media.StallDetector

The stall detector tries to keep the playhead moving forward. It is managed by the gap-jumping controller to avoid conflicts. On some platforms, the stall detector is not wanted, so it may be null.
Type:
Source:

Methods

getGapsJumped() → {number}

Returns the total number of playback gaps jumped.
Source:
Returns:
Type
number

onPollGapJump_()

Called on a recurring timer to check for gaps in the media. This is also called in a 'waiting' event.
Source:

onSeeking()

Called when a seek has started.
Source:

onSegmentAppended()

Called when a segment is appended by StreamingEngine, but not when a clear is pending. This means StreamingEngine will continue buffering forward from what is buffered. So we know about any gaps before the start.
Source:

release()

Request that this object release all internal references.
Implements:
Source: