Constructor
new Playhead(video, timelinenon-null, rebufferingGoal, startTimenullable, onBuffering, onSeek)
Creates a Playhead, which manages the video's current time.
The Playhead provides mechanisms for setting the presentation's start time,
restricting seeking to valid time ranges, and stopping playback for startup
and re- buffering.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
video |
HTMLMediaElement | ||
timeline |
shaka.media.PresentationTimeline | ||
rebufferingGoal |
number | ||
startTime |
number |
<nullable> |
The playhead's initial position in seconds. If null, defaults to the start of the presentation for VOD and the live-edge for live. |
onBuffering |
function(boolean) | Called and passed true when stopped for buffering; called and passed false when proceeding after buffering. If passed true, the callback should not set the video's playback rate. | |
onSeek |
function() | Called when the user agent seeks to a time within the presentation timeline. |
- Implements:
- Source:
Members
-
(private, static, constant) FUDGE_FACTOR_ :number
-
A fudge factor used when comparing buffered ranges to the duration to determine if we have buffered all available content.
Type:
- number
- Source:
-
(private, static, constant) UNDERFLOW_THRESHOLD_ :number
-
The threshold for underflow, in seconds. If there is less than this amount of data buffered, we will consider the player to be out of data.
Type:
- number
- Source:
-
(private) buffering_ :boolean
-
Type:
- boolean
- Source:
-
(private) eventManager_ :shaka.util.EventManager
-
Type:
- Source:
-
(private, nullable) onBuffering_ :?function(boolean)
-
Type:
- ?function(boolean)
- Source:
-
(private, nullable) onSeek_ :?function()
-
Type:
- ?function()
- Source:
-
(private) playbackRate_ :number
-
Type:
- number
- Source:
-
(private) rebufferingGoal_ :number
-
Type:
- number
- Source:
-
(private, constant, nullable) startTime_ :number
-
The playhead's initial position in seconds, or null if it should automatically be calculated later.
Type:
- number
- Source:
-
(private) timeline_ :shaka.media.PresentationTimeline
-
Type:
- Source:
-
(private, nullable) trickPlayIntervalId_ :number
-
Type:
- number
- Source:
-
(private) video_ :HTMLMediaElement
-
Type:
- HTMLMediaElement
- Source:
-
(private, nullable) watchdogTimer_ :number
-
Type:
- number
- Source:
Methods
-
(private) cancelWatchdogTimer_()
-
Cancels the watchdog timer, if any.
- Source:
-
(private) clampTime_(time) → {number}
-
Clamps the given time to the segment availability window.
Parameters:
Name Type Description time
number The time in seconds. - Source:
Returns:
The clamped time in seconds.- Type
- number
-
destroy() → (non-null) {Promise}
-
Destroys the object, releasing all resources and shutting down all operations. Returns a Promise which is resolved when destruction is complete. This Promise should never be rejected.
- Implements:
- Source:
Returns:
- Type
- Promise
-
getPlaybackRate() → {number}
-
Gets the current effective playback rate. This may be negative even if the browser does not directly support rewinding.
- Source:
Returns:
- Type
- number
-
(private) getStartTime_() → {number}
-
Gets the playhead's initial position in seconds.
- Source:
Returns:
- Type
- number
-
getTime() → {number}
-
Gets the playhead's current (logical) position.
- Source:
Returns:
- Type
- number
-
(private) movePlayhead_(currentTime, targetTime)
-
Moves the playhead to the target time, triggering a call to onSeeking_().
Parameters:
Name Type Description currentTime
number targetTime
number - Source:
-
(private) onLoadedMetadata_()
-
Handles a 'loadedmetadata' event.
- Source:
-
(private) onPlaying_()
-
Handles a 'playing' event.
- Source:
-
(private) onRateChange_()
-
Handles a 'ratechange' event.
- Source:
-
(private) onSeeking_()
-
Handles a 'seeking' event.
- Source:
-
(private) onSeekingToStartTime_()
-
Handles the 'seeking' event from the initial jump to the start time (if there is one).
- Source:
-
(private) onWatchdogTimer_()
-
Called on a recurring timer to detect buffering events.
- Source:
-
(private) reposition_(currentTime) → {number}
-
Computes a new playhead position that's within the presentation timeline.
Parameters:
Name Type Description currentTime
number - Source:
Returns:
The time to reposition the playhead to.- Type
- number
-
setBuffering(buffering)
-
Stops the playhead for buffering, or resumes the playhead after buffering.
Parameters:
Name Type Description buffering
boolean True to stop the playhead; false to allow it to continue. - Source:
-
setPlaybackRate(rate)
-
Sets the playback rate.
Parameters:
Name Type Description rate
number - Source:
-
setRebufferingGoal(rebufferingGoal)
-
Parameters:
Name Type Description rebufferingGoal
number - Source:
-
(private) startWatchdogTimer_()
-
Starts the watchdog timer.
- Source: