media3/docs/doc/reference/com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html
2021-04-21 11:00:57 +01:00

605 lines
35 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>DefaultLivePlaybackSpeedControl (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DefaultLivePlaybackSpeedControl (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/android/exoplayer2/DefaultControlDispatcher.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html" target="_top">Frames</a></li>
<li><a href="DefaultLivePlaybackSpeedControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="../../../../com/google/android/exoplayer2/package-summary.html">com.google.android.exoplayer2</a></div>
<h2 title="Class DefaultLivePlaybackSpeedControl" class="title">Class DefaultLivePlaybackSpeedControl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">DefaultLivePlaybackSpeedControl</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></pre>
<div class="block">A <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2"><code>LivePlaybackSpeedControl</code></a> that adjusts the playback speed using a proportional
controller.
<p>The control mechanism calculates the adjusted speed as <code>1.0 + proportionalControlFactor
x (currentLiveOffsetSec - targetLiveOffsetSec)</code>. Unit speed (1.0f) is used, if the <code>
currentLiveOffsetSec</code> is closer to <code>targetLiveOffsetSec</code> than the value set with <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setMaxLiveOffsetErrorMsForUnitSpeed-long-"><code>DefaultLivePlaybackSpeedControl.Builder.setMaxLiveOffsetErrorMsForUnitSpeed(long)</code></a>.
<p>The resulting speed is clamped to a minimum and maximum speed defined by the media, the
fallback values set with <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setFallbackMinPlaybackSpeed-float-"><code>DefaultLivePlaybackSpeedControl.Builder.setFallbackMinPlaybackSpeed(float)</code></a> and <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setFallbackMaxPlaybackSpeed-float-"><code>DefaultLivePlaybackSpeedControl.Builder.setFallbackMaxPlaybackSpeed(float)</code></a> or the <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED"><code>minimum</code></a> and <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED"><code>maximum</code></a> fallback default values.
<p>When the player rebuffers, the target live offset <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setTargetLiveOffsetIncrementOnRebufferMs-long-"><code>is increased</code></a> to adjust to the reduced
network capabilities. The live playback speed control also <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setMinPossibleLiveOffsetSmoothingFactor-float-"><code>keeps track</code></a> of the minimum possible live
offset to decrease the target live offset again if conditions improve. The minimum possible live
offset is derived from the current offset and the duration of buffered media.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a></span></code></th>
<td class="colLast">
<div class="block">Builder for a <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLivePlaybackSpeedControl</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED">DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED</a></span></code></th>
<td class="colLast">
<div class="block">The default maximum factor by which playback can be sped up that should be used if no maximum
playback speed is defined by the media.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED">DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED</a></span></code></th>
<td class="colLast">
<div class="block">The default minimum factor by which playback can be sped up that should be used if no minimum
playback speed is defined by the media.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED">DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED</a></span></code></th>
<td class="colLast">
<div class="block">The default maximum difference between the current live offset and the target live offset, in
milliseconds, for which unit speed (1.0f) is used.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR">DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR</a></span></code></th>
<td class="colLast">
<div class="block">The default smoothing factor when smoothing the minimum possible live offset that can be
achieved during playback.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_MIN_UPDATE_INTERVAL_MS">DEFAULT_MIN_UPDATE_INTERVAL_MS</a></span></code></th>
<td class="colLast">
<div class="block">The default <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setMinUpdateIntervalMs-long-"><code>minimum interval</code></a> between playback
speed changes, in milliseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_PROPORTIONAL_CONTROL_FACTOR">DEFAULT_PROPORTIONAL_CONTROL_FACTOR</a></span></code></th>
<td class="colLast">
<div class="block">The default <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setProportionalControlFactor-float-"><code>proportional control factor</code></a>
used to adjust the playback speed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS">DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS</a></span></code></th>
<td class="colLast">
<div class="block">The default increment applied to the target live offset each time the player is rebuffering, in
milliseconds</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#getAdjustedPlaybackSpeed-long-long-">getAdjustedPlaybackSpeed</a></span>&#8203;(long&nbsp;liveOffsetUs,
long&nbsp;bufferedDurationUs)</code></th>
<td class="colLast">
<div class="block">Returns the adjusted playback speed in order get closer towards the <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getTargetLiveOffsetUs--"><code>target live offset</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#getTargetLiveOffsetUs--">getTargetLiveOffsetUs</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current target live offset, in microseconds, or <a href="../../../../com/google/android/exoplayer2/C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if no target
live offset is defined for the current media.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#notifyRebuffer--">notifyRebuffer</a></span>()</code></th>
<td class="colLast">
<div class="block">Notifies the live playback speed control that a rebuffer occurred.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-">setLiveConfiguration</a></span>&#8203;(<a href="../../../../com/google/android/exoplayer2/MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration</a>&nbsp;liveConfiguration)</code></th>
<td class="colLast">
<div class="block">Sets the live configuration defined by the media.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html#setTargetLiveOffsetOverrideUs-long-">setTargetLiveOffsetOverrideUs</a></span>&#8203;(long&nbsp;liveOffsetUs)</code></th>
<td class="colLast">
<div class="block">Sets the target live offset in microseconds that overrides the live offset <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-"><code>configured</code></a> by the media.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone--" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED</h4>
<pre>public static final&nbsp;float DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED</pre>
<div class="block">The default minimum factor by which playback can be sped up that should be used if no minimum
playback speed is defined by the media.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_FALLBACK_MIN_PLAYBACK_SPEED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED</h4>
<pre>public static final&nbsp;float DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED</pre>
<div class="block">The default maximum factor by which playback can be sped up that should be used if no maximum
playback speed is defined by the media.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_FALLBACK_MAX_PLAYBACK_SPEED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MIN_UPDATE_INTERVAL_MS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MIN_UPDATE_INTERVAL_MS</h4>
<pre>public static final&nbsp;long DEFAULT_MIN_UPDATE_INTERVAL_MS</pre>
<div class="block">The default <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setMinUpdateIntervalMs-long-"><code>minimum interval</code></a> between playback
speed changes, in milliseconds.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_MIN_UPDATE_INTERVAL_MS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_PROPORTIONAL_CONTROL_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_PROPORTIONAL_CONTROL_FACTOR</h4>
<pre>public static final&nbsp;float DEFAULT_PROPORTIONAL_CONTROL_FACTOR</pre>
<div class="block">The default <a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html#setProportionalControlFactor-float-"><code>proportional control factor</code></a>
used to adjust the playback speed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_PROPORTIONAL_CONTROL_FACTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS</h4>
<pre>public static final&nbsp;long DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS</pre>
<div class="block">The default increment applied to the target live offset each time the player is rebuffering, in
milliseconds</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_TARGET_LIVE_OFFSET_INCREMENT_ON_REBUFFER_MS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR</h4>
<pre>public static final&nbsp;float DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR</pre>
<div class="block">The default smoothing factor when smoothing the minimum possible live offset that can be
achieved during playback.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_MIN_POSSIBLE_LIVE_OFFSET_SMOOTHING_FACTOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED</h4>
<pre>public static final&nbsp;long DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED</pre>
<div class="block">The default maximum difference between the current live offset and the target live offset, in
milliseconds, for which unit speed (1.0f) is used.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.DefaultLivePlaybackSpeedControl.DEFAULT_MAX_LIVE_OFFSET_ERROR_MS_FOR_UNIT_SPEED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLiveConfiguration</h4>
<pre>public&nbsp;void&nbsp;setLiveConfiguration&#8203;(<a href="../../../../com/google/android/exoplayer2/MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration</a>&nbsp;liveConfiguration)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-">LivePlaybackSpeedControl</a></code></span></div>
<div class="block">Sets the live configuration defined by the media.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-">setLiveConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>liveConfiguration</code> - The <a href="../../../../com/google/android/exoplayer2/MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.LiveConfiguration</code></a> as defined by the media.</dd>
</dl>
</li>
</ul>
<a name="setTargetLiveOffsetOverrideUs-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTargetLiveOffsetOverrideUs</h4>
<pre>public&nbsp;void&nbsp;setTargetLiveOffsetOverrideUs&#8203;(long&nbsp;liveOffsetUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setTargetLiveOffsetOverrideUs-long-">LivePlaybackSpeedControl</a></code></span></div>
<div class="block">Sets the target live offset in microseconds that overrides the live offset <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-"><code>configured</code></a> by the media. Passing <code>C.TIME_UNSET</code> deletes a previous
override.
<p>If no target live offset is configured by <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setLiveConfiguration-com.google.android.exoplayer2.MediaItem.LiveConfiguration-"><code>LivePlaybackSpeedControl.setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)</code></a>, this override has
no effect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#setTargetLiveOffsetOverrideUs-long-">setTargetLiveOffsetOverrideUs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
</dl>
</li>
</ul>
<a name="notifyRebuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyRebuffer</h4>
<pre>public&nbsp;void&nbsp;notifyRebuffer()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#notifyRebuffer--">LivePlaybackSpeedControl</a></code></span></div>
<div class="block">Notifies the live playback speed control that a rebuffer occurred.
<p>A rebuffer is defined to be caused by buffer depletion rather than a user action. Hence this
method is not called during initial buffering or when buffering as a result of a seek
operation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#notifyRebuffer--">notifyRebuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
</dl>
</li>
</ul>
<a name="getAdjustedPlaybackSpeed-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAdjustedPlaybackSpeed</h4>
<pre>public&nbsp;float&nbsp;getAdjustedPlaybackSpeed&#8203;(long&nbsp;liveOffsetUs,
long&nbsp;bufferedDurationUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getAdjustedPlaybackSpeed-long-long-">LivePlaybackSpeedControl</a></code></span></div>
<div class="block">Returns the adjusted playback speed in order get closer towards the <a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getTargetLiveOffsetUs--"><code>target live offset</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getAdjustedPlaybackSpeed-long-long-">getAdjustedPlaybackSpeed</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>liveOffsetUs</code> - The current live offset, in microseconds.</dd>
<dd><code>bufferedDurationUs</code> - The duration of media that's currently buffered, in microseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The adjusted factor by which playback should be sped up.</dd>
</dl>
</li>
</ul>
<a name="getTargetLiveOffsetUs--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getTargetLiveOffsetUs</h4>
<pre>public&nbsp;long&nbsp;getTargetLiveOffsetUs()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getTargetLiveOffsetUs--">LivePlaybackSpeedControl</a></code></span></div>
<div class="block">Returns the current target live offset, in microseconds, or <a href="../../../../com/google/android/exoplayer2/C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if no target
live offset is defined for the current media.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html#getTargetLiveOffsetUs--">getTargetLiveOffsetUs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/android/exoplayer2/DefaultControlDispatcher.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html" target="_top">Frames</a></li>
<li><a href="DefaultLivePlaybackSpeedControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>