Update javadoc for ExoPlayer 2.18.3

#minor-release

PiperOrigin-RevId: 509789955
(cherry picked from commit 4759e0075c4a4ac2fe8892147fed1ac341b48c0d)
This commit is contained in:
christosts 2023-02-15 12:03:58 +00:00
parent 7dbc2d4bec
commit f5d442fddb
91 changed files with 8919 additions and 2978 deletions

File diff suppressed because one or more lines are too long

View File

@ -256,6 +256,8 @@
<li><a href="com/google/android/exoplayer2/source/CompositeSequenceableLoader.html" title="class in com.google.android.exoplayer2.source">CompositeSequenceableLoader</a></li>
<li><a href="com/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">CompositeSequenceableLoaderFactory</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2</a></li>
<li><a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource2.Builder.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2.Builder</a></li>
<li><a href="com/google/android/exoplayer2/util/ConditionVariable.html" title="class in com.google.android.exoplayer2.util">ConditionVariable</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ConstantBitrateSeekMap.html" title="class in com.google.android.exoplayer2.extractor">ConstantBitrateSeekMap</a></li>
<li><a href="com/google/android/exoplayer2/util/Consumer.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">Consumer</span></a></li>
@ -796,6 +798,7 @@
<li><a href="com/google/android/exoplayer2/MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.FolderType</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.MediaType</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></li>
<li><a href="com/google/android/exoplayer2/analytics/MediaMetricsListener.html" title="class in com.google.android.exoplayer2.analytics">MediaMetricsListener</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html" title="class in com.google.android.exoplayer2.source.chunk">MediaParserChunkExtractor</a></li>
@ -1058,6 +1061,11 @@
<li><a href="com/google/android/exoplayer2/source/SilenceMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">SilenceSkippingAudioProcessor</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.MediaItemData.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData.Builder</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.PeriodData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.PeriodData</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.PeriodData.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.PeriodData.Builder</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">SimpleBasePlayer.PositionSupplier</span></a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></li>
<li><a href="com/google/android/exoplayer2/upstream/cache/SimpleCache.html" title="class in com.google.android.exoplayer2.upstream.cache">SimpleCache</a></li>

View File

@ -380,7 +380,7 @@ extends <a href="Timeline.html" title="class in com.google.android.exoplayer2">T
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="Timeline.html#equals(java.lang.Object)">equals</a>, <a href="Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="Timeline.html#getPeriodCount()">getPeriodCount</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="Timeline.html#getWindowCount()">getWindowCount</a>, <a href="Timeline.html#hashCode()">hashCode</a>, <a href="Timeline.html#isEmpty()">isEmpty</a>, <a href="Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="Timeline.html#toBundle()">toBundle</a>, <a href="Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="Timeline.html#equals(java.lang.Object)">equals</a>, <a href="Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="Timeline.html#getPeriodCount()">getPeriodCount</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="Timeline.html#getWindowCount()">getWindowCount</a>, <a href="Timeline.html#hashCode()">hashCode</a>, <a href="Timeline.html#isEmpty()">isEmpty</a>, <a href="Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="Timeline.html#toBundle()">toBundle</a>, <a href="Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

File diff suppressed because one or more lines are too long

View File

@ -120,7 +120,7 @@ public static @interface <span class="memberNameLabel">C.Encoding</span></pre>
<div class="block">Represents an audio encoding, or an invalid or unset value. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>,
<a href="C.html#ENCODING_INVALID"><code>C.ENCODING_INVALID</code></a>, <a href="C.html#ENCODING_PCM_8BIT"><code>C.ENCODING_PCM_8BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT"><code>C.ENCODING_PCM_16BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT_BIG_ENDIAN"><code>C.ENCODING_PCM_16BIT_BIG_ENDIAN</code></a>, <a href="C.html#ENCODING_PCM_24BIT"><code>C.ENCODING_PCM_24BIT</code></a>, <a href="C.html#ENCODING_PCM_32BIT"><code>C.ENCODING_PCM_32BIT</code></a>,
<a href="C.html#ENCODING_PCM_FLOAT"><code>C.ENCODING_PCM_FLOAT</code></a>, <a href="C.html#ENCODING_MP3"><code>C.ENCODING_MP3</code></a>, <a href="C.html#ENCODING_AC3"><code>C.ENCODING_AC3</code></a>, <a href="C.html#ENCODING_E_AC3"><code>C.ENCODING_E_AC3</code></a>, <a href="C.html#ENCODING_E_AC3_JOC"><code>C.ENCODING_E_AC3_JOC</code></a>, <a href="C.html#ENCODING_AC4"><code>C.ENCODING_AC4</code></a>, <a href="C.html#ENCODING_DTS"><code>C.ENCODING_DTS</code></a>,
<a href="C.html#ENCODING_DTS_HD"><code>C.ENCODING_DTS_HD</code></a> or <a href="C.html#ENCODING_DOLBY_TRUEHD"><code>C.ENCODING_DOLBY_TRUEHD</code></a>.</div>
<a href="C.html#ENCODING_DTS_HD"><code>C.ENCODING_DTS_HD</code></a>, <a href="C.html#ENCODING_DOLBY_TRUEHD"><code>C.ENCODING_DOLBY_TRUEHD</code></a> or <a href="C.html#ENCODING_OPUS"><code>C.ENCODING_OPUS</code></a>.</div>
</li>
</ul>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -405,7 +405,7 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a></h3>
<code><a href="PlaybackException.html#getErrorCodeName()">getErrorCodeName</a>, <a href="PlaybackException.html#getErrorCodeName(@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">getErrorCodeName</a>, <a href="PlaybackException.html#keyForField(int)">keyForField</a></code></li>
<code><a href="PlaybackException.html#getErrorCodeName()">getErrorCodeName</a>, <a href="PlaybackException.html#getErrorCodeName(@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">getErrorCodeName</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -313,75 +313,82 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackLooper(android.os.Looper)">setPlaybackLooper</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;playbackLooper)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> that will be used for playback.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPriorityTaskManager(com.google.android.exoplayer2.util.PriorityTaskManager)">setPriorityTaskManager</a></span>&#8203;(<a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a>&nbsp;priorityTaskManager)</code></th>
<td class="colLast">
<div class="block">Sets an <a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a> that will be used by the player.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReleaseTimeoutMs(long)">setReleaseTimeoutMs</a></span>&#8203;(long&nbsp;releaseTimeoutMs)</code></th>
<td class="colLast">
<div class="block">Sets a timeout for calls to <a href="Player.html#release()"><code>Player.release()</code></a> and <a href="ExoPlayer.html#setForegroundMode(boolean)"><code>ExoPlayer.setForegroundMode(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRenderersFactory(com.google.android.exoplayer2.RenderersFactory)">setRenderersFactory</a></span>&#8203;(<a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> that will be used by the player.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekBackIncrementMs(long)">setSeekBackIncrementMs</a></span>&#8203;(long&nbsp;seekBackIncrementMs)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekForwardIncrementMs(long)">setSeekForwardIncrementMs</a></span>&#8203;(long&nbsp;seekForwardIncrementMs)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekParameters(com.google.android.exoplayer2.SeekParameters)">setSeekParameters</a></span>&#8203;(<a href="SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</code></th>
<td class="colLast">
<div class="block">Sets the parameters that control how seek operations are performed.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether silences silences in the audio stream is enabled.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackSelector(com.google.android.exoplayer2.trackselection.TrackSelector)">setTrackSelector</a></span>&#8203;(<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a> that will be used by the player.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUseLazyPreparation(boolean)">setUseLazyPreparation</a></span>&#8203;(boolean&nbsp;useLazyPreparation)</code></th>
<td class="colLast">
<div class="block">Sets whether media sources should be initialized lazily.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUsePlatformDiagnostics(boolean)">setUsePlatformDiagnostics</a></span>&#8203;(boolean&nbsp;usePlatformDiagnostics)</code></th>
<td class="colLast">
<div class="block">Sets whether the player reports diagnostics data to the Android platform.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">setVideoChangeFrameRateStrategy</a></span>&#8203;(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</code></th>
<td class="colLast">
@ -389,14 +396,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
with a video output <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">setVideoScalingMode</a></span>&#8203;(@com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a> that will be used by the player.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWakeMode(@com.google.android.exoplayer2.C.WakeModeint)">setWakeMode</a></span>&#8203;(@com.google.android.exoplayer2.C.WakeMode int&nbsp;wakeMode)</code></th>
<td class="colLast">
@ -469,6 +476,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<li><code>pauseAtEndOfMediaItems</code>: <code>false</code>
<li><code>usePlatformDiagnostics</code>: <code>true</code>
<li><a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a>: <a href="util/Clock.html#DEFAULT"><code>Clock.DEFAULT</code></a>
<li><code>playbackLooper</code>: <code>null</code> (create new thread)
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -1112,6 +1120,28 @@ public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.
</dl>
</li>
</ul>
<a id="setPlaybackLooper(android.os.Looper)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaybackLooper</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setPlaybackLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;playbackLooper)</pre>
<div class="block">Sets the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> that will be used for playback.
<p>The backing thread should run with priority <a href="https://developer.android.com/reference/android/os/Process.html#THREAD_PRIORITY_AUDIO" title="class or interface in android.os" class="externalLink" target="_top"><code>Process.THREAD_PRIORITY_AUDIO</code></a> and
should handle messages within 10ms.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackLooper</code> - A <a href="#looper"><code>looper</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - If <a href="#build()" target="_top"><code>build()</code></a> has already been called.</dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>

View File

@ -181,15 +181,15 @@ extends <a href="Player.html" title="interface in com.google.android.exoplayer2"
threading model">
<ul>
<li>ExoPlayer instances must be accessed from a single application thread. For the vast
majority of cases this should be the application's main thread. Using the application's
main thread is also a requirement when using ExoPlayer's UI components or the IMA
extension. The thread on which an ExoPlayer instance must be accessed can be explicitly
specified by passing a `Looper` when creating the player. If no `Looper` is specified, then
the `Looper` of the thread that the player is created on is used, or if that thread does
not have a `Looper`, the `Looper` of the application's main thread is used. In all cases
the `Looper` of the thread from which the player must be accessed can be queried using
<a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<li>ExoPlayer instances must be accessed from a single application thread unless indicated
otherwise. For the vast majority of cases this should be the application's main thread.
Using the application's main thread is also a requirement when using ExoPlayer's UI
components or the IMA extension. The thread on which an ExoPlayer instance must be accessed
can be explicitly specified by passing a `Looper` when creating the player. If no `Looper`
is specified, then the `Looper` of the thread that the player is created on is used, or if
that thread does not have a `Looper`, the `Looper` of the application's main thread is
used. In all cases the `Looper` of the thread from which the player must be accessed can be
queried using <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<li>Registered listeners are called on the thread associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>. Note that this means registered listeners are called on the same
thread which must be used to access the player.
<li>An internal playback thread is responsible for playback. Injected player components such as
@ -990,7 +990,9 @@ extends <a href="Player.html" title="interface in com.google.android.exoplayer2"
<li class="blockList">
<h4>addAudioOffloadListener</h4>
<pre class="methodSignature">void&nbsp;addAudioOffloadListener&#8203;(<a href="ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</pre>
<div class="block">Adds a listener to receive audio offload events.</div>
<div class="block">Adds a listener to receive audio offload events.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
@ -1028,7 +1030,9 @@ extends <a href="Player.html" title="interface in com.google.android.exoplayer2"
<li class="blockList">
<h4>addAnalyticsListener</h4>
<pre class="methodSignature">void&nbsp;addAnalyticsListener&#8203;(<a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</pre>
<div class="block">Adds an <a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> to receive analytics events.</div>
<div class="block">Adds an <a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> to receive analytics events.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to be added.</dd>
@ -1149,7 +1153,9 @@ extends <a href="Player.html" title="interface in com.google.android.exoplayer2"
<li class="blockList">
<h4>getPlaybackLooper</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;getPlaybackLooper()</pre>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the playback thread.</div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the playback thread.
<p>This method may be called from any thread.</div>
</li>
</ul>
<a id="getClock()">
@ -1159,7 +1165,9 @@ extends <a href="Player.html" title="interface in com.google.android.exoplayer2"
<li class="blockList">
<h4>getClock</h4>
<pre class="methodSignature"><a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;getClock()</pre>
<div class="block">Returns the <a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> used for playback.</div>
<div class="block">Returns the <a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> used for playback.
<p>This method can be called from any thread.</div>
</li>
</ul>
<a id="retry()">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -402,6 +402,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTileCountHorizontal(int)">setTileCountHorizontal</a></span>&#8203;(int&nbsp;tileCountHorizontal)</code></th>
<td class="colLast">
<div class="block">Sets <a href="Format.html#tileCountHorizontal"><code>Format.tileCountHorizontal</code></a>.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTileCountVertical(int)">setTileCountVertical</a></span>&#8203;(int&nbsp;tileCountVertical)</code></th>
<td class="colLast">
<div class="block">Sets <a href="Format.html#tileCountVertical"><code>Format.tileCountVertical</code></a>.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWidth(int)">setWidth</a></span>&#8203;(int&nbsp;width)</code></th>
<td class="colLast">
<div class="block">Sets <a href="Format.html#width"><code>Format.width</code></a>.</div>
@ -975,6 +989,40 @@ public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exo
</dl>
</li>
</ul>
<a id="setTileCountHorizontal(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTileCountHorizontal</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setTileCountHorizontal&#8203;(int&nbsp;tileCountHorizontal)</pre>
<div class="block">Sets <a href="Format.html#tileCountHorizontal"><code>Format.tileCountHorizontal</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tileCountHorizontal</code> - The <a href="Format.html#accessibilityChannel"><code>Format.accessibilityChannel</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The builder.</dd>
</dl>
</li>
</ul>
<a id="setTileCountVertical(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTileCountVertical</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setTileCountVertical&#8203;(int&nbsp;tileCountVertical)</pre>
<div class="block">Sets <a href="Format.html#tileCountVertical"><code>Format.tileCountVertical</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tileCountVertical</code> - The <a href="Format.html#accessibilityChannel"><code>Format.accessibilityChannel</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The builder.</dd>
</dl>
</li>
</ul>
<a id="setCryptoType(@com.google.android.exoplayer2.C.CryptoTypeint)">
<!-- -->
</a>

View File

@ -206,6 +206,13 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<ul>
<li><a href="#accessibilityChannel"><code>accessibilityChannel</code></a>
</ul>
<h2 id="image-formats">Fields relevant to image formats</h2>
<ul>
<li><a href="#tileCountHorizontal"><code>tileCountHorizontal</code></a>
<li><a href="#tileCountVertical"><code>tileCountVertical</code></a>
</ul></div>
</li>
</ul>
@ -497,6 +504,20 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tileCountHorizontal">tileCountHorizontal</a></span></code></th>
<td class="colLast">
<div class="block">The number of horizontal tiles in an image, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not known or applicable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tileCountVertical">tileCountVertical</a></span></code></th>
<td class="colLast">
<div class="block">The number of vertical tiles in an image, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not known or applicable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#width">width</a></span></code></th>
<td class="colLast">
<div class="block">The width of the video in pixels, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if unknown or not applicable.</div>
@ -1193,6 +1214,26 @@ public final&nbsp;<a href="video/ColorInfo.html" title="class in com.google.andr
<div class="block">The Accessibility channel, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not known or applicable.</div>
</li>
</ul>
<a id="tileCountHorizontal">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tileCountHorizontal</h4>
<pre>public final&nbsp;int tileCountHorizontal</pre>
<div class="block">The number of horizontal tiles in an image, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not known or applicable.</div>
</li>
</ul>
<a id="tileCountVertical">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tileCountVertical</h4>
<pre>public final&nbsp;int tileCountVertical</pre>
<div class="block">The number of vertical tiles in an image, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not known or applicable.</div>
</li>
</ul>
<a id="cryptoType">
<!-- -->
</a>

View File

@ -1221,7 +1221,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setMediaItems(java.util.List)">setMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
</dl>
</li>
</ul>
@ -1238,7 +1238,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setMediaItems(java.util.List,boolean)">setMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position in
the first <a href="Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>. If false, playback will start from the position defined
by <a href="Player.html#getCurrentMediaItemIndex()"><code>Player.getCurrentMediaItemIndex()</code></a> and <a href="Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</dd>
@ -1259,7 +1259,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setMediaItems(java.util.List,int,long)">setMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>startIndex</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> index to start playback from. If <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>
is passed, the current position is not reset.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from. If <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> is passed, the default position of the given <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> is used. In
@ -1369,7 +1369,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#addMediaItems(java.util.List)">addMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> to add.</dd>
</dl>
</li>
</ul>
@ -1388,7 +1388,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media items. If the index is larger than the size of
the playlist, the media items are added to the end of the playlist.</dd>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> to add.</dd>
</dl>
</li>
</ul>
@ -1405,7 +1405,8 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#moveMediaItem(int,int)">moveMediaItem</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>currentIndex</code> - The current index of the media item to move.</dd>
<dd><code>currentIndex</code> - The current index of the media item to move. If the index is larger than
the size of the playlist, the request is ignored.</dd>
<dd><code>newIndex</code> - The new index of the media item. If the new index is larger than the size of
the playlist the item is moved to the end of the playlist.</dd>
</dl>
@ -1425,8 +1426,10 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#moveMediaItems(int,int,int)">moveMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The start of the range to move.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive).</dd>
<dd><code>fromIndex</code> - The start of the range to move. If the index is larger than the size of the
playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive). If the index is
larger than the size of the playlist, items up to the end of the playlist are moved.</dd>
<dd><code>newIndex</code> - The new index of the first media item of the range. If the new index is larger
than the size of the remaining playlist after removing the range, the range is moved to the
end of the playlist.</dd>
@ -1445,7 +1448,8 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#removeMediaItem(int)">removeMediaItem</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to remove the media item.</dd>
<dd><code>index</code> - The index at which to remove the media item. If the index is larger than the size
of the playlist, the request is ignored.</dd>
</dl>
</li>
</ul>
@ -1462,9 +1466,10 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#removeMediaItems(int,int)">removeMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The index at which to start removing media items.</dd>
<dd><code>fromIndex</code> - The index at which to start removing media items. If the index is larger than
the size of the playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The index of the first item to be kept (exclusive). If the index is larger than
the size of the playlist, media items to the end of the playlist are removed.</dd>
the size of the playlist, media items up to the end of the playlist are removed.</dd>
</dl>
</li>
</ul>
@ -1561,7 +1566,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getPlaybackState()">getPlaybackState</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a>.</dd>
<dd>The current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a></dd>
</dl>
@ -1579,7 +1584,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getPlaybackSuppressionReason()">getPlaybackSuppressionReason</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>playback suppression reason</code></a>.</dd>
<dd>The current <a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlaybackSuppressionReason</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onPlaybackSuppressionReasonChanged(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)"><code>Player.Listener.onPlaybackSuppressionReasonChanged(int)</code></a></dd>
</dl>
@ -1796,7 +1801,8 @@ public&nbsp;<a href="PlaybackException.html" title="class in com.google.android.
<dd><code><a href="Player.html#seekToDefaultPosition(int)">seekToDefaultPosition</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItemIndex</code> - The index of the <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> whose associated default position
should be seeked to.</dd>
should be seeked to. If the index is larger than the size of the playlist, the request is
ignored.</dd>
</dl>
</li>
</ul>
@ -1830,7 +1836,8 @@ public&nbsp;<a href="PlaybackException.html" title="class in com.google.android.
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#seekTo(int,long)">seekTo</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItemIndex</code> - The index of the <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</dd>
<dd><code>mediaItemIndex</code> - The index of the <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>. If the index is larger than the size
of the playlist, the request is ignored.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a>
to seek to the media item's default position.</dd>
</dl>
@ -2175,7 +2182,7 @@ public&nbsp;void&nbsp;seekToNextWindow()</pre>
<dd><code><a href="Player.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>speed</code> - The linear factor by which playback will be sped up. Must be higher than 0. 1 is
normal speed, 2 is twice as fast, 0.5 is half normal speed...</dd>
normal speed, 2 is twice as fast, 0.5 is half normal speed.</dd>
</dl>
</li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -158,7 +158,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<td class="colLast">
<div class="block">Constructs an instance.</div>
<div class="block">Creates a new instance with default values.</div>
</td>
</tr>
</table>
@ -266,7 +266,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
<div class="block">Constructs an instance.</div>
<div class="block">Creates a new instance with default values.</div>
</li>
</ul>
</li>

View File

@ -158,7 +158,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<td class="colLast">
<div class="block">Constructs an instance.</div>
<div class="block">Creates a new instance with default values.</div>
</td>
</tr>
</table>
@ -252,7 +252,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
<div class="block">Constructs an instance.</div>
<div class="block">Creates a new instance with default values.</div>
</li>
</ul>
</li>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":42};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":42};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -324,117 +324,131 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIsBrowsable(java.lang.Boolean)">setIsBrowsable</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a>&nbsp;isBrowsable)</code></th>
<td class="colLast">
<div class="block">Sets whether the media is a browsable folder.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIsPlayable(java.lang.Boolean)">setIsPlayable</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a>&nbsp;isPlayable)</code></th>
<td class="colLast">
<div class="block">Sets whether the media is playable.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaType(java.lang.Integer)">setMediaType</a></span>&#8203;(<a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">@MediaType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;mediaType)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOverallRating(com.google.android.exoplayer2.Rating)">setOverallRating</a></span>&#8203;(<a href="Rating.html" title="class in com.google.android.exoplayer2">Rating</a>&nbsp;overallRating)</code></th>
<td class="colLast">
<div class="block">Sets the overall <a href="Rating.html" title="class in com.google.android.exoplayer2"><code>Rating</code></a>.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRecordingDay(java.lang.Integer)">setRecordingDay</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingDay)</code></th>
<td class="colLast">
<div class="block">Sets the day of the recording date.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRecordingMonth(java.lang.Integer)">setRecordingMonth</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingMonth)</code></th>
<td class="colLast">
<div class="block">Sets the month of the recording date.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRecordingYear(java.lang.Integer)">setRecordingYear</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingYear)</code></th>
<td class="colLast">
<div class="block">Sets the year of the recording date.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReleaseDay(java.lang.Integer)">setReleaseDay</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseDay)</code></th>
<td class="colLast">
<div class="block">Sets the day of the release date.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReleaseMonth(java.lang.Integer)">setReleaseMonth</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseMonth)</code></th>
<td class="colLast">
<div class="block">Sets the month of the release date.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReleaseYear(java.lang.Integer)">setReleaseYear</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseYear)</code></th>
<td class="colLast">
<div class="block">Sets the year of the release date.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStation(java.lang.CharSequence)">setStation</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;station)</code></th>
<td class="colLast">
<div class="block">Sets the name of the station streaming the media.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSubtitle(java.lang.CharSequence)">setSubtitle</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;subtitle)</code></th>
<td class="colLast">
<div class="block">Sets the subtitle.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTitle(java.lang.CharSequence)">setTitle</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;title)</code></th>
<td class="colLast">
<div class="block">Sets the title.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTotalDiscCount(java.lang.Integer)">setTotalDiscCount</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;totalDiscCount)</code></th>
<td class="colLast">
<div class="block">Sets the total number of discs.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTotalTrackCount(java.lang.Integer)">setTotalTrackCount</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;totalTrackCount)</code></th>
<td class="colLast">
<div class="block">Sets the total number of tracks.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackNumber(java.lang.Integer)">setTrackNumber</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;trackNumber)</code></th>
<td class="colLast">
<div class="block">Sets the track number.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUserRating(com.google.android.exoplayer2.Rating)">setUserRating</a></span>&#8203;(<a href="Rating.html" title="class in com.google.android.exoplayer2">Rating</a>&nbsp;userRating)</code></th>
<td class="colLast">
<div class="block">Sets the user <a href="Rating.html" title="class in com.google.android.exoplayer2"><code>Rating</code></a>.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWriter(java.lang.CharSequence)">setWriter</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;writer)</code></th>
<td class="colLast">
<div class="block">Sets the writer.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setYear(java.lang.Integer)">setYear</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;year)</code></th>
<td class="colLast">
@ -687,7 +701,22 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setFolderType&#8203;(@Nullable <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a>
<a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;folderType)</pre>
<div class="block">Sets the <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.FolderType</code></a>.</div>
<div class="block">Sets the <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.FolderType</code></a>.
<p>This method will be deprecated. Use <a href="#setIsBrowsable(java.lang.Boolean)"><code>setIsBrowsable(java.lang.Boolean)</code></a> to indicate if an item is a
browsable folder and use <a href="#setMediaType(java.lang.Integer)"><code>setMediaType(java.lang.Integer)</code></a> to indicate the type of the folder.</div>
</li>
</ul>
<a id="setIsBrowsable(java.lang.Boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIsBrowsable</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setIsBrowsable&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a>&nbsp;isBrowsable)</pre>
<div class="block">Sets whether the media is a browsable folder.</div>
</li>
</ul>
<a id="setIsPlayable(java.lang.Boolean)">
@ -893,6 +922,18 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<div class="block">Sets the name of the station streaming the media.</div>
</li>
</ul>
<a id="setMediaType(java.lang.Integer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaType</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setMediaType&#8203;(@Nullable
<a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">@MediaType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;mediaType)</pre>
<div class="block">Sets the <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a>.</div>
</li>
</ul>
<a id="setExtras(android.os.Bundle)">
<!-- -->
</a>

View File

@ -120,7 +120,10 @@ public static @interface <span class="memberNameLabel">MediaMetadata.FolderType<
<div class="block">The folder type of the media item.
<p>This can be used as the type of a browsable bluetooth folder (see section 6.10.2.2 of the <a href="https://www.bluetooth.com/specifications/specs/a-v-remote-control-profile-1-6-2/">Bluetooth
AVRCP 1.6.2</a>).</div>
AVRCP 1.6.2</a>).
<p>One of <a href="MediaMetadata.html#FOLDER_TYPE_NONE"><code>MediaMetadata.FOLDER_TYPE_NONE</code></a>, <a href="MediaMetadata.html#FOLDER_TYPE_MIXED"><code>MediaMetadata.FOLDER_TYPE_MIXED</code></a>, <a href="MediaMetadata.html#FOLDER_TYPE_TITLES"><code>MediaMetadata.FOLDER_TYPE_TITLES</code></a>,
<a href="MediaMetadata.html#FOLDER_TYPE_ALBUMS"><code>MediaMetadata.FOLDER_TYPE_ALBUMS</code></a>, <a href="MediaMetadata.html#FOLDER_TYPE_ARTISTS"><code>MediaMetadata.FOLDER_TYPE_ARTISTS</code></a>, <a href="MediaMetadata.html#FOLDER_TYPE_GENRES"><code>MediaMetadata.FOLDER_TYPE_GENRES</code></a>, <a href="MediaMetadata.html#FOLDER_TYPE_PLAYLISTS"><code>MediaMetadata.FOLDER_TYPE_PLAYLISTS</code></a> or <a href="MediaMetadata.html#FOLDER_TYPE_YEARS"><code>MediaMetadata.FOLDER_TYPE_YEARS</code></a>.</div>
</li>
</ul>
</div>

View File

@ -120,7 +120,11 @@ public static @interface <span class="memberNameLabel">MediaMetadata.PictureType
<div class="block">The picture type of the artwork.
<p>Values sourced from the ID3 v2.4 specification (See section 4.14 of
https://id3.org/id3v2.4.0-frames).</div>
https://id3.org/id3v2.4.0-frames).
<p>One of <a href="MediaMetadata.html#PICTURE_TYPE_OTHER"><code>MediaMetadata.PICTURE_TYPE_OTHER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_FILE_ICON"><code>MediaMetadata.PICTURE_TYPE_FILE_ICON</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_FILE_ICON_OTHER"><code>MediaMetadata.PICTURE_TYPE_FILE_ICON_OTHER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_FRONT_COVER"><code>MediaMetadata.PICTURE_TYPE_FRONT_COVER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_BACK_COVER"><code>MediaMetadata.PICTURE_TYPE_BACK_COVER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_LEAFLET_PAGE"><code>MediaMetadata.PICTURE_TYPE_LEAFLET_PAGE</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_MEDIA"><code>MediaMetadata.PICTURE_TYPE_MEDIA</code></a>,
<a href="MediaMetadata.html#PICTURE_TYPE_LEAD_ARTIST_PERFORMER"><code>MediaMetadata.PICTURE_TYPE_LEAD_ARTIST_PERFORMER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_ARTIST_PERFORMER"><code>MediaMetadata.PICTURE_TYPE_ARTIST_PERFORMER</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_CONDUCTOR"><code>MediaMetadata.PICTURE_TYPE_CONDUCTOR</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_BAND_ORCHESTRA"><code>MediaMetadata.PICTURE_TYPE_BAND_ORCHESTRA</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_COMPOSER"><code>MediaMetadata.PICTURE_TYPE_COMPOSER</code></a>,
<a href="MediaMetadata.html#PICTURE_TYPE_LYRICIST"><code>MediaMetadata.PICTURE_TYPE_LYRICIST</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_RECORDING_LOCATION"><code>MediaMetadata.PICTURE_TYPE_RECORDING_LOCATION</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_DURING_RECORDING"><code>MediaMetadata.PICTURE_TYPE_DURING_RECORDING</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_DURING_PERFORMANCE"><code>MediaMetadata.PICTURE_TYPE_DURING_PERFORMANCE</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE"><code>MediaMetadata.PICTURE_TYPE_MOVIE_VIDEO_SCREEN_CAPTURE</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_A_BRIGHT_COLORED_FISH"><code>MediaMetadata.PICTURE_TYPE_A_BRIGHT_COLORED_FISH</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_ILLUSTRATION"><code>MediaMetadata.PICTURE_TYPE_ILLUSTRATION</code></a>, <a href="MediaMetadata.html#PICTURE_TYPE_BAND_ARTIST_LOGO"><code>MediaMetadata.PICTURE_TYPE_BAND_ARTIST_LOGO</code></a> or <a href="MediaMetadata.html#PICTURE_TYPE_PUBLISHER_STUDIO_LOGO"><code>MediaMetadata.PICTURE_TYPE_PUBLISHER_STUDIO_LOGO</code></a>.</div>
</li>
</ul>
</div>

View File

@ -173,6 +173,13 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.MediaType</a></span></code></th>
<td class="colLast">
<div class="block">The type of content described by the media item.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></span></code></th>
<td class="colLast">
<div class="block">The picture type of the artwork.</div>
@ -380,9 +387,281 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBrowsable">isBrowsable</a></span></code></th>
<td class="colLast">
<div class="block">Optional boolean to indicate that the media is a browsable folder.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlayable">isPlayable</a></span></code></th>
<td class="colLast">
<div class="block">Optional boolean for media playability.</div>
<div class="block">Optional boolean to indicate that the media is playable.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_ALBUM">MEDIA_TYPE_ALBUM</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) belonging to an
album.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_ARTIST">MEDIA_TYPE_ARTIST</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) from the same
artist.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_AUDIO_BOOK">MEDIA_TYPE_AUDIO_BOOK</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items forming an audio book.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_AUDIO_BOOK_CHAPTER">MEDIA_TYPE_AUDIO_BOOK_CHAPTER</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for an audio book chapter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_ALBUMS">MEDIA_TYPE_FOLDER_ALBUMS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_ALBUM">albums</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_ARTISTS">MEDIA_TYPE_FOLDER_ARTISTS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#FIELD_ARTIST">artists</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_AUDIO_BOOKS">MEDIA_TYPE_FOLDER_AUDIO_BOOKS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_AUDIO_BOOK">audio books</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_GENRES">MEDIA_TYPE_FOLDER_GENRES</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_GENRE">genres</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_MIXED">MEDIA_TYPE_FOLDER_MIXED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder with mixed or undetermined content.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_MOVIES">MEDIA_TYPE_FOLDER_MOVIES</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_MOVIE">movies</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_NEWS">MEDIA_TYPE_FOLDER_NEWS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_NEWS">news</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_PLAYLISTS">MEDIA_TYPE_FOLDER_PLAYLISTS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_PLAYLIST">playlists</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_PODCASTS">MEDIA_TYPE_FOLDER_PODCASTS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_PODCAST">podcasts</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_RADIO_STATIONS">MEDIA_TYPE_FOLDER_RADIO_STATIONS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_RADIO_STATION">radio
stations</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_TRAILERS">MEDIA_TYPE_FOLDER_TRAILERS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TRAILER">movie trailers</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_TV_CHANNELS">MEDIA_TYPE_FOLDER_TV_CHANNELS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_CHANNEL">TV channels</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_TV_SERIES">MEDIA_TYPE_FOLDER_TV_SERIES</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_SERIES">TV series</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_TV_SHOWS">MEDIA_TYPE_FOLDER_TV_SHOWS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_SHOW">TV shows</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_VIDEOS">MEDIA_TYPE_FOLDER_VIDEOS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_VIDEO">videos</a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_FOLDER_YEARS">MEDIA_TYPE_FOLDER_YEARS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_YEAR">years</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_GENRE">MEDIA_TYPE_GENRE</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) of the same
genre.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_MIXED">MEDIA_TYPE_MIXED</a></span></code></th>
<td class="colLast">
<div class="block">Media of undetermined type or a mix of multiple <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">media types</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_MOVIE">MEDIA_TYPE_MOVIE</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a movie.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_MUSIC">MEDIA_TYPE_MUSIC</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for music.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_NEWS">MEDIA_TYPE_NEWS</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for news.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_PLAYLIST">MEDIA_TYPE_PLAYLIST</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) forming a
playlist.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_PODCAST">MEDIA_TYPE_PODCAST</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items belonging to a podcast.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_PODCAST_EPISODE">MEDIA_TYPE_PODCAST_EPISODE</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a podcast episode.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_RADIO_STATION">MEDIA_TYPE_RADIO_STATION</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a radio station.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_TRAILER">MEDIA_TYPE_TRAILER</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a movie trailer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_TV_CHANNEL">MEDIA_TYPE_TV_CHANNEL</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV channel.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_TV_SEASON">MEDIA_TYPE_TV_SEASON</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV series.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_TV_SERIES">MEDIA_TYPE_TV_SERIES</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV series.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_TV_SHOW">MEDIA_TYPE_TV_SHOW</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a TV show.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_VIDEO">MEDIA_TYPE_VIDEO</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a video.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_YEAR">MEDIA_TYPE_YEAR</a></span></code></th>
<td class="colLast">
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) from the same
year.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">@MediaType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaType">mediaType</a></span></code></th>
<td class="colLast">
<div class="block">Optional <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a>.</div>
</td>
</tr>
<tr class="altColor">
@ -670,6 +949,521 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="MEDIA_TYPE_MIXED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_MIXED</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_MIXED</pre>
<div class="block">Media of undetermined type or a mix of multiple <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">media types</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_MIXED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_MUSIC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_MUSIC</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_MUSIC</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for music.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_MUSIC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_AUDIO_BOOK_CHAPTER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_AUDIO_BOOK_CHAPTER</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_AUDIO_BOOK_CHAPTER</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for an audio book chapter.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK_CHAPTER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_PODCAST_EPISODE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_PODCAST_EPISODE</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_PODCAST_EPISODE</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a podcast episode.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_PODCAST_EPISODE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_RADIO_STATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_RADIO_STATION</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_RADIO_STATION</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a radio station.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_RADIO_STATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_NEWS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_NEWS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_NEWS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for news.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_NEWS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_VIDEO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_VIDEO</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_VIDEO</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a video.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_VIDEO">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_TRAILER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_TRAILER</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_TRAILER</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a movie trailer.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_TRAILER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_MOVIE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_MOVIE</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_MOVIE</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a movie.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_MOVIE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_TV_SHOW">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_TV_SHOW</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_TV_SHOW</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a TV show.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_TV_SHOW">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_ALBUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_ALBUM</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_ALBUM</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) belonging to an
album.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_ALBUM">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_ARTIST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_ARTIST</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_ARTIST</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) from the same
artist.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_ARTIST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_GENRE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_GENRE</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_GENRE</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) of the same
genre.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_GENRE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_PLAYLIST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_PLAYLIST</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_PLAYLIST</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) forming a
playlist.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_PLAYLIST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_YEAR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_YEAR</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_YEAR</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items (e.g., <a href="#MEDIA_TYPE_MUSIC"><code>music</code></a>) from the same
year.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_YEAR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_AUDIO_BOOK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_AUDIO_BOOK</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_AUDIO_BOOK</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items forming an audio book. Items in this group are typically
of type <a href="#MEDIA_TYPE_AUDIO_BOOK_CHAPTER"><code>MEDIA_TYPE_AUDIO_BOOK_CHAPTER</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_AUDIO_BOOK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_PODCAST">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_PODCAST</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_PODCAST</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items belonging to a podcast. Items in this group are
typically of type <a href="#MEDIA_TYPE_PODCAST_EPISODE"><code>MEDIA_TYPE_PODCAST_EPISODE</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_PODCAST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_TV_CHANNEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_TV_CHANNEL</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_TV_CHANNEL</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV channel. Items in this group are
typically of type <a href="#MEDIA_TYPE_TV_SHOW"><code>MEDIA_TYPE_TV_SHOW</code></a>, <a href="#MEDIA_TYPE_TV_SERIES"><code>MEDIA_TYPE_TV_SERIES</code></a> or <a href="#MEDIA_TYPE_MOVIE"><code>MEDIA_TYPE_MOVIE</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_TV_CHANNEL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_TV_SERIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_TV_SERIES</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_TV_SERIES</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV series. Items in this group are
typically of type <a href="#MEDIA_TYPE_TV_SHOW"><code>MEDIA_TYPE_TV_SHOW</code></a> or <a href="#MEDIA_TYPE_TV_SEASON"><code>MEDIA_TYPE_TV_SEASON</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_TV_SERIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_TV_SEASON">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_TV_SEASON</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_TV_SEASON</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a group of items that are part of a TV series. Items in this group are
typically of type <a href="#MEDIA_TYPE_TV_SHOW"><code>MEDIA_TYPE_TV_SHOW</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_TV_SEASON">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_MIXED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_MIXED</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_MIXED</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder with mixed or undetermined content.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_MIXED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_ALBUMS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_ALBUMS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_ALBUMS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_ALBUM">albums</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_ALBUMS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_ARTISTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_ARTISTS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_ARTISTS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#FIELD_ARTIST">artists</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_ARTISTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_GENRES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_GENRES</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_GENRES</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_GENRE">genres</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_GENRES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_PLAYLISTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_PLAYLISTS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_PLAYLISTS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_PLAYLIST">playlists</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_PLAYLISTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_YEARS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_YEARS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_YEARS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_YEAR">years</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_YEARS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_AUDIO_BOOKS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_AUDIO_BOOKS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_AUDIO_BOOKS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_AUDIO_BOOK">audio books</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_AUDIO_BOOKS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_PODCASTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_PODCASTS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_PODCASTS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_PODCAST">podcasts</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_PODCASTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_TV_CHANNELS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_TV_CHANNELS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_TV_CHANNELS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_CHANNEL">TV channels</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_TV_CHANNELS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_TV_SERIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_TV_SERIES</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_TV_SERIES</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_SERIES">TV series</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SERIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_TV_SHOWS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_TV_SHOWS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_TV_SHOWS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TV_SHOW">TV shows</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_TV_SHOWS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_RADIO_STATIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_RADIO_STATIONS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_RADIO_STATIONS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_RADIO_STATION">radio
stations</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_RADIO_STATIONS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_NEWS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_NEWS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_NEWS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_NEWS">news</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_NEWS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_VIDEOS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_VIDEOS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_VIDEOS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_VIDEO">videos</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_VIDEOS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_TRAILERS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_TRAILERS</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_TRAILERS</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_TRAILER">movie trailers</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_TRAILERS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MEDIA_TYPE_FOLDER_MOVIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEDIA_TYPE_FOLDER_MOVIES</h4>
<pre>public static final&nbsp;int MEDIA_TYPE_FOLDER_MOVIES</pre>
<div class="block"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a> for a folder containing <a href="#MEDIA_TYPE_MOVIE">movies</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.MediaMetadata.MEDIA_TYPE_FOLDER_MOVIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FOLDER_TYPE_NONE">
<!-- -->
</a>
@ -1231,7 +2025,21 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Int
<pre>@Nullable
<a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a>
public final&nbsp;<a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a> folderType</pre>
<div class="block">Optional <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.FolderType</code></a>.</div>
<div class="block">Optional <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.FolderType</code></a>.
<p>This field will be deprecated. Use <a href="#isBrowsable"><code>isBrowsable</code></a> to indicate if an item is a
browsable folder and use <a href="#mediaType"><code>mediaType</code></a> to indicate the type of the folder.</div>
</li>
</ul>
<a id="isBrowsable">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBrowsable</h4>
<pre>@Nullable
public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a> isBrowsable</pre>
<div class="block">Optional boolean to indicate that the media is a browsable folder.</div>
</li>
</ul>
<a id="isPlayable">
@ -1242,7 +2050,7 @@ public final&nbsp;<a href="MediaMetadata.FolderType.html" title="annotation in c
<h4>isPlayable</h4>
<pre>@Nullable
public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a> isPlayable</pre>
<div class="block">Optional boolean for media playability.</div>
<div class="block">Optional boolean to indicate that the media is playable.</div>
</li>
</ul>
<a id="year">
@ -1421,6 +2229,17 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Cha
<div class="block">Optional name of the station streaming the media.</div>
</li>
</ul>
<a id="mediaType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mediaType</h4>
<pre>@Nullable
public final&nbsp;<a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">@MediaType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a> mediaType</pre>
<div class="block">Optional <a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.MediaType</code></a>.</div>
</li>
</ul>
<a id="extras">
<!-- -->
</a>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10};
var data = {"i0":10,"i1":10,"i2":9,"i3":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -570,14 +570,6 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyForField(int)">keyForField</a></span>&#8203;(int&nbsp;field)</code></th>
<td class="colLast">
<div class="block">Converts the given field number to a string which can be used as a field key when implementing
<a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle()">toBundle</a></span>()</code></th>
<td class="colLast">
@ -1166,7 +1158,7 @@ public final&nbsp;@com.google.android.exoplayer2.PlaybackException.ErrorCode int
and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.
<p>Subclasses should obtain their <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle's</code></a> field keys by applying a non-negative
offset on this constant and passing the result to <a href="#keyForField(int)"><code>keyForField(int)</code></a>.</div>
offset on this constant and passing the result to <a href="util/Util.html#intToStringMaxRadix(int)"><code>Util.intToStringMaxRadix(int)</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.PlaybackException.FIELD_CUSTOM_ID_BASE">Constant Field Values</a></dd>
@ -1289,7 +1281,7 @@ public&nbsp;boolean&nbsp;errorInfoEquals&#8203;(@Nullable
<a id="toBundle()">
<!-- -->
</a>
<ul class="blockList">
<ul class="blockListLast">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">@CallSuper
@ -1302,19 +1294,6 @@ public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.h
</dl>
</li>
</ul>
<a id="keyForField(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>keyForField</h4>
<pre class="methodSignature">protected static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;keyForField&#8203;(int&nbsp;field)</pre>
<div class="block">Converts the given field number to a string which can be used as a field key when implementing
<a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.
<p>Subclasses should use <code>field</code> values greater than or equal to <a href="#FIELD_CUSTOM_ID_BASE"><code>FIELD_CUSTOM_ID_BASE</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -117,7 +117,50 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<a href="https://developer.android.com/reference/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">Player.Command</span></pre>
<div class="block">Commands that can be executed on a <code>Player</code>. One of <a href="Player.html#COMMAND_PLAY_PAUSE"><code>Player.COMMAND_PLAY_PAUSE</code></a>, <a href="Player.html#COMMAND_PREPARE"><code>Player.COMMAND_PREPARE</code></a>, <a href="Player.html#COMMAND_STOP"><code>Player.COMMAND_STOP</code></a>, <a href="Player.html#COMMAND_SEEK_TO_DEFAULT_POSITION"><code>Player.COMMAND_SEEK_TO_DEFAULT_POSITION</code></a>, <a href="Player.html#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM</code></a>, <a href="Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a>, <a href="Player.html#COMMAND_SEEK_TO_PREVIOUS"><code>Player.COMMAND_SEEK_TO_PREVIOUS</code></a>, <a href="Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a>, <a href="Player.html#COMMAND_SEEK_TO_NEXT"><code>Player.COMMAND_SEEK_TO_NEXT</code></a>, <a href="Player.html#COMMAND_SEEK_TO_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_MEDIA_ITEM</code></a>, <a href="Player.html#COMMAND_SEEK_BACK"><code>Player.COMMAND_SEEK_BACK</code></a>, <a href="Player.html#COMMAND_SEEK_FORWARD"><code>Player.COMMAND_SEEK_FORWARD</code></a>, <a href="Player.html#COMMAND_SET_SPEED_AND_PITCH"><code>Player.COMMAND_SET_SPEED_AND_PITCH</code></a>, <a href="Player.html#COMMAND_SET_SHUFFLE_MODE"><code>Player.COMMAND_SET_SHUFFLE_MODE</code></a>, <a href="Player.html#COMMAND_SET_REPEAT_MODE"><code>Player.COMMAND_SET_REPEAT_MODE</code></a>, <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a>, <a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a>, <a href="Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a>, <a href="Player.html#COMMAND_SET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_SET_MEDIA_ITEMS_METADATA</code></a>, <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a>, <a href="Player.html#COMMAND_GET_AUDIO_ATTRIBUTES"><code>Player.COMMAND_GET_AUDIO_ATTRIBUTES</code></a>, <a href="Player.html#COMMAND_GET_VOLUME"><code>Player.COMMAND_GET_VOLUME</code></a>, <a href="Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a>, <a href="Player.html#COMMAND_SET_VOLUME"><code>Player.COMMAND_SET_VOLUME</code></a>, <a href="Player.html#COMMAND_SET_DEVICE_VOLUME"><code>Player.COMMAND_SET_DEVICE_VOLUME</code></a>, <a href="Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a>, <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a>, <a href="Player.html#COMMAND_GET_TEXT"><code>Player.COMMAND_GET_TEXT</code></a>, <a href="Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS"><code>Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS</code></a>, <a href="Player.html#COMMAND_GET_TRACKS"><code>Player.COMMAND_GET_TRACKS</code></a> or <a href="Player.html#COMMAND_SET_MEDIA_ITEM"><code>Player.COMMAND_SET_MEDIA_ITEM</code></a>.</div>
<div class="block">Commands that indicate which method calls are currently permitted on a particular <code>
Player</code> instance.
<p>The currently available commands can be inspected with <a href="Player.html#getAvailableCommands()"><code>Player.getAvailableCommands()</code></a> and
<a href="Player.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)"><code>Player.isCommandAvailable(int)</code></a>.
<p>See the documentation of each command constant for the details of which methods it permits
calling.
<p>One of the following values:
<ul>
<li><a href="Player.html#COMMAND_PLAY_PAUSE"><code>Player.COMMAND_PLAY_PAUSE</code></a>
<li><a href="Player.html#COMMAND_PREPARE"><code>Player.COMMAND_PREPARE</code></a>
<li><a href="Player.html#COMMAND_STOP"><code>Player.COMMAND_STOP</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_DEFAULT_POSITION"><code>Player.COMMAND_SEEK_TO_DEFAULT_POSITION</code></a>
<li><a href="Player.html#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_PREVIOUS"><code>Player.COMMAND_SEEK_TO_PREVIOUS</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_NEXT"><code>Player.COMMAND_SEEK_TO_NEXT</code></a>
<li><a href="Player.html#COMMAND_SEEK_TO_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_SEEK_BACK"><code>Player.COMMAND_SEEK_BACK</code></a>
<li><a href="Player.html#COMMAND_SEEK_FORWARD"><code>Player.COMMAND_SEEK_FORWARD</code></a>
<li><a href="Player.html#COMMAND_SET_SPEED_AND_PITCH"><code>Player.COMMAND_SET_SPEED_AND_PITCH</code></a>
<li><a href="Player.html#COMMAND_SET_SHUFFLE_MODE"><code>Player.COMMAND_SET_SHUFFLE_MODE</code></a>
<li><a href="Player.html#COMMAND_SET_REPEAT_MODE"><code>Player.COMMAND_SET_REPEAT_MODE</code></a>
<li><a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a>
<li><a href="Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a>
<li><a href="Player.html#COMMAND_SET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_SET_MEDIA_ITEMS_METADATA</code></a>
<li><a href="Player.html#COMMAND_SET_MEDIA_ITEM"><code>Player.COMMAND_SET_MEDIA_ITEM</code></a>
<li><a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a>
<li><a href="Player.html#COMMAND_GET_AUDIO_ATTRIBUTES"><code>Player.COMMAND_GET_AUDIO_ATTRIBUTES</code></a>
<li><a href="Player.html#COMMAND_GET_VOLUME"><code>Player.COMMAND_GET_VOLUME</code></a>
<li><a href="Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a>
<li><a href="Player.html#COMMAND_SET_VOLUME"><code>Player.COMMAND_SET_VOLUME</code></a>
<li><a href="Player.html#COMMAND_SET_DEVICE_VOLUME"><code>Player.COMMAND_SET_DEVICE_VOLUME</code></a>
<li><a href="Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a>
<li><a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a>
<li><a href="Player.html#COMMAND_GET_TEXT"><code>Player.COMMAND_GET_TEXT</code></a>
<li><a href="Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS"><code>Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS</code></a>
<li><a href="Player.html#COMMAND_GET_TRACKS"><code>Player.COMMAND_GET_TRACKS</code></a>
</ul></div>
</li>
</ul>
</div>

View File

@ -190,7 +190,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(@com.google.android.exoplayer2.Player.Commandint...)">addAll</a></span>&#8203;(@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</code></th>
<td class="colLast">
<div class="block">Adds <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Adds <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
@ -204,7 +204,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAllCommands()">addAllCommands</a></span>()</code></th>
<td class="colLast">
<div class="block">Adds all existing <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Adds all existing <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
@ -233,7 +233,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAll(@com.google.android.exoplayer2.Player.Commandint...)">removeAll</a></span>&#8203;(@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</code></th>
<td class="colLast">
<div class="block">Removes <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Removes <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
@ -339,10 +339,10 @@ public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.an
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</pre>
<div class="block">Adds <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Adds <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commands</code> - The <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a> to add.</dd>
<dd><code>commands</code> - The <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a> to add.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
@ -361,7 +361,7 @@ public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.an
<div class="block">Adds <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commands</code> - The set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a> to add.</dd>
<dd><code>commands</code> - The set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a> to add.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
@ -377,7 +377,7 @@ public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.an
<h4>addAllCommands</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAllCommands()</pre>
<div class="block">Adds all existing <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Adds all existing <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
@ -437,10 +437,10 @@ public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.an
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;removeAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</pre>
<div class="block">Removes <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">Removes <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commands</code> - The <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a> to remove.</dd>
<dd><code>commands</code> - The <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a> to remove.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>

View File

@ -140,7 +140,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<pre>public static final class <span class="typeNameLabel">Player.Commands</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="Bundleable.html" title="interface in com.google.android.exoplayer2">Bundleable</a></pre>
<div class="block">A set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.
<div class="block">A set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.
<p>Instances are immutable.</div>
</li>

View File

@ -135,7 +135,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr>
<pre>public static final class <span class="typeNameLabel">Player.Events</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></pre>
<div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</div>
<div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a>.</div>
</li>
</ul>
</div>
@ -190,7 +190,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsAny(@com.google.android.exoplayer2.Player.Eventint...)">containsAny</a></span>&#8203;(@com.google.android.exoplayer2.Player.Event int...&nbsp;events)</code></th>
<td class="colLast">
<div class="block">Returns whether any of the given <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a> occurred.</div>
<div class="block">Returns whether any of the given <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a> occurred.</div>
</td>
</tr>
<tr id="i2" class="altColor">
@ -251,7 +251,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Creates an instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>flags</code> - The <a href="util/FlagSet.html" title="class in com.google.android.exoplayer2.util"><code>FlagSet</code></a> containing the <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</dd>
<dd><code>flags</code> - The <a href="util/FlagSet.html" title="class in com.google.android.exoplayer2.util"><code>FlagSet</code></a> containing the <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a>.</dd>
</dl>
</li>
</ul>
@ -290,12 +290,12 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h4>containsAny</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;containsAny&#8203;(<a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">@Event</a>
@com.google.android.exoplayer2.Player.Event int...&nbsp;events)</pre>
<div class="block">Returns whether any of the given <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a> occurred.</div>
<div class="block">Returns whether any of the given <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a> occurred.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>events</code> - The <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</dd>
<dd><code>events</code> - The <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether any of the <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a> occurred.</dd>
<dd>Whether any of the <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a> occurred.</dd>
</dl>
</li>
</ul>

View File

@ -134,9 +134,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">Player.Listener</span></pre>
<div class="block">Listener of all changes in the Player.
<div class="block">Listener for changes in a <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.
<p>All methods have no-op default implementations to allow selective overrides.</div>
<p>All methods have no-op default implementations to allow selective overrides.
<p>If the return value of a <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> getter changes due to a change in <a href="#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)">command availability</a>, the corresponding listener
method(s) will be invoked. If the return value of a <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> getter does not change
because the corresponding command is <a href="#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)">not
available</a>, the corresponding listener method will not be invoked.</div>
</li>
</ul>
</div>
@ -161,7 +166,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onAudioAttributesChanged(com.google.android.exoplayer2.audio.AudioAttributes)">onAudioAttributesChanged</a></span>&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</code></th>
<td class="colLast">
<div class="block">Called when the audio attributes change.</div>
<div class="block">Called when the value of <a href="Player.html#getAudioAttributes()"><code>Player.getAudioAttributes()</code></a> changes.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
@ -183,7 +188,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onCues(com.google.android.exoplayer2.text.CueGroup)">onCues</a></span>&#8203;(<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;cueGroup)</code></th>
<td class="colLast">
<div class="block">Called when there is a change in the <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.</div>
<div class="block">Called when the value of <a href="Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.</div>
</td>
</tr>
<tr id="i4" class="altColor">
@ -207,7 +212,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDeviceVolumeChanged(int,boolean)">onDeviceVolumeChanged</a></span>&#8203;(int&nbsp;volume,
boolean&nbsp;muted)</code></th>
<td class="colLast">
<div class="block">Called when the device volume or mute state changes.</div>
<div class="block">Called when the value of <a href="Player.html#getDeviceVolume()"><code>Player.getDeviceVolume()</code></a> or <a href="Player.html#isDeviceMuted()"><code>Player.isDeviceMuted()</code></a> changes.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
@ -261,7 +266,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMediaMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">onMediaMetadataChanged</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
<div class="block">Called when the combined <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.</div>
<div class="block">Called when the value of <a href="Player.html#getMediaMetadata()"><code>Player.getMediaMetadata()</code></a> changes.</div>
</td>
</tr>
<tr id="i14" class="altColor">
@ -275,7 +280,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)">onPlaybackParametersChanged</a></span>&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Called when the current playback parameters change.</div>
<div class="block">Called when the value of <a href="Player.html#getPlaybackParameters()"><code>Player.getPlaybackParameters()</code></a> changes.</div>
</td>
</tr>
<tr id="i16" class="altColor">
@ -320,7 +325,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPlaylistMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">onPlaylistMetadataChanged</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
<div class="block">Called when the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.</div>
<div class="block">Called when the value of <a href="Player.html#getPlaylistMetadata()"><code>Player.getPlaylistMetadata()</code></a> changes.</div>
</td>
</tr>
<tr id="i22" class="altColor">
@ -415,14 +420,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)">onTimelineChanged</a></span>&#8203;(<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;timeline,
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</code></th>
<td class="colLast">
<div class="block">Called when the timeline has been refreshed.</div>
<div class="block">Called when the value of <a href="Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTracksChanged(com.google.android.exoplayer2.Tracks)">onTracksChanged</a></span>&#8203;(<a href="Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;tracks)</code></th>
<td class="colLast">
<div class="block">Called when the tracks change.</div>
<div class="block">Called when the value of <a href="Player.html#getCurrentTracks()"><code>Player.getCurrentTracks()</code></a> changes.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
@ -443,7 +448,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onVolumeChanged(float)">onVolumeChanged</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Called when the volume changes.</div>
<div class="block">Called when the value of <a href="Player.html#getVolume()"><code>Player.getVolume()</code></a> changes.</div>
</td>
</tr>
</table>
@ -476,8 +481,6 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<p>State changes and events that happen within one <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration are
reported together and only after all individual callbacks were triggered.
<p>Only state changes represented by <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a> are reported through this method.
<p>Listeners should prefer this method over individual callbacks in the following cases:
<ul>
@ -510,7 +513,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<pre class="methodSignature">default&nbsp;void&nbsp;onTimelineChanged&#8203;(<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;timeline,
<a href="Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">@TimelineChangeReason</a>
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</pre>
<div class="block">Called when the timeline has been refreshed.
<div class="block">Called when the value of <a href="Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.
<p>Note that the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> or playback position may change as a result of a
timeline change. If playback can't continue smoothly because of this timeline change, a
@ -539,8 +542,8 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Called when playback transitions to a media item or starts repeating a media item according
to the current <a href="Player.html#getRepeatMode()"><code>repeat mode</code></a>.
<p>Note that this callback is also called when the playlist becomes non-empty or empty as a
consequence of a playlist change.
<p>Note that this callback is also called when the value of <a href="Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a>
becomes non-empty or empty.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -558,7 +561,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<h4>onTracksChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onTracksChanged&#8203;(<a href="Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;tracks)</pre>
<div class="block">Called when the tracks change.
<div class="block">Called when the value of <a href="Player.html#getCurrentTracks()"><code>Player.getCurrentTracks()</code></a> changes.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -575,11 +578,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<h4>onMediaMetadataChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onMediaMetadataChanged&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block">Called when the combined <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.
<p>The provided <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="MediaItem.html#mediaMetadata"><code>MediaItem metadata</code></a>, the static metadata in the media's <a href="Format.html#metadata"><code>Format</code></a>, and
any timed metadata that has been parsed from the media and output via <a href="#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>onMetadata(Metadata)</code></a>. If a field is populated in the <a href="MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a>, it will be prioritised above the same field coming from static or
timed metadata.
<div class="block">Called when the value of <a href="Player.html#getMediaMetadata()"><code>Player.getMediaMetadata()</code></a> changes.
<p>This method may be called multiple times in quick succession.
@ -598,7 +597,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<h4>onPlaylistMetadataChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onPlaylistMetadataChanged&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block">Called when the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.
<div class="block">Called when the value of <a href="Player.html#getPlaylistMetadata()"><code>Player.getPlaylistMetadata()</code></a> changes.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -698,7 +697,7 @@ default&nbsp;void&nbsp;onPlayerStateChanged&#8203;(boolean&nbsp;playWhenReady,
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackState</code> - The new playback <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>state</code></a>.</dd>
<dd><code>playbackState</code> - The new playback <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>Player.State</code></a>.</dd>
</dl>
</li>
</ul>
@ -718,7 +717,7 @@ default&nbsp;void&nbsp;onPlayerStateChanged&#8203;(boolean&nbsp;playWhenReady,
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback will proceed when ready.</dd>
<dd><code>reason</code> - The <a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2"><code>reason</code></a> for the change.</dd>
<dd><code>reason</code> - The <a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlayWhenReadyChangeReason</code></a> for the change.</dd>
</dl>
</li>
</ul>
@ -788,7 +787,7 @@ default&nbsp;void&nbsp;onPlayerStateChanged&#8203;(boolean&nbsp;playWhenReady,
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling of <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>media items</code></a> is enabled.</dd>
<dd><code>shuffleModeEnabled</code> - Whether shuffling of <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> is enabled.</dd>
</dl>
</li>
</ul>
@ -881,10 +880,10 @@ default&nbsp;void&nbsp;onPositionDiscontinuity&#8203;(<a href="Player.Discontinu
<li class="blockList">
<h4>onPlaybackParametersChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onPlaybackParametersChanged&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block">Called when the current playback parameters change. The playback parameters may change due to
a call to <a href="Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a>, or the player itself may change
them (for example, if audio playback switches to passthrough or offload mode, where speed
adjustment is no longer possible).
<div class="block">Called when the value of <a href="Player.html#getPlaybackParameters()"><code>Player.getPlaybackParameters()</code></a> changes. The playback parameters
may change due to a call to <a href="Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a>, or the player
itself may change them (for example, if audio playback switches to passthrough or offload
mode, where speed adjustment is no longer possible).
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -983,7 +982,7 @@ default&nbsp;void&nbsp;onSeekProcessed()</pre>
<li class="blockList">
<h4>onAudioAttributesChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onAudioAttributesChanged&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</pre>
<div class="block">Called when the audio attributes change.
<div class="block">Called when the value of <a href="Player.html#getAudioAttributes()"><code>Player.getAudioAttributes()</code></a> changes.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1000,7 +999,7 @@ default&nbsp;void&nbsp;onSeekProcessed()</pre>
<li class="blockList">
<h4>onVolumeChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onVolumeChanged&#8203;(float&nbsp;volume)</pre>
<div class="block">Called when the volume changes.
<div class="block">Called when the value of <a href="Player.html#getVolume()"><code>Player.getVolume()</code></a> changes.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1052,7 +1051,7 @@ default&nbsp;void&nbsp;onSeekProcessed()</pre>
<h4>onDeviceVolumeChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onDeviceVolumeChanged&#8203;(int&nbsp;volume,
boolean&nbsp;muted)</pre>
<div class="block">Called when the device volume or mute state changes.
<div class="block">Called when the value of <a href="Player.html#getDeviceVolume()"><code>Player.getDeviceVolume()</code></a> or <a href="Player.html#isDeviceMuted()"><code>Player.isDeviceMuted()</code></a> changes.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1127,10 +1126,10 @@ default&nbsp;void&nbsp;onCues&#8203;(<a href="https://developer.android.com/refe
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>onCues(CueGroup)</code></a> instead.</div>
</div>
<div class="block">Called when there is a change in the <a href="text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cues</code></a>.
<div class="block">Called when the value of <a href="Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.
<p>Both <a href="#onCues(java.util.List)"><code>onCues(List)</code></a> and <a href="#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>onCues(CueGroup)</code></a> are called when there is a change
in the cues. You should only implement one or the other.
<p>Both this method and <a href="#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>onCues(CueGroup)</code></a> are called when there is a change in the
cues. You should only implement one or the other.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1143,10 +1142,10 @@ default&nbsp;void&nbsp;onCues&#8203;(<a href="https://developer.android.com/refe
<li class="blockList">
<h4>onCues</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onCues&#8203;(<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;cueGroup)</pre>
<div class="block">Called when there is a change in the <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.
<div class="block">Called when the value of <a href="Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.
<p>Both <a href="#onCues(java.util.List)"><code>onCues(List)</code></a> and <a href="#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>onCues(CueGroup)</code></a> are called when there is a change
in the cues. You should only implement one or the other.
<p>Both this method and <a href="#onCues(java.util.List)"><code>onCues(List)</code></a> are called when there is a change in the cues.
You should only implement one or the other.
<p><a href="#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -339,6 +339,15 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representing the information stored in this object.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle(boolean,boolean)">toBundle</a></span>&#8203;(boolean&nbsp;canAccessCurrentMediaItem,
boolean&nbsp;canAccessTimeline)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representing the information stored in this object, filtered by
available commands.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -575,7 +584,7 @@ public&nbsp;PositionInfo&#8203;(@Nullable
<a id="toBundle()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle()</pre>
@ -589,6 +598,25 @@ public&nbsp;PositionInfo&#8203;(@Nullable
</dl>
</li>
</ul>
<a id="toBundle(boolean,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle&#8203;(boolean&nbsp;canAccessCurrentMediaItem,
boolean&nbsp;canAccessTimeline)</pre>
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representing the information stored in this object, filtered by
available commands.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>canAccessCurrentMediaItem</code> - Whether the <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> should contain information
accessbile with <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a>.</dd>
<dd><code>canAccessTimeline</code> - Whether the <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> should contain information accessbile
with <a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

File diff suppressed because it is too large Load Diff

View File

@ -242,15 +242,15 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a></span></code></th>
<td class="colLast">
<div class="block">The renderer will use a fallback decoder.</div>
<div class="block">The format exceeds the primary decoder's capabilities but is supported by fallback decoder</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a></span></code></th>
<td class="colLast">
<div class="block">The renderer will use a decoder for fallback mimetype if possible as format's MIME type is
unsupported</div>
<div class="block">The format's MIME type is unsupported and the renderer may use a decoder for a fallback MIME
type.</div>
</td>
</tr>
<tr class="altColor">
@ -748,8 +748,8 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
<li class="blockList">
<h4>DECODER_SUPPORT_FALLBACK_MIMETYPE</h4>
<pre>static final&nbsp;int DECODER_SUPPORT_FALLBACK_MIMETYPE</pre>
<div class="block">The renderer will use a decoder for fallback mimetype if possible as format's MIME type is
unsupported</div>
<div class="block">The format's MIME type is unsupported and the renderer may use a decoder for a fallback MIME
type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.DECODER_SUPPORT_FALLBACK_MIMETYPE">Constant Field Values</a></dd>
@ -777,7 +777,7 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
<li class="blockList">
<h4>DECODER_SUPPORT_FALLBACK</h4>
<pre>static final&nbsp;int DECODER_SUPPORT_FALLBACK</pre>
<div class="block">The renderer will use a fallback decoder.</div>
<div class="block">The format exceeds the primary decoder's capabilities but is supported by fallback decoder</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.DECODER_SUPPORT_FALLBACK">Constant Field Values</a></dd>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -188,12 +188,179 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearPositionDiscontinuity()">clearPositionDiscontinuity</a></span>()</code></th>
<td class="colLast">
<div class="block">Clears a previously set position discontinuity signal.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAdBufferedPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">setAdBufferedPositionMs</a></span>&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;adBufferedPositionMsSupplier)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently
playing ad is buffered, in milliseconds.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAdPositionMs(long)">setAdPositionMs</a></span>&#8203;(long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block">Sets the current ad playback position in milliseconds.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAdPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">setAdPositionMs</a></span>&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;adPositionMsSupplier)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current ad playback position in milliseconds.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes)">setAudioAttributes</a></span>&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</code></th>
<td class="colLast">
<div class="block">Sets the current <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAvailableCommands(com.google.android.exoplayer2.Player.Commands)">setAvailableCommands</a></span>&#8203;(<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;availableCommands)</code></th>
<td class="colLast">
<div class="block">Sets the available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setContentBufferedPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">setContentBufferedPositionMs</a></span>&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;contentBufferedPositionMsSupplier)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently
playing content is buffered, in milliseconds.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setContentPositionMs(long)">setContentPositionMs</a></span>&#8203;(long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block">Sets the current content playback position in milliseconds.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setContentPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">setContentPositionMs</a></span>&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;contentPositionMsSupplier)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current content playback position in
milliseconds.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentAd(int,int)">setCurrentAd</a></span>&#8203;(int&nbsp;adGroupIndex,
int&nbsp;adIndexInAdGroup)</code></th>
<td class="colLast">
<div class="block">Sets the current ad indices, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentCues(com.google.android.exoplayer2.text.CueGroup)">setCurrentCues</a></span>&#8203;(<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;currentCues)</code></th>
<td class="colLast">
<div class="block">Sets the current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">cues</a>.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentMediaItemIndex(int)">setCurrentMediaItemIndex</a></span>&#8203;(int&nbsp;currentMediaItemIndex)</code></th>
<td class="colLast">
<div class="block">Sets the current media item index.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceInfo(com.google.android.exoplayer2.DeviceInfo)">setDeviceInfo</a></span>&#8203;(<a href="DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a>&nbsp;deviceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="DeviceInfo.html" title="class in com.google.android.exoplayer2"><code>DeviceInfo</code></a>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceVolume(int)">setDeviceVolume</a></span>&#8203;(int&nbsp;deviceVolume)</code></th>
<td class="colLast">
<div class="block">Sets the current device volume.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIsDeviceMuted(boolean)">setIsDeviceMuted</a></span>&#8203;(boolean&nbsp;isDeviceMuted)</code></th>
<td class="colLast">
<div class="block">Sets whether the device is muted.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIsLoading(boolean)">setIsLoading</a></span>&#8203;(boolean&nbsp;isLoading)</code></th>
<td class="colLast">
<div class="block">Sets whether the player is currently loading its source.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxSeekToPreviousPositionMs(long)">setMaxSeekToPreviousPositionMs</a></span>&#8203;(long&nbsp;maxSeekToPreviousPositionMs)</code></th>
<td class="colLast">
<div class="block">Sets the maximum position for which <a href="BasePlayer.html#seekToPrevious()"><code>BasePlayer.seekToPrevious()</code></a> seeks to the previous item,
in milliseconds.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNewlyRenderedFirstFrame(boolean)">setNewlyRenderedFirstFrame</a></span>&#8203;(boolean&nbsp;newlyRenderedFirstFrame)</code></th>
<td class="colLast">
<div class="block">Sets whether a frame has been rendered for the first time since setting the surface, a
rendering reset, or since the stream being rendered was changed.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Sets the currently active <a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2"><code>PlaybackParameters</code></a>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackState(@com.google.android.exoplayer2.Player.Stateint)">setPlaybackState</a></span>&#8203;(@com.google.android.exoplayer2.Player.State int&nbsp;playbackState)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">state</a> of the player.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackSuppressionReason(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)">setPlaybackSuppressionReason</a></span>&#8203;(@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int&nbsp;playbackSuppressionReason)</code></th>
<td class="colLast">
<div class="block">Sets the reason why playback is suppressed even if <a href="SimpleBasePlayer.html#getPlayWhenReady()"><code>SimpleBasePlayer.getPlayWhenReady()</code></a> is true.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayerError(com.google.android.exoplayer2.PlaybackException)">setPlayerError</a></span>&#8203;(<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a>&nbsp;playerError)</code></th>
<td class="colLast">
<div class="block">Sets last error that caused playback to fail, or null if there was no error.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaylist(java.util.List)">setPlaylist</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2" target="_top">SimpleBasePlayer.MediaItemData</a>&gt;&nbsp;playlist)</code></th>
<td class="colLast">
<div class="block">Sets the list of <a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><code>media items</code></a> in the playlist.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;playlistMetadata)</code></th>
<td class="colLast">
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady,
@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int&nbsp;playWhenReadyChangeReason)</code></th>
@ -201,6 +368,87 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Sets whether playback should proceed when ready and not suppressed.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPositionDiscontinuity(@com.google.android.exoplayer2.Player.DiscontinuityReasonint,long)">setPositionDiscontinuity</a></span>&#8203;(@com.google.android.exoplayer2.Player.DiscontinuityReason int&nbsp;positionDiscontinuityReason,
long&nbsp;discontinuityPositionMs)</code></th>
<td class="colLast">
<div class="block">Signals that a position discontinuity happened since the last player update and sets the
reason for it.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a></span>&#8203;(@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekBackIncrementMs(long)">setSeekBackIncrementMs</a></span>&#8203;(long&nbsp;seekBackIncrementMs)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment in milliseconds.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekForwardIncrementMs(long)">setSeekForwardIncrementMs</a></span>&#8203;(long&nbsp;seekForwardIncrementMs)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment in milliseconds.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></span>&#8203;(boolean&nbsp;shuffleModeEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether shuffling of media items is enabled.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSurfaceSize(com.google.android.exoplayer2.util.Size)">setSurfaceSize</a></span>&#8203;(<a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a>&nbsp;surfaceSize)</code></th>
<td class="colLast">
<div class="block">Sets the size of the surface onto which the video is being rendered.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimedMetadata(com.google.android.exoplayer2.metadata.Metadata)">setTimedMetadata</a></span>&#8203;(<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&nbsp;timedMetadata)</code></th>
<td class="colLast">
<div class="block">Sets the most recent timed <a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTotalBufferedDurationMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">setTotalBufferedDurationMs</a></span>&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;totalBufferedDurationMsSupplier)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated total buffered duration in
milliseconds.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a></span>&#8203;(<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;trackSelectionParameters)</code></th>
<td class="colLast">
<div class="block">Sets the currently active <a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSize(com.google.android.exoplayer2.video.VideoSize)">setVideoSize</a></span>&#8203;(<a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a>&nbsp;videoSize)</code></th>
<td class="colLast">
<div class="block">Sets the current video size.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Sets the current audio volume, with 0 being silence and 1 being unity gain (signal
unchanged).</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -283,6 +531,668 @@ public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.go
</dl>
</li>
</ul>
<a id="setPlaybackState(@com.google.android.exoplayer2.Player.Stateint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaybackState</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlaybackState&#8203;(<a href="Player.State.html" title="annotation in com.google.android.exoplayer2">@State</a>
@com.google.android.exoplayer2.Player.State int&nbsp;playbackState)</pre>
<div class="block">Sets the <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">state</a> of the player.
<p>If the <a href="#setPlaylist(java.util.List)">playlist</a> is empty, the state must be either <a href="Player.html#STATE_IDLE"><code>Player.STATE_IDLE</code></a> or <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackState</code> - The <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">state</a> of the player.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlaybackSuppressionReason(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaybackSuppressionReason</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlaybackSuppressionReason&#8203;(<a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">@PlaybackSuppressionReason</a>
@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int&nbsp;playbackSuppressionReason)</pre>
<div class="block">Sets the reason why playback is suppressed even if <a href="SimpleBasePlayer.html#getPlayWhenReady()"><code>SimpleBasePlayer.getPlayWhenReady()</code></a> is true.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackSuppressionReason</code> - The <a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlaybackSuppressionReason</code></a> why playback
is suppressed even if <a href="SimpleBasePlayer.html#getPlayWhenReady()"><code>SimpleBasePlayer.getPlayWhenReady()</code></a> is true.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlayerError(com.google.android.exoplayer2.PlaybackException)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlayerError</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlayerError&#8203;(@Nullable
<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a>&nbsp;playerError)</pre>
<div class="block">Sets last error that caused playback to fail, or null if there was no error.
<p>The <a href="#setPlaybackState(@com.google.android.exoplayer2.Player.Stateint)">playback state</a> must be set to <a href="Player.html#STATE_IDLE"><code>Player.STATE_IDLE</code></a> while an error is set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playerError</code> - The last error that caused playback to fail, or null if there was no
error.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRepeatMode</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setRepeatMode&#8203;(<a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</pre>
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>repeatMode</code> - The <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setShuffleModeEnabled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setShuffleModeEnabled</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setShuffleModeEnabled&#8203;(boolean&nbsp;shuffleModeEnabled)</pre>
<div class="block">Sets whether shuffling of media items is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling of media items is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setIsLoading(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIsLoading</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setIsLoading&#8203;(boolean&nbsp;isLoading)</pre>
<div class="block">Sets whether the player is currently loading its source.
<p>The player can not be marked as loading if the <a href="#setPlaybackState(@com.google.android.exoplayer2.Player.Stateint)">state</a> is
<a href="Player.html#STATE_IDLE"><code>Player.STATE_IDLE</code></a> or <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>isLoading</code> - Whether the player is currently loading its source.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setSeekBackIncrementMs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSeekBackIncrementMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setSeekBackIncrementMs&#8203;(long&nbsp;seekBackIncrementMs)</pre>
<div class="block">Sets the <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment in milliseconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekBackIncrementMs</code> - The <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setSeekForwardIncrementMs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSeekForwardIncrementMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setSeekForwardIncrementMs&#8203;(long&nbsp;seekForwardIncrementMs)</pre>
<div class="block">Sets the <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment in milliseconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekForwardIncrementMs</code> - The <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setMaxSeekToPreviousPositionMs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxSeekToPreviousPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setMaxSeekToPreviousPositionMs&#8203;(long&nbsp;maxSeekToPreviousPositionMs)</pre>
<div class="block">Sets the maximum position for which <a href="BasePlayer.html#seekToPrevious()"><code>BasePlayer.seekToPrevious()</code></a> seeks to the previous item,
in milliseconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxSeekToPreviousPositionMs</code> - The maximum position for which <a href="BasePlayer.html#seekToPrevious()"><code>BasePlayer.seekToPrevious()</code></a>
seeks to the previous item, in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaybackParameters</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlaybackParameters&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block">Sets the currently active <a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2"><code>PlaybackParameters</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The currently active <a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2"><code>PlaybackParameters</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTrackSelectionParameters</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setTrackSelectionParameters&#8203;(<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;trackSelectionParameters)</pre>
<div class="block">Sets the currently active <a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trackSelectionParameters</code> - The currently active <a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAudioAttributes</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setAudioAttributes&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</pre>
<div class="block">Sets the current <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioAttributes</code> - The current <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setVolume(float)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVolume</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setVolume&#8203;(@FloatRange(from=0.0,to=1.0)
float&nbsp;volume)</pre>
<div class="block">Sets the current audio volume, with 0 being silence and 1 being unity gain (signal
unchanged).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>volume</code> - The current audio volume, with 0 being silence and 1 being unity gain (signal
unchanged).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setVideoSize(com.google.android.exoplayer2.video.VideoSize)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoSize</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setVideoSize&#8203;(<a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a>&nbsp;videoSize)</pre>
<div class="block">Sets the current video size.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>videoSize</code> - The current video size.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setCurrentCues(com.google.android.exoplayer2.text.CueGroup)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurrentCues</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setCurrentCues&#8203;(<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;currentCues)</pre>
<div class="block">Sets the current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">cues</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>currentCues</code> - The current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">cues</a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setDeviceInfo(com.google.android.exoplayer2.DeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeviceInfo</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setDeviceInfo&#8203;(<a href="DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a>&nbsp;deviceInfo)</pre>
<div class="block">Sets the <a href="DeviceInfo.html" title="class in com.google.android.exoplayer2"><code>DeviceInfo</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviceInfo</code> - The <a href="DeviceInfo.html" title="class in com.google.android.exoplayer2"><code>DeviceInfo</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setDeviceVolume(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeviceVolume</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setDeviceVolume&#8203;(@IntRange(from=0L)
int&nbsp;deviceVolume)</pre>
<div class="block">Sets the current device volume.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviceVolume</code> - The current device volume.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setIsDeviceMuted(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIsDeviceMuted</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setIsDeviceMuted&#8203;(boolean&nbsp;isDeviceMuted)</pre>
<div class="block">Sets whether the device is muted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>isDeviceMuted</code> - Whether the device is muted.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setSurfaceSize(com.google.android.exoplayer2.util.Size)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSurfaceSize</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setSurfaceSize&#8203;(<a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a>&nbsp;surfaceSize)</pre>
<div class="block">Sets the size of the surface onto which the video is being rendered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceSize</code> - The surface size. Dimensions may be <a href="C.html#LENGTH_UNSET"><code>C.LENGTH_UNSET</code></a> if unknown,
or 0 if the video is not rendered onto a surface.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setNewlyRenderedFirstFrame(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNewlyRenderedFirstFrame</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setNewlyRenderedFirstFrame&#8203;(boolean&nbsp;newlyRenderedFirstFrame)</pre>
<div class="block">Sets whether a frame has been rendered for the first time since setting the surface, a
rendering reset, or since the stream being rendered was changed.
<p>Note: As this will trigger a <a href="Player.Listener.html#onRenderedFirstFrame()"><code>Player.Listener.onRenderedFirstFrame()</code></a> event, the flag
should only be set for the first <a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State</code></a> update after the first frame was rendered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newlyRenderedFirstFrame</code> - Whether the first frame was newly rendered.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setTimedMetadata(com.google.android.exoplayer2.metadata.Metadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimedMetadata</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setTimedMetadata&#8203;(<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&nbsp;timedMetadata)</pre>
<div class="block">Sets the most recent timed <a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.
<p>Metadata with a <a href="metadata/Metadata.html#presentationTimeUs"><code>Metadata.presentationTimeUs</code></a> of <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> will not be
forwarded to listeners.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timedMetadata</code> - The most recent timed <a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlaylist(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaylist</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlaylist&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2" target="_top">SimpleBasePlayer.MediaItemData</a>&gt;&nbsp;playlist)</pre>
<div class="block">Sets the list of <a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><code>media items</code></a> in the playlist.
<p>All items must have unique <a href="SimpleBasePlayer.MediaItemData.Builder.html#setUid(java.lang.Object)">UIDs</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playlist</code> - The list of <a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><code>media items</code></a> in the playlist.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlaylistMetadata</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlaylistMetadata&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;playlistMetadata)</pre>
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playlistMetadata</code> - The playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setCurrentMediaItemIndex(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurrentMediaItemIndex</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setCurrentMediaItemIndex&#8203;(int&nbsp;currentMediaItemIndex)</pre>
<div class="block">Sets the current media item index.
<p>The media item index must be less than the number of <a href="#setPlaylist(java.util.List)">media
items in the playlist</a>, if set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>currentMediaItemIndex</code> - The current media item index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> to
assume the default first item in the playlist.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setCurrentAd(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurrentAd</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setCurrentAd&#8203;(int&nbsp;adGroupIndex,
int&nbsp;adIndexInAdGroup)</pre>
<div class="block">Sets the current ad indices, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.
<p>Either both indices need to be <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> or both are not <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>.
<p>Ads indices can only be set if there is a corresponding <a href="source/ads/AdPlaybackState.html" title="class in com.google.android.exoplayer2.source.ads"><code>AdPlaybackState</code></a> defined
in the current <a href="SimpleBasePlayer.MediaItemData.Builder.html#setPeriods(java.util.List)">period</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>adGroupIndex</code> - The current ad group index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is
playing.</dd>
<dd><code>adIndexInAdGroup</code> - The current ad index in the ad group, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if
no ad is playing.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setContentPositionMs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setContentPositionMs&#8203;(long&nbsp;positionMs)</pre>
<div class="block">Sets the current content playback position in milliseconds.
<p>This position will be converted to an advancing <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> if the overall
state indicates an advancing playback position.
<p>This method overrides any other <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> set via <a href="#setContentPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)"><code>setContentPositionMs(PositionSupplier)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionMs</code> - The current content playback position in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start position.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setContentPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setContentPositionMs&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;contentPositionMsSupplier)</pre>
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current content playback position in
milliseconds.
<p>The supplier is expected to return the updated position on every call if the playback is
advancing, for example by using <a href="SimpleBasePlayer.PositionSupplier.html#getExtrapolating(long,float)"><code>SimpleBasePlayer.PositionSupplier.getExtrapolating(long, float)</code></a>.
<p>This method overrides any other position set via <a href="#setContentPositionMs(long)"><code>setContentPositionMs(long)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contentPositionMsSupplier</code> - The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current content
playback position in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default
start position.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setAdPositionMs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAdPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setAdPositionMs&#8203;(long&nbsp;positionMs)</pre>
<div class="block">Sets the current ad playback position in milliseconds. The value is unused if no ad is
playing.
<p>This position will be converted to an advancing <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> if the overall
state indicates an advancing ad playback position.
<p>This method overrides any other <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> set via <a href="#setAdPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)"><code>setAdPositionMs(PositionSupplier)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionMs</code> - The current ad playback position in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setAdPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAdPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setAdPositionMs&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;adPositionMsSupplier)</pre>
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current ad playback position in milliseconds. The
value is unused if no ad is playing.
<p>The supplier is expected to return the updated position on every call if the playback is
advancing, for example by using <a href="SimpleBasePlayer.PositionSupplier.html#getExtrapolating(long,float)"><code>SimpleBasePlayer.PositionSupplier.getExtrapolating(long, float)</code></a>.
<p>This method overrides any other position set via <a href="#setAdPositionMs(long)"><code>setAdPositionMs(long)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>adPositionMsSupplier</code> - The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current ad playback
position in milliseconds. The value is unused if no ad is playing.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setContentBufferedPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentBufferedPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setContentBufferedPositionMs&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;contentBufferedPositionMsSupplier)</pre>
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently
playing content is buffered, in milliseconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contentBufferedPositionMsSupplier</code> - The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated
position up to which the currently playing content is buffered, in milliseconds, or
<a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start position.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setAdBufferedPositionMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAdBufferedPositionMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setAdBufferedPositionMs&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;adBufferedPositionMsSupplier)</pre>
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently
playing ad is buffered, in milliseconds. The value is unused if no ad is playing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>adBufferedPositionMsSupplier</code> - The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position
up to which the currently playing ad is buffered, in milliseconds. The value is unused
if no ad is playing.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setTotalBufferedDurationMs(com.google.android.exoplayer2.SimpleBasePlayer.PositionSupplier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTotalBufferedDurationMs</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setTotalBufferedDurationMs&#8203;(<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a>&nbsp;totalBufferedDurationMsSupplier)</pre>
<div class="block">Sets the <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated total buffered duration in
milliseconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>totalBufferedDurationMsSupplier</code> - The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated total
buffered duration in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPositionDiscontinuity(@com.google.android.exoplayer2.Player.DiscontinuityReasonint,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPositionDiscontinuity</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPositionDiscontinuity&#8203;(<a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">@DiscontinuityReason</a>
@com.google.android.exoplayer2.Player.DiscontinuityReason int&nbsp;positionDiscontinuityReason,
long&nbsp;discontinuityPositionMs)</pre>
<div class="block">Signals that a position discontinuity happened since the last player update and sets the
reason for it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionDiscontinuityReason</code> - The <a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">reason</a> for
the discontinuity.</dd>
<dd><code>discontinuityPositionMs</code> - The position, in milliseconds, in the current content or ad
from which playback continues after the discontinuity.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#clearPositionDiscontinuity()"><code>clearPositionDiscontinuity()</code></a></dd>
</dl>
</li>
</ul>
<a id="clearPositionDiscontinuity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearPositionDiscontinuity</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;clearPositionDiscontinuity()</pre>
<div class="block">Clears a previously set position discontinuity signal.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#hasPositionDiscontinuity"><code>hasPositionDiscontinuity</code></a></dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>

View File

@ -182,26 +182,279 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#adBufferedPositionMsSupplier">adBufferedPositionMsSupplier</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently playing ad
is buffered, in milliseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#adPositionMsSupplier">adPositionMsSupplier</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current ad playback position in milliseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#audioAttributes">audioAttributes</a></span></code></th>
<td class="colLast">
<div class="block">The current <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#availableCommands">availableCommands</a></span></code></th>
<td class="colLast">
<div class="block">The available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentBufferedPositionMsSupplier">contentBufferedPositionMsSupplier</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently playing
content is buffered, in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start
position.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentPositionMsSupplier">contentPositionMsSupplier</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current content playback position in milliseconds, or
<a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start position.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentAdGroupIndex">currentAdGroupIndex</a></span></code></th>
<td class="colLast">
<div class="block">The current ad group index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentAdIndexInAdGroup">currentAdIndexInAdGroup</a></span></code></th>
<td class="colLast">
<div class="block">The current ad index in the ad group, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentCues">currentCues</a></span></code></th>
<td class="colLast">
<div class="block">The current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">cues</a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentMediaItemIndex">currentMediaItemIndex</a></span></code></th>
<td class="colLast">
<div class="block">The current media item index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> to assume the default first item of
the playlist is played.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deviceInfo">deviceInfo</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="DeviceInfo.html" title="class in com.google.android.exoplayer2"><code>DeviceInfo</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deviceVolume">deviceVolume</a></span></code></th>
<td class="colLast">
<div class="block">The current device volume.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#discontinuityPositionMs">discontinuityPositionMs</a></span></code></th>
<td class="colLast">
<div class="block">The position, in milliseconds, in the current content or ad from which playback continued
after the discontinuity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPositionDiscontinuity">hasPositionDiscontinuity</a></span></code></th>
<td class="colLast">
<div class="block">Signals that a position discontinuity happened since the last update to the player.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeviceMuted">isDeviceMuted</a></span></code></th>
<td class="colLast">
<div class="block">Whether the device is muted.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLoading">isLoading</a></span></code></th>
<td class="colLast">
<div class="block">Whether the player is currently loading its source.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxSeekToPreviousPositionMs">maxSeekToPreviousPositionMs</a></span></code></th>
<td class="colLast">
<div class="block">The maximum position for which <a href="BasePlayer.html#seekToPrevious()"><code>BasePlayer.seekToPrevious()</code></a> seeks to the previous item, in
milliseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newlyRenderedFirstFrame">newlyRenderedFirstFrame</a></span></code></th>
<td class="colLast">
<div class="block">Whether a frame has been rendered for the first time since setting the surface, a rendering
reset, or since the stream being rendered was changed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playbackParameters">playbackParameters</a></span></code></th>
<td class="colLast">
<div class="block">The currently active <a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2"><code>PlaybackParameters</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.State int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playbackState">playbackState</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">state</a> of the player.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playbackSuppressionReason">playbackSuppressionReason</a></span></code></th>
<td class="colLast">
<div class="block">The reason why playback is suppressed even if <a href="SimpleBasePlayer.html#getPlayWhenReady()"><code>SimpleBasePlayer.getPlayWhenReady()</code></a> is true.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playerError">playerError</a></span></code></th>
<td class="colLast">
<div class="block">The last error that caused playback to fail, or null if there was no error.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playlist">playlist</a></span></code></th>
<td class="colLast">
<div class="block">The media items in the playlist.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playlistMetadata">playlistMetadata</a></span></code></th>
<td class="colLast">
<div class="block">The playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playWhenReady">playWhenReady</a></span></code></th>
<td class="colLast">
<div class="block">Whether playback should proceed when ready and not suppressed.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playWhenReadyChangeReason">playWhenReadyChangeReason</a></span></code></th>
<td class="colLast">
<div class="block">The last reason for changing <a href="#playWhenReady"><code>playWhenReady</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.DiscontinuityReason int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#positionDiscontinuityReason">positionDiscontinuityReason</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">reason</a> for the last position discontinuity.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.RepeatMode int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repeatMode">repeatMode</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekBackIncrementMs">seekBackIncrementMs</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment in milliseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekForwardIncrementMs">seekForwardIncrementMs</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment in milliseconds.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shuffleModeEnabled">shuffleModeEnabled</a></span></code></th>
<td class="colLast">
<div class="block">Whether shuffling of media items is enabled.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#surfaceSize">surfaceSize</a></span></code></th>
<td class="colLast">
<div class="block">The size of the surface onto which the video is being rendered.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#timedMetadata">timedMetadata</a></span></code></th>
<td class="colLast">
<div class="block">The most recent timed metadata.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#timeline">timeline</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> derived from the <a href="#playlist"><code>playlist</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#totalBufferedDurationMsSupplier">totalBufferedDurationMsSupplier</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated total buffered duration in milliseconds.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trackSelectionParameters">trackSelectionParameters</a></span></code></th>
<td class="colLast">
<div class="block">The currently active <a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#videoSize">videoSize</a></span></code></th>
<td class="colLast">
<div class="block">The current video size.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#volume">volume</a></span></code></th>
<td class="colLast">
<div class="block">The current audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
</td>
</tr>
</table>
</li>
</ul>
@ -284,7 +537,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="playWhenReadyChangeReason">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>playWhenReadyChangeReason</h4>
<pre><a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">@PlayWhenReadyChangeReason</a>
@ -292,6 +545,375 @@ public final&nbsp;@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReaso
<div class="block">The last reason for changing <a href="#playWhenReady"><code>playWhenReady</code></a>.</div>
</li>
</ul>
<a id="playbackState">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playbackState</h4>
<pre><a href="Player.State.html" title="annotation in com.google.android.exoplayer2">@State</a>
public final&nbsp;@com.google.android.exoplayer2.Player.State int playbackState</pre>
<div class="block">The <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">state</a> of the player.</div>
</li>
</ul>
<a id="playbackSuppressionReason">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playbackSuppressionReason</h4>
<pre><a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">@PlaybackSuppressionReason</a>
public final&nbsp;@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason</pre>
<div class="block">The reason why playback is suppressed even if <a href="SimpleBasePlayer.html#getPlayWhenReady()"><code>SimpleBasePlayer.getPlayWhenReady()</code></a> is true.</div>
</li>
</ul>
<a id="playerError">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playerError</h4>
<pre>@Nullable
public final&nbsp;<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a> playerError</pre>
<div class="block">The last error that caused playback to fail, or null if there was no error.</div>
</li>
</ul>
<a id="repeatMode">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repeatMode</h4>
<pre><a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
public final&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int repeatMode</pre>
<div class="block">The <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> used for playback.</div>
</li>
</ul>
<a id="shuffleModeEnabled">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shuffleModeEnabled</h4>
<pre>public final&nbsp;boolean shuffleModeEnabled</pre>
<div class="block">Whether shuffling of media items is enabled.</div>
</li>
</ul>
<a id="isLoading">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLoading</h4>
<pre>public final&nbsp;boolean isLoading</pre>
<div class="block">Whether the player is currently loading its source.</div>
</li>
</ul>
<a id="seekBackIncrementMs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekBackIncrementMs</h4>
<pre>public final&nbsp;long seekBackIncrementMs</pre>
<div class="block">The <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment in milliseconds.</div>
</li>
</ul>
<a id="seekForwardIncrementMs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekForwardIncrementMs</h4>
<pre>public final&nbsp;long seekForwardIncrementMs</pre>
<div class="block">The <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment in milliseconds.</div>
</li>
</ul>
<a id="maxSeekToPreviousPositionMs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxSeekToPreviousPositionMs</h4>
<pre>public final&nbsp;long maxSeekToPreviousPositionMs</pre>
<div class="block">The maximum position for which <a href="BasePlayer.html#seekToPrevious()"><code>BasePlayer.seekToPrevious()</code></a> seeks to the previous item, in
milliseconds.</div>
</li>
</ul>
<a id="playbackParameters">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playbackParameters</h4>
<pre>public final&nbsp;<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a> playbackParameters</pre>
<div class="block">The currently active <a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2"><code>PlaybackParameters</code></a>.</div>
</li>
</ul>
<a id="trackSelectionParameters">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trackSelectionParameters</h4>
<pre>public final&nbsp;<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a> trackSelectionParameters</pre>
<div class="block">The currently active <a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</div>
</li>
</ul>
<a id="audioAttributes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>audioAttributes</h4>
<pre>public final&nbsp;<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a> audioAttributes</pre>
<div class="block">The current <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</div>
</li>
</ul>
<a id="volume">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>volume</h4>
<pre>@FloatRange(from=0.0,
to=1.0)
public final&nbsp;float volume</pre>
<div class="block">The current audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
</li>
</ul>
<a id="videoSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>videoSize</h4>
<pre>public final&nbsp;<a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a> videoSize</pre>
<div class="block">The current video size.</div>
</li>
</ul>
<a id="currentCues">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentCues</h4>
<pre>public final&nbsp;<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a> currentCues</pre>
<div class="block">The current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">cues</a>.</div>
</li>
</ul>
<a id="deviceInfo">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deviceInfo</h4>
<pre>public final&nbsp;<a href="DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a> deviceInfo</pre>
<div class="block">The <a href="DeviceInfo.html" title="class in com.google.android.exoplayer2"><code>DeviceInfo</code></a>.</div>
</li>
</ul>
<a id="deviceVolume">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deviceVolume</h4>
<pre>@IntRange(from=0L)
public final&nbsp;int deviceVolume</pre>
<div class="block">The current device volume.</div>
</li>
</ul>
<a id="isDeviceMuted">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDeviceMuted</h4>
<pre>public final&nbsp;boolean isDeviceMuted</pre>
<div class="block">Whether the device is muted.</div>
</li>
</ul>
<a id="surfaceSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>surfaceSize</h4>
<pre>public final&nbsp;<a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a> surfaceSize</pre>
<div class="block">The size of the surface onto which the video is being rendered.</div>
</li>
</ul>
<a id="newlyRenderedFirstFrame">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newlyRenderedFirstFrame</h4>
<pre>public final&nbsp;boolean newlyRenderedFirstFrame</pre>
<div class="block">Whether a frame has been rendered for the first time since setting the surface, a rendering
reset, or since the stream being rendered was changed.</div>
</li>
</ul>
<a id="timedMetadata">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timedMetadata</h4>
<pre>public final&nbsp;<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a> timedMetadata</pre>
<div class="block">The most recent timed metadata.</div>
</li>
</ul>
<a id="playlist">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playlist</h4>
<pre>public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData</a>&gt; playlist</pre>
<div class="block">The media items in the playlist.</div>
</li>
</ul>
<a id="timeline">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timeline</h4>
<pre>public final&nbsp;<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a> timeline</pre>
<div class="block">The <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> derived from the <a href="#playlist"><code>playlist</code></a>.</div>
</li>
</ul>
<a id="playlistMetadata">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playlistMetadata</h4>
<pre>public final&nbsp;<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a> playlistMetadata</pre>
<div class="block">The playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
</li>
</ul>
<a id="currentMediaItemIndex">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentMediaItemIndex</h4>
<pre>public final&nbsp;int currentMediaItemIndex</pre>
<div class="block">The current media item index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> to assume the default first item of
the playlist is played.</div>
</li>
</ul>
<a id="currentAdGroupIndex">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentAdGroupIndex</h4>
<pre>public final&nbsp;int currentAdGroupIndex</pre>
<div class="block">The current ad group index, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.</div>
</li>
</ul>
<a id="currentAdIndexInAdGroup">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentAdIndexInAdGroup</h4>
<pre>public final&nbsp;int currentAdIndexInAdGroup</pre>
<div class="block">The current ad index in the ad group, or <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if no ad is playing.</div>
</li>
</ul>
<a id="contentPositionMsSupplier">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contentPositionMsSupplier</h4>
<pre>public final&nbsp;<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a> contentPositionMsSupplier</pre>
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current content playback position in milliseconds, or
<a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start position.</div>
</li>
</ul>
<a id="adPositionMsSupplier">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adPositionMsSupplier</h4>
<pre>public final&nbsp;<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a> adPositionMsSupplier</pre>
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the current ad playback position in milliseconds. The value
is unused if no ad is playing.</div>
</li>
</ul>
<a id="contentBufferedPositionMsSupplier">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contentBufferedPositionMsSupplier</h4>
<pre>public final&nbsp;<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a> contentBufferedPositionMsSupplier</pre>
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently playing
content is buffered, in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to indicate the default start
position.</div>
</li>
</ul>
<a id="adBufferedPositionMsSupplier">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adBufferedPositionMsSupplier</h4>
<pre>public final&nbsp;<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a> adBufferedPositionMsSupplier</pre>
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated position up to which the currently playing ad
is buffered, in milliseconds. The value is unused if no ad is playing.</div>
</li>
</ul>
<a id="totalBufferedDurationMsSupplier">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>totalBufferedDurationMsSupplier</h4>
<pre>public final&nbsp;<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a> totalBufferedDurationMsSupplier</pre>
<div class="block">The <a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><code>SimpleBasePlayer.PositionSupplier</code></a> for the estimated total buffered duration in milliseconds.</div>
</li>
</ul>
<a id="hasPositionDiscontinuity">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPositionDiscontinuity</h4>
<pre>public final&nbsp;boolean hasPositionDiscontinuity</pre>
<div class="block">Signals that a position discontinuity happened since the last update to the player.</div>
</li>
</ul>
<a id="positionDiscontinuityReason">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>positionDiscontinuityReason</h4>
<pre><a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">@DiscontinuityReason</a>
public final&nbsp;@com.google.android.exoplayer2.Player.DiscontinuityReason int positionDiscontinuityReason</pre>
<div class="block">The <a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">reason</a> for the last position discontinuity. The
value is unused if <a href="#hasPositionDiscontinuity"><code>hasPositionDiscontinuity</code></a> is <code>false</code>.</div>
</li>
</ul>
<a id="discontinuityPositionMs">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>discontinuityPositionMs</h4>
<pre>public final&nbsp;long discontinuityPositionMs</pre>
<div class="block">The position, in milliseconds, in the current content or ad from which playback continued
after the discontinuity. The value is unused if <a href="#hasPositionDiscontinuity"><code>hasPositionDiscontinuity</code></a> is <code>
false</code>.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -713,7 +713,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackState()">getPlaybackState</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns the current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
</td>
</tr>
<tr id="i52" class="altColor">
@ -1054,11 +1054,13 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs,
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<div class="block">Seeks to a position in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
@ -1143,7 +1145,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
@ -1153,7 +1155,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i104" class="altColor">
@ -1406,7 +1408,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="BasePlayer.html#hasNext()">hasNext</a>, <a href="BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="BasePlayer.html#isPlaying()">isPlaying</a>, <a href="BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="BasePlayer.html#next()">next</a>, <a href="BasePlayer.html#pause()">pause</a>, <a href="BasePlayer.html#play()">play</a>, <a href="BasePlayer.html#previous()">previous</a>, <a href="BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="BasePlayer.html#repeatCurrentMediaItem()">repeatCurrentMediaItem</a>, <a href="BasePlayer.html#seekBack()">seekBack</a>, <a href="BasePlayer.html#seekForward()">seekForward</a>, <a href="BasePlayer.html#seekTo(long)">seekTo</a>, <a href="BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToNext()">seekToNext</a>, <a href="BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
<code><a href="BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="BasePlayer.html#hasNext()">hasNext</a>, <a href="BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="BasePlayer.html#isPlaying()">isPlaying</a>, <a href="BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="BasePlayer.html#next()">next</a>, <a href="BasePlayer.html#pause()">pause</a>, <a href="BasePlayer.html#play()">play</a>, <a href="BasePlayer.html#previous()">previous</a>, <a href="BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="BasePlayer.html#seekBack()">seekBack</a>, <a href="BasePlayer.html#seekForward()">seekForward</a>, <a href="BasePlayer.html#seekTo(int,long)">seekTo</a>, <a href="BasePlayer.html#seekTo(long)">seekTo</a>, <a href="BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToNext()">seekToNext</a>, <a href="BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -1420,7 +1422,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.<a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></h3>
<code><a href="Player.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="Player.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="Player.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="Player.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="Player.html#clearMediaItems()">clearMediaItems</a>, <a href="Player.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="Player.html#getContentDuration()">getContentDuration</a>, <a href="Player.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="Player.html#getCurrentManifest()">getCurrentManifest</a>, <a href="Player.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="Player.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="Player.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="Player.html#getMediaItemCount()">getMediaItemCount</a>, <a href="Player.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="Player.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="Player.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="Player.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="Player.html#hasNext()">hasNext</a>, <a href="Player.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="Player.html#hasNextWindow()">hasNextWindow</a>, <a href="Player.html#hasPrevious()">hasPrevious</a>, <a href="Player.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="Player.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="Player.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="Player.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="Player.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="Player.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="Player.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="Player.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="Player.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="Player.html#isPlaying()">isPlaying</a>, <a href="Player.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="Player.html#next()">next</a>, <a href="Player.html#pause()">pause</a>, <a href="Player.html#play()">play</a>, <a href="Player.html#previous()">previous</a>, <a href="Player.html#removeMediaItem(int)">removeMediaItem</a>, <a href="Player.html#seekBack()">seekBack</a>, <a href="Player.html#seekForward()">seekForward</a>, <a href="Player.html#seekTo(long)">seekTo</a>, <a href="Player.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="Player.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="Player.html#seekToNext()">seekToNext</a>, <a href="Player.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="Player.html#seekToNextWindow()">seekToNextWindow</a>, <a href="Player.html#seekToPrevious()">seekToPrevious</a>, <a href="Player.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="Player.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="Player.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="Player.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
<code><a href="Player.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="Player.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="Player.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="Player.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="Player.html#clearMediaItems()">clearMediaItems</a>, <a href="Player.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="Player.html#getContentDuration()">getContentDuration</a>, <a href="Player.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="Player.html#getCurrentManifest()">getCurrentManifest</a>, <a href="Player.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="Player.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="Player.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="Player.html#getMediaItemCount()">getMediaItemCount</a>, <a href="Player.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="Player.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="Player.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="Player.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="Player.html#hasNext()">hasNext</a>, <a href="Player.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="Player.html#hasNextWindow()">hasNextWindow</a>, <a href="Player.html#hasPrevious()">hasPrevious</a>, <a href="Player.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="Player.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="Player.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="Player.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="Player.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="Player.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="Player.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="Player.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="Player.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="Player.html#isPlaying()">isPlaying</a>, <a href="Player.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="Player.html#next()">next</a>, <a href="Player.html#pause()">pause</a>, <a href="Player.html#play()">play</a>, <a href="Player.html#previous()">previous</a>, <a href="Player.html#removeMediaItem(int)">removeMediaItem</a>, <a href="Player.html#seekBack()">seekBack</a>, <a href="Player.html#seekForward()">seekForward</a>, <a href="Player.html#seekTo(int,long)">seekTo</a>, <a href="Player.html#seekTo(long)">seekTo</a>, <a href="Player.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="Player.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="Player.html#seekToNext()">seekToNext</a>, <a href="Player.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="Player.html#seekToNextWindow()">seekToNextWindow</a>, <a href="Player.html#seekToPrevious()">seekToPrevious</a>, <a href="Player.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="Player.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="Player.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="Player.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
</ul>
</li>
</ul>
@ -1766,7 +1768,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#clearVideoSurface()">Player</a></code></span></div>
<div class="block">Clears any <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink"><code>Surface</code></a>, <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a>, <a href="https://developer.android.com/reference/android/view/SurfaceView.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceView</code></a> or <a href="https://developer.android.com/reference/android/view/TextureView.html?is-external=true" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a>
currently set on the player.</div>
currently set on the player.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#clearVideoSurface()">clearVideoSurface</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1786,7 +1790,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#clearVideoSurface(android.view.Surface)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#clearVideoSurface(android.view.Surface)">clearVideoSurface</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1813,7 +1819,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<p>If the surface is held by a <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink"><code>SurfaceView</code></a>, <a href="https://developer.android.com/reference/android/view/TextureView.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>TextureView</code></a> or <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a> then it's recommended to use <a href="Player.html#setVideoSurfaceView(android.view.SurfaceView)"><code>Player.setVideoSurfaceView(SurfaceView)</code></a>, <a href="Player.html#setVideoTextureView(android.view.TextureView)"><code>Player.setVideoTextureView(TextureView)</code></a> or <a href="Player.html#setVideoSurfaceHolder(android.view.SurfaceHolder)" target="_top"><code>Player.setVideoSurfaceHolder(SurfaceHolder)</code></a> rather than
this method, since passing the holder allows the player to track the lifecycle of the surface
automatically.</div>
automatically.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#setVideoSurface(android.view.Surface)">setVideoSurface</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1838,7 +1846,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
rendered. The player will track the lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceHolder.Callback</code></a> methods must be the thread
associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1860,7 +1870,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#clearVideoSurfaceHolder(android.view.SurfaceHolder)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a> that holds the <a href="https://developer.android.com/reference/android/view/Surface.html?is-external=true" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video is being
rendered if it matches the one passed. Else does nothing.</div>
rendered if it matches the one passed. Else does nothing.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#clearVideoSurfaceHolder(android.view.SurfaceHolder)">clearVideoSurfaceHolder</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1885,7 +1897,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceHolder.Callback</code></a> methods must be the thread
associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1907,7 +1921,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#clearVideoSurfaceView(android.view.SurfaceView)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#clearVideoSurfaceView(android.view.SurfaceView)">clearVideoSurfaceView</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1932,7 +1948,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/TextureView.SurfaceTextureListener.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView.SurfaceTextureListener</code></a> methods must be the
thread associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
thread associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1954,7 +1972,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#clearVideoTextureView(android.view.TextureView)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.VideoComponent.html#clearVideoTextureView(android.view.TextureView)">clearVideoTextureView</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></dd>
@ -1974,7 +1994,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<pre class="methodSignature">public&nbsp;void&nbsp;addAudioOffloadListener&#8203;(<a href="ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#addAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">ExoPlayer</a></code></span></div>
<div class="block">Adds a listener to receive audio offload events.</div>
<div class="block">Adds a listener to receive audio offload events.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#addAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">addAudioOffloadListener</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
@ -2045,7 +2067,9 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
<pre class="methodSignature">public&nbsp;<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;getAudioAttributes()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getAudioAttributes()">Player</a></code></span></div>
<div class="block">Returns the attributes for audio playback.</div>
<div class="block">Returns the attributes for audio playback.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_AUDIO_ATTRIBUTES"><code>Player.COMMAND_GET_AUDIO_ATTRIBUTES</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.AudioComponent.html#getAudioAttributes()">getAudioAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a></code></dd>
@ -2163,7 +2187,9 @@ public&nbsp;void&nbsp;setPreferredAudioDevice&#8203;(@Nullable
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setVolume(float)">Player</a></code></span></div>
<div class="block">Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal
unchanged), inclusive.</div>
unchanged), inclusive.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_VOLUME"><code>Player.COMMAND_SET_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.AudioComponent.html#setVolume(float)">setVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a></code></dd>
@ -2183,7 +2209,9 @@ public&nbsp;void&nbsp;setPreferredAudioDevice&#8203;(@Nullable
<pre class="methodSignature">public&nbsp;float&nbsp;getVolume()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getVolume()">Player</a></code></span></div>
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
<p>This method must only be called if <a href="Player.html#COMMAND_GET_VOLUME"><code>Player.COMMAND_GET_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.AudioComponent.html#getVolume()">getVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a></code></dd>
@ -2257,7 +2285,9 @@ public&nbsp;void&nbsp;setPreferredAudioDevice&#8203;(@Nullable
<pre class="methodSignature">public&nbsp;void&nbsp;addAnalyticsListener&#8203;(<a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#addAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">ExoPlayer</a></code></span></div>
<div class="block">Adds an <a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> to receive analytics events.</div>
<div class="block">Adds an <a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> to receive analytics events.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#addAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">addAnalyticsListener</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
@ -2490,7 +2520,9 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
<pre class="methodSignature">public&nbsp;<a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;getCurrentCues()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentCues()">Player</a></code></span></div>
<div class="block">Returns the current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.</div>
<div class="block">Returns the current <a href="text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_TEXT"><code>Player.COMMAND_GET_TEXT</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.TextComponent.html#getCurrentCues()">getCurrentCues</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a></code></dd>
@ -2508,7 +2540,9 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;getPlaybackLooper()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#getPlaybackLooper()">ExoPlayer</a></code></span></div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the playback thread.</div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the playback thread.
<p>This method may be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#getPlaybackLooper()">getPlaybackLooper</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
@ -2525,7 +2559,9 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getApplicationLooper()">Player</a></code></span></div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the application thread that's used to access the
player and on which player events are received.</div>
player and on which player events are received.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getApplicationLooper()">getApplicationLooper</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -2541,7 +2577,9 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
<pre class="methodSignature">public&nbsp;<a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;getClock()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#getClock()">ExoPlayer</a></code></span></div>
<div class="block">Returns the <a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> used for playback.</div>
<div class="block">Returns the <a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> used for playback.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#getClock()">getClock</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
@ -2559,7 +2597,9 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">Player</a></code></span></div>
<div class="block">Registers a listener to receive all events from the player.
<p>The listener's methods will be called on the thread associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
<p>The listener's methods will be called on the thread associated with <a href="Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">addListener</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -2597,12 +2637,12 @@ public&nbsp;<a href="decoder/DecoderCounters.html" title="class in com.google.an
public&nbsp;@com.google.android.exoplayer2.Player.State int&nbsp;getPlaybackState()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getPlaybackState()">Player</a></code></span></div>
<div class="block">Returns the current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getPlaybackState()">getPlaybackState</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a>.</dd>
<dd>The current <a href="Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a></dd>
</dl>
@ -2624,7 +2664,7 @@ public&nbsp;@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int&
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getPlaybackSuppressionReason()">getPlaybackSuppressionReason</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>playback suppression reason</code></a>.</dd>
<dd>The current <a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlaybackSuppressionReason</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onPlaybackSuppressionReasonChanged(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)"><code>Player.Listener.onPlaybackSuppressionReasonChanged(int)</code></a></dd>
</dl>
@ -2683,13 +2723,7 @@ public&nbsp;void&nbsp;retry()</pre>
<div class="block">Returns the player's currently available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.
<p>The returned <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a> are not updated when available commands change. Use <a href="Player.Listener.html#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)"><code>Player.Listener.onAvailableCommandsChanged(Commands)</code></a> to get an update when the available commands
change.
<p>Executing a command that is not available (for example, calling <a href="Player.html#seekToNextMediaItem()"><code>Player.seekToNextMediaItem()</code></a> if <a href="Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a> is unavailable) will
neither throw an exception nor generate a <a href="Player.html#getPlayerError()"><code>Player.getPlayerError()</code></a> player error}.
<p><a href="Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a> and <a href="Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a>
are unavailable if there is no such <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
change.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getAvailableCommands()">getAvailableCommands</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -2711,6 +2745,8 @@ public&nbsp;void&nbsp;retry()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#prepare()">Player</a></code></span></div>
<div class="block">Prepares the player.
<p>This method must only be called if <a href="Player.html#COMMAND_PREPARE"><code>Player.COMMAND_PREPARE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.
<p>This will move the player out of <a href="Player.html#STATE_IDLE"><code>idle state</code></a> and the player will start
loading media and acquire resources needed for playback.</div>
<dl>
@ -2766,12 +2802,14 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
boolean&nbsp;resetPosition)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setMediaItems(java.util.List,boolean)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setMediaItems(java.util.List,boolean)">setMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position in
the first <a href="Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>. If false, playback will start from the position defined
by <a href="Player.html#getCurrentMediaItemIndex()"><code>Player.getCurrentMediaItemIndex()</code></a> and <a href="Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</dd>
@ -2789,12 +2827,14 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
long&nbsp;startPositionMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setMediaItems(java.util.List,int,long)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setMediaItems(java.util.List,int,long)">setMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>startIndex</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> index to start playback from. If <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>
is passed, the current position is not reset.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from. If <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> is passed, the default position of the given <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> is used. In
@ -2939,14 +2979,16 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#addMediaItems(int,java.util.List)">Player</a></code></span></div>
<div class="block">Adds a list of media items at the given index of the playlist.</div>
<div class="block">Adds a list of media items at the given index of the playlist.
<p>This method must only be called if <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#addMediaItems(int,java.util.List)">addMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media items. If the index is larger than the size of
the playlist, the media items are added to the end of the playlist.</dd>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
<dd><code>mediaItems</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> to add.</dd>
</dl>
</li>
</ul>
@ -3037,13 +3079,17 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
int&nbsp;newIndex)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#moveMediaItems(int,int,int)">Player</a></code></span></div>
<div class="block">Moves the media item range to the new index.</div>
<div class="block">Moves the media item range to the new index.
<p>This method must only be called if <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#moveMediaItems(int,int,int)">moveMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The start of the range to move.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive).</dd>
<dd><code>fromIndex</code> - The start of the range to move. If the index is larger than the size of the
playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive). If the index is
larger than the size of the playlist, items up to the end of the playlist are moved.</dd>
<dd><code>newIndex</code> - The new index of the first media item of the range. If the new index is larger
than the size of the remaining playlist after removing the range, the range is moved to the
end of the playlist.</dd>
@ -3060,14 +3106,17 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
int&nbsp;toIndex)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#removeMediaItems(int,int)">Player</a></code></span></div>
<div class="block">Removes a range of media items from the playlist.</div>
<div class="block">Removes a range of media items from the playlist.
<p>This method must only be called if <a href="Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#removeMediaItems(int,int)">removeMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The index at which to start removing media items.</dd>
<dd><code>fromIndex</code> - The index at which to start removing media items. If the index is larger than
the size of the playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The index of the first item to be kept (exclusive). If the index is larger than
the size of the playlist, media items to the end of the playlist are removed.</dd>
the size of the playlist, media items up to the end of the playlist are removed.</dd>
</dl>
</li>
</ul>
@ -3100,7 +3149,9 @@ public&nbsp;void&nbsp;prepare&#8203;(<a href="source/MediaSource.html" title="in
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setPlayWhenReady(boolean)">Player</a></code></span></div>
<div class="block">Sets whether playback should proceed when <a href="Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.
<p>If the player is already in the ready state then this method pauses and resumes playback.</div>
<p>If the player is already in the ready state then this method pauses and resumes playback.
<p>This method must only be called if <a href="Player.html#COMMAND_PLAY_PAUSE"><code>Player.COMMAND_PLAY_PAUSE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setPlayWhenReady(boolean)">setPlayWhenReady</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3198,7 +3249,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">Player</a></code></span></div>
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_REPEAT_MODE"><code>Player.COMMAND_SET_REPEAT_MODE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3216,7 +3269,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;void&nbsp;setShuffleModeEnabled&#8203;(boolean&nbsp;shuffleModeEnabled)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setShuffleModeEnabled(boolean)">Player</a></code></span></div>
<div class="block">Sets whether shuffling of media items is enabled.</div>
<div class="block">Sets whether shuffling of media items is enabled.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_SHUFFLE_MODE"><code>Player.COMMAND_SET_SHUFFLE_MODE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3263,24 +3318,29 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
</dl>
</li>
</ul>
<a id="seekTo(int,long)">
<a id="seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekTo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</pre>
long&nbsp;positionMs,
<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#seekTo(int,long)">Player</a></code></span></div>
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">BasePlayer</a></code></span></div>
<div class="block">Seeks to a position in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#seekTo(int,long)">seekTo</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dd><code><a href="BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></code>&nbsp;in class&nbsp;<code><a href="BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItemIndex</code> - The index of the <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a>
to seek to the media item's default position.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in milliseconds, or
<a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to seek to the media item's default position.</dd>
<dd><code>seekCommand</code> - The <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> used to trigger the seek.</dd>
<dd><code>isRepeatingCurrentItem</code> - Whether this seeks repeats the current item.</dd>
</dl>
</li>
</ul>
@ -3357,7 +3417,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
player to the default, which means there is no speed or pitch adjustment.
<p>Playback parameters changes may cause the player to buffer. <a href="Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.Listener.onPlaybackParametersChanged(PlaybackParameters)</code></a> will be called whenever the currently
active playback parameters change.</div>
active playback parameters change.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_SPEED_AND_PITCH"><code>Player.COMMAND_SET_SPEED_AND_PITCH</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3478,7 +3540,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
still be called on the player if it's no longer required.
<p>Calling this method does not clear the playlist, reset the playback position or the playback
error.</div>
error.
<p>This method must only be called if <a href="Player.html#COMMAND_STOP"><code>Player.COMMAND_STOP</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#stop()">stop</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3668,7 +3732,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;<a href="Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;getCurrentTracks()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentTracks()">Player</a></code></span></div>
<div class="block">Returns the current tracks.</div>
<div class="block">Returns the current tracks.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_TRACKS"><code>Player.COMMAND_GET_TRACKS</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentTracks()">getCurrentTracks</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3718,7 +3784,10 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
.buildUpon()
.setMaxVideoSizeSd()
.build())
</code></pre></div>
</code></pre>
<p>This method must only be called if <a href="Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS"><code>Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS</code></a> is
<a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3740,7 +3809,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<p>This <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="MediaItem.html#mediaMetadata"><code>MediaItem
metadata</code></a>, the static metadata in the media's <a href="Format.html#metadata"><code>Format</code></a>, and any timed
metadata that has been parsed from the media and output via <a href="Player.Listener.html#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>Player.Listener.onMetadata(Metadata)</code></a>. If a field is populated in the <a href="MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a>,
it will be prioritised above the same field coming from static or timed metadata.</div>
it will be prioritised above the same field coming from static or timed metadata.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getMediaMetadata()">getMediaMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3756,7 +3827,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;getPlaylistMetadata()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getPlaylistMetadata()">Player</a></code></span></div>
<div class="block">Returns the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.</div>
<div class="block">Returns the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getPlaylistMetadata()">getPlaylistMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3772,7 +3845,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;void&nbsp;setPlaylistMetadata&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">Player</a></code></span></div>
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_SET_MEDIA_ITEMS_METADATA</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3788,7 +3863,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;getCurrentTimeline()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentTimeline()">Player</a></code></span></div>
<div class="block">Returns the current <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.</div>
<div class="block">Returns the current <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentTimeline()">getCurrentTimeline</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3806,7 +3883,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentPeriodIndex()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentPeriodIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the period currently being played.</div>
<div class="block">Returns the index of the period currently being played.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentPeriodIndex()">getCurrentPeriodIndex</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3823,7 +3902,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentMediaItemIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in the <a href="Player.html#getCurrentTimeline()"><code>timeline</code></a>, or the prospective index if the <a href="Player.html#getCurrentTimeline()"><code>current timeline</code></a> is
empty.</div>
empty.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentMediaItemIndex()">getCurrentMediaItemIndex</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3840,7 +3921,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getDuration()">Player</a></code></span></div>
<div class="block">Returns the duration of the current content or ad in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if
the duration is not known.</div>
the duration is not known.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getDuration()">getDuration</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3857,7 +3940,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentPosition()">Player</a></code></span></div>
<div class="block">Returns the playback position in the current content or ad, in milliseconds, or the prospective
position in milliseconds if the <a href="Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.</div>
position in milliseconds if the <a href="Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentPosition()">getCurrentPosition</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3874,7 +3959,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getBufferedPosition()">Player</a></code></span></div>
<div class="block">Returns an estimate of the position in the current content or ad up to which data is buffered,
in milliseconds.</div>
in milliseconds.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getBufferedPosition()">getBufferedPosition</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3891,7 +3978,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getTotalBufferedDuration()">Player</a></code></span></div>
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.
This includes pre-buffered data for subsequent ads and <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>media items</code></a>.</div>
This includes pre-buffered data for subsequent ads and <a href="MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getTotalBufferedDuration()">getTotalBufferedDuration</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3907,7 +3996,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<pre class="methodSignature">public&nbsp;boolean&nbsp;isPlayingAd()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#isPlayingAd()">Player</a></code></span></div>
<div class="block">Returns whether the player is currently playing an ad.</div>
<div class="block">Returns whether the player is currently playing an ad.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#isPlayingAd()">isPlayingAd</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3924,7 +4015,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentAdGroupIndex()">Player</a></code></span></div>
<div class="block">If <a href="Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad group in the period
currently being played. Returns <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
currently being played. Returns <a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentAdGroupIndex()">getCurrentAdGroupIndex</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3941,7 +4034,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getCurrentAdIndexInAdGroup()">Player</a></code></span></div>
<div class="block">If <a href="Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad in its ad group. Returns
<a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
<a href="C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getCurrentAdIndexInAdGroup()">getCurrentAdIndexInAdGroup</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3959,7 +4054,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getContentPosition()">Player</a></code></span></div>
<div class="block">If <a href="Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns the content position that will be
played once all ads in the ad group have finished playing, in milliseconds. If there is no ad
playing, the returned position is the same as that returned by <a href="Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</div>
playing, the returned position is the same as that returned by <a href="Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getContentPosition()">getContentPosition</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -3977,7 +4074,9 @@ public&nbsp;<a href="trackselection/TrackSelectionArray.html" title="class in co
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getContentBufferedPosition()">Player</a></code></span></div>
<div class="block">If <a href="Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns an estimate of the content position in
the current content up to which data is buffered, in milliseconds. If there is no ad playing,
the returned position is the same as that returned by <a href="Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.</div>
the returned position is the same as that returned by <a href="Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getContentBufferedPosition()">getContentBufferedPosition</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
@ -4063,7 +4162,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<a href="util/Util.html#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)"><code>Util.getStreamTypeForAudioUsage(int)</code></a>.
<p>For devices with <a href="DeviceInfo.html#PLAYBACK_TYPE_REMOTE"><code>remote playback</code></a>, the volume of the
remote device is returned.</div>
remote device is returned.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#getDeviceVolume()">getDeviceVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>
@ -4081,7 +4182,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDeviceMuted()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#isDeviceMuted()">Player</a></code></span></div>
<div class="block">Gets whether the device is muted or not.</div>
<div class="block">Gets whether the device is muted or not.
<p>This method must only be called if <a href="Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#isDeviceMuted()">isDeviceMuted</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>
@ -4099,7 +4202,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceVolume&#8203;(int&nbsp;volume)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setDeviceVolume(int)">Player</a></code></span></div>
<div class="block">Sets the volume of the device.</div>
<div class="block">Sets the volume of the device.
<p>This method must only be called if <a href="Player.html#COMMAND_SET_DEVICE_VOLUME"><code>Player.COMMAND_SET_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#setDeviceVolume(int)">setDeviceVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>
@ -4119,7 +4224,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<pre class="methodSignature">public&nbsp;void&nbsp;increaseDeviceVolume()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#increaseDeviceVolume()">Player</a></code></span></div>
<div class="block">Increases the volume of the device.</div>
<div class="block">Increases the volume of the device.
<p>This method must only be called if <a href="Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#increaseDeviceVolume()">increaseDeviceVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>
@ -4137,7 +4244,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<pre class="methodSignature">public&nbsp;void&nbsp;decreaseDeviceVolume()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#decreaseDeviceVolume()">Player</a></code></span></div>
<div class="block">Decreases the volume of the device.</div>
<div class="block">Decreases the volume of the device.
<p>This method must only be called if <a href="Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#decreaseDeviceVolume()">decreaseDeviceVolume</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>
@ -4155,7 +4264,9 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceMuted&#8203;(boolean&nbsp;muted)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#setDeviceMuted(boolean)">Player</a></code></span></div>
<div class="block">Sets the mute state of the device.</div>
<div class="block">Sets the mute state of the device.
<p>This method must only be called if <a href="Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.DeviceComponent.html#setDeviceMuted(boolean)">setDeviceMuted</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></dd>

View File

@ -317,7 +317,7 @@ extends <a href="Timeline.html" title="class in com.google.android.exoplayer2">T
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="Timeline.html#equals(java.lang.Object)">equals</a>, <a href="Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="Timeline.html#hashCode()">hashCode</a>, <a href="Timeline.html#isEmpty()">isEmpty</a>, <a href="Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="Timeline.html#toBundle()">toBundle</a>, <a href="Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="Timeline.html#equals(java.lang.Object)">equals</a>, <a href="Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="Timeline.html#hashCode()">hashCode</a>, <a href="Timeline.html#isEmpty()">isEmpty</a>, <a href="Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="Timeline.html#toBundle()">toBundle</a>, <a href="Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -556,7 +556,10 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle(boolean)">toBundle</a></span>&#8203;(boolean&nbsp;excludeMediaItems)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></span>&#8203;(int&nbsp;windowIndex)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundle</code></a> containing just the specified <a href="Timeline.Window.html" title="class in com.google.android.exoplayer2" target="_top"><code>Timeline.Window</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
@ -1034,28 +1037,10 @@ public final&nbsp;<a href="https://developer.android.com/reference/android/util/
</dl>
</li>
</ul>
<a id="toBundle(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public final&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle&#8203;(boolean&nbsp;excludeMediaItems)</pre>
<div class="block">
<p>The <a href="#getWindow(int,com.google.android.exoplayer2.Timeline.Window)"><code>getWindow(int, Window)</code></a> windows} and <a href="#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)"><code>periods</code></a> of
an instance restored by <a href="#CREATOR"><code>CREATOR</code></a> may have missing fields as described in <a href="Timeline.Window.html#toBundle()"><code>Timeline.Window.toBundle()</code></a> and <a href="Timeline.Period.html#toBundle()"><code>Timeline.Period.toBundle()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>excludeMediaItems</code> - Whether to exclude all <a href="Timeline.Window.html#mediaItem"><code>media items</code></a> of windows
in the timeline.</dd>
</dl>
</li>
</ul>
<a id="toBundle()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public final&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle()</pre>
@ -1069,6 +1054,23 @@ public final&nbsp;<a href="https://developer.android.com/reference/android/util/
</dl>
</li>
</ul>
<a id="toBundleWithOneWindowOnly(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toBundleWithOneWindowOnly</h4>
<pre class="methodSignature">public final&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundleWithOneWindowOnly&#8203;(int&nbsp;windowIndex)</pre>
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundle</code></a> containing just the specified <a href="Timeline.Window.html" title="class in com.google.android.exoplayer2" target="_top"><code>Timeline.Window</code></a>.
<p>The <a href="#getWindow(int,com.google.android.exoplayer2.Timeline.Window)"><code>getWindow(int, Window)</code></a> windows} and <a href="#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)"><code>periods</code></a> of
an instance restored by <a href="#CREATOR"><code>CREATOR</code></a> may have missing fields as described in <a href="Timeline.Window.html#toBundle()"><code>Timeline.Window.toBundle()</code></a> and <a href="Timeline.Period.html#toBundle()"><code>Timeline.Period.toBundle()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowIndex</code> - The index of the <a href="Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a> to include in the <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -25,8 +25,8 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":42,"i78":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@ -205,7 +205,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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>
<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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>
@ -245,7 +245,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onAudioAttributesChanged(com.google.android.exoplayer2.audio.AudioAttributes)">onAudioAttributesChanged</a></span>&#8203;(<a href="../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</code></th>
<td class="colLast">
<div class="block">Called when the audio attributes change.</div>
<div class="block">Called when the value of <a href="../Player.html#getAudioAttributes()"><code>Player.getAudioAttributes()</code></a> changes.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
@ -346,14 +346,14 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onCues(com.google.android.exoplayer2.text.CueGroup)">onCues</a></span>&#8203;(<a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;cueGroup)</code></th>
<td class="colLast">
<div class="block">Called when there is a change in the <a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.</div>
<div class="block">Called when the value of <a href="../Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onCues(java.util.List)">onCues</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../text/Cue.html" title="class in com.google.android.exoplayer2.text" target="_top">Cue</a>&gt;&nbsp;cues)</code></th>
<td class="colLast">
<div class="block">Called when there is a change in the <a href="../text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cues</code></a>.</div>
<div class="block">Called when the value of <a href="../Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
@ -368,7 +368,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDeviceVolumeChanged(int,boolean)">onDeviceVolumeChanged</a></span>&#8203;(int&nbsp;volume,
boolean&nbsp;muted)</code></th>
<td class="colLast">
<div class="block">Called when the device volume or mute state changes.</div>
<div class="block">Called when the value of <a href="../Player.html#getDeviceVolume()"><code>Player.getDeviceVolume()</code></a> or <a href="../Player.html#isDeviceMuted()"><code>Player.isDeviceMuted()</code></a> changes.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
@ -527,7 +527,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMediaMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">onMediaMetadataChanged</a></span>&#8203;(<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
<div class="block">Called when the combined <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.</div>
<div class="block">Called when the value of <a href="../Player.html#getMediaMetadata()"><code>Player.getMediaMetadata()</code></a> changes.</div>
</td>
</tr>
<tr id="i40" class="altColor">
@ -541,7 +541,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)">onPlaybackParametersChanged</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Called when the current playback parameters change.</div>
<div class="block">Called when the value of <a href="../Player.html#getPlaybackParameters()"><code>Player.getPlaybackParameters()</code></a> changes.</div>
</td>
</tr>
<tr id="i42" class="altColor">
@ -582,7 +582,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPlaylistMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">onPlaylistMetadataChanged</a></span>&#8203;(<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;playlistMetadata)</code></th>
<td class="colLast">
<div class="block">Called when the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.</div>
<div class="block">Called when the value of <a href="../Player.html#getPlaylistMetadata()"><code>Player.getPlaylistMetadata()</code></a> changes.</div>
</td>
</tr>
<tr id="i48" class="altColor">
@ -678,14 +678,14 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)">onTimelineChanged</a></span>&#8203;(<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;timeline,
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</code></th>
<td class="colLast">
<div class="block">Called when the timeline has been refreshed.</div>
<div class="block">Called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTracksChanged(com.google.android.exoplayer2.Tracks)">onTracksChanged</a></span>&#8203;(<a href="../Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;tracks)</code></th>
<td class="colLast">
<div class="block">Called when the tracks change.</div>
<div class="block">Called when the value of <a href="../Player.html#getCurrentTracks()"><code>Player.getCurrentTracks()</code></a> changes.</div>
</td>
</tr>
<tr id="i62" class="altColor">
@ -769,7 +769,7 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onVolumeChanged(float)">onVolumeChanged</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Called when the volume changes.</div>
<div class="block">Called when the value of <a href="../Player.html#getVolume()"><code>Player.getVolume()</code></a> changes.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
@ -805,6 +805,15 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setThrowsWhenUsingWrongThread(boolean)">setThrowsWhenUsingWrongThread</a></span>&#8203;(boolean&nbsp;throwsWhenUsingWrongThread)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Do not use this method and ensure all calls are made from the correct thread.</div>
</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateMediaPeriodQueueInfo(java.util.List,com.google.android.exoplayer2.source.MediaSource.MediaPeriodId)">updateMediaPeriodQueueInfo</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../source/MediaSource.MediaPeriodId.html" title="class in com.google.android.exoplayer2.source" target="_top">MediaSource.MediaPeriodId</a>&gt;&nbsp;queue,
<a href="../source/MediaSource.MediaPeriodId.html" title="class in com.google.android.exoplayer2.source">MediaSource.MediaPeriodId</a>&nbsp;readingPeriod)</code></th>
<td class="colLast">
@ -866,6 +875,26 @@ implements <a href="AnalyticsCollector.html" title="interface in com.google.andr
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setThrowsWhenUsingWrongThread(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setThrowsWhenUsingWrongThread</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;void&nbsp;setThrowsWhenUsingWrongThread&#8203;(boolean&nbsp;throwsWhenUsingWrongThread)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Do not use this method and ensure all calls are made from the correct thread.</div>
</div>
<div class="block">Sets whether methods throw when using the wrong thread.
<p>Do not use this method unless to support legacy use cases.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>throwsWhenUsingWrongThread</code> - Whether to throw when using the wrong thread.</dd>
</dl>
</li>
</ul>
<a id="addListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">
<!-- -->
</a>
@ -1161,7 +1190,7 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onVolumeChanged</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;onVolumeChanged&#8203;(float&nbsp;volume)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onVolumeChanged(float)">Player.Listener</a></code></span></div>
<div class="block">Called when the volume changes.
<div class="block">Called when the value of <a href="../Player.html#getVolume()"><code>Player.getVolume()</code></a> changes.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1571,7 +1600,7 @@ public&nbsp;void&nbsp;release()</pre>
<a href="../Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">@TimelineChangeReason</a>
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)">Player.Listener</a></code></span></div>
<div class="block">Called when the timeline has been refreshed.
<div class="block">Called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.
<p>Note that the current <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> or playback position may change as a result of a
timeline change. If playback can't continue smoothly because of this timeline change, a
@ -1603,8 +1632,8 @@ public&nbsp;void&nbsp;release()</pre>
<div class="block">Called when playback transitions to a media item or starts repeating a media item according
to the current <a href="../Player.html#getRepeatMode()"><code>repeat mode</code></a>.
<p>Note that this callback is also called when the playlist becomes non-empty or empty as a
consequence of a playlist change.
<p>Note that this callback is also called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a>
becomes non-empty or empty.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1625,7 +1654,7 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onTracksChanged</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onTracksChanged&#8203;(<a href="../Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;tracks)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.Tracks)">Player.Listener</a></code></span></div>
<div class="block">Called when the tracks change.
<div class="block">Called when the value of <a href="../Player.html#getCurrentTracks()"><code>Player.getCurrentTracks()</code></a> changes.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -1723,7 +1752,7 @@ public&nbsp;void&nbsp;release()</pre>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)">onPlaybackStateChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackState</code> - The new playback <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>state</code></a>.</dd>
<dd><code>playbackState</code> - The new playback <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>Player.State</code></a>.</dd>
</dl>
</li>
</ul>
@ -1746,7 +1775,7 @@ public&nbsp;void&nbsp;release()</pre>
<dd><code><a href="../Player.Listener.html#onPlayWhenReadyChanged(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)">onPlayWhenReadyChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback will proceed when ready.</dd>
<dd><code>reason</code> - The <a href="../Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2"><code>reason</code></a> for the change.</dd>
<dd><code>reason</code> - The <a href="../Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlayWhenReadyChangeReason</code></a> for the change.</dd>
</dl>
</li>
</ul>
@ -1828,7 +1857,7 @@ public&nbsp;void&nbsp;release()</pre>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Player.Listener.html#onShuffleModeEnabledChanged(boolean)">onShuffleModeEnabledChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling of <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>media items</code></a> is enabled.</dd>
<dd><code>shuffleModeEnabled</code> - Whether shuffling of <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> is enabled.</dd>
</dl>
</li>
</ul>
@ -1931,10 +1960,10 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onPlaybackParametersChanged</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;onPlaybackParametersChanged&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)">Player.Listener</a></code></span></div>
<div class="block">Called when the current playback parameters change. The playback parameters may change due to
a call to <a href="../Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a>, or the player itself may change
them (for example, if audio playback switches to passthrough or offload mode, where speed
adjustment is no longer possible).
<div class="block">Called when the value of <a href="../Player.html#getPlaybackParameters()"><code>Player.getPlaybackParameters()</code></a> changes. The playback parameters
may change due to a call to <a href="../Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a>, or the player
itself may change them (for example, if audio playback switches to passthrough or offload
mode, where speed adjustment is no longer possible).
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2015,11 +2044,7 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onMediaMetadataChanged</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onMediaMetadataChanged&#8203;(<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onMediaMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">Player.Listener</a></code></span></div>
<div class="block">Called when the combined <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.
<p>The provided <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="../MediaItem.html#mediaMetadata"><code>MediaItem metadata</code></a>, the static metadata in the media's <a href="../Format.html#metadata"><code>Format</code></a>, and
any timed metadata that has been parsed from the media and output via <a href="../Player.Listener.html#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>Player.Listener.onMetadata(Metadata)</code></a>. If a field is populated in the <a href="../MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a>, it will be prioritised above the same field coming from static or
timed metadata.
<div class="block">Called when the value of <a href="../Player.html#getMediaMetadata()"><code>Player.getMediaMetadata()</code></a> changes.
<p>This method may be called multiple times in quick succession.
@ -2041,7 +2066,7 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onPlaylistMetadataChanged</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onPlaylistMetadataChanged&#8203;(<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;playlistMetadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onPlaylistMetadataChanged(com.google.android.exoplayer2.MediaMetadata)">Player.Listener</a></code></span></div>
<div class="block">Called when the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> changes.
<div class="block">Called when the value of <a href="../Player.html#getPlaylistMetadata()"><code>Player.getPlaylistMetadata()</code></a> changes.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2079,10 +2104,10 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onCues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onCues&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../text/Cue.html" title="class in com.google.android.exoplayer2.text" target="_top">Cue</a>&gt;&nbsp;cues)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onCues(java.util.List)">Player.Listener</a></code></span></div>
<div class="block">Called when there is a change in the <a href="../text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cues</code></a>.
<div class="block">Called when the value of <a href="../Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.
<p>Both <a href="../Player.Listener.html#onCues(java.util.List)"><code>Player.Listener.onCues(List)</code></a> and <a href="../Player.Listener.html#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>Player.Listener.onCues(CueGroup)</code></a> are called when there is a change
in the cues. You should only implement one or the other.
<p>Both this method and <a href="../Player.Listener.html#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>Player.Listener.onCues(CueGroup)</code></a> are called when there is a change in the
cues. You should only implement one or the other.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2100,10 +2125,10 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onCues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onCues&#8203;(<a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;cueGroup)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onCues(com.google.android.exoplayer2.text.CueGroup)">Player.Listener</a></code></span></div>
<div class="block">Called when there is a change in the <a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.
<div class="block">Called when the value of <a href="../Player.html#getCurrentCues()"><code>Player.getCurrentCues()</code></a> changes.
<p>Both <a href="../Player.Listener.html#onCues(java.util.List)"><code>Player.Listener.onCues(List)</code></a> and <a href="../Player.Listener.html#onCues(com.google.android.exoplayer2.text.CueGroup)"><code>Player.Listener.onCues(CueGroup)</code></a> are called when there is a change
in the cues. You should only implement one or the other.
<p>Both this method and <a href="../Player.Listener.html#onCues(java.util.List)"><code>Player.Listener.onCues(List)</code></a> are called when there is a change in the cues.
You should only implement one or the other.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2174,7 +2199,7 @@ public&nbsp;void&nbsp;release()</pre>
<h4>onAudioAttributesChanged</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;onAudioAttributesChanged&#8203;(<a href="../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onAudioAttributesChanged(com.google.android.exoplayer2.audio.AudioAttributes)">Player.Listener</a></code></span></div>
<div class="block">Called when the audio attributes change.
<div class="block">Called when the value of <a href="../Player.html#getAudioAttributes()"><code>Player.getAudioAttributes()</code></a> changes.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2255,7 +2280,7 @@ public&nbsp;void&nbsp;release()</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;onDeviceVolumeChanged&#8203;(int&nbsp;volume,
boolean&nbsp;muted)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onDeviceVolumeChanged(int,boolean)">Player.Listener</a></code></span></div>
<div class="block">Called when the device volume or mute state changes.
<div class="block">Called when the value of <a href="../Player.html#getDeviceVolume()"><code>Player.getDeviceVolume()</code></a> or <a href="../Player.html#isDeviceMuted()"><code>Player.isDeviceMuted()</code></a> changes.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -2301,8 +2326,6 @@ public&nbsp;void&nbsp;release()</pre>
<p>State changes and events that happen within one <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration are
reported together and only after all individual callbacks were triggered.
<p>Only state changes represented by <a href="../Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a> are reported through this method.
<p>Listeners should prefer this method over individual callbacks in the following cases:
<ul>

View File

@ -177,68 +177,75 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bitrate">bitrate</a></span></code></th>
<td class="colLast">
<div class="block">The bitrate of audio samples.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#channelCount">channelCount</a></span></code></th>
<td class="colLast">
<div class="block">The number of audio channels</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#frameSize">frameSize</a></span></code></th>
<td class="colLast">
<div class="block">The size of the frame.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mimeType">mimeType</a></span></code></th>
<td class="colLast">
<div class="block">The sample mime type of the bitstream.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sampleCount">sampleCount</a></span></code></th>
<td class="colLast">
<div class="block">Number of audio samples in the frame.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sampleRate">sampleRate</a></span></code></th>
<td class="colLast">
<div class="block">The audio sampling rate in Hz.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STREAM_TYPE_TYPE0">STREAM_TYPE_TYPE0</a></span></code></th>
<td class="colLast">
<div class="block">Type 0 AC3 stream type.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STREAM_TYPE_TYPE1">STREAM_TYPE_TYPE1</a></span></code></th>
<td class="colLast">
<div class="block">Type 1 AC3 stream type.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STREAM_TYPE_TYPE2">STREAM_TYPE_TYPE2</a></span></code></th>
<td class="colLast">
<div class="block">Type 2 AC3 stream type.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STREAM_TYPE_UNDEFINED">STREAM_TYPE_UNDEFINED</a></span></code></th>
<td class="colLast">
<div class="block">Undefined AC3 stream type.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.audio.Ac3Util.SyncFrameInfo.StreamType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#streamType">streamType</a></span></code></th>
<td class="colLast">
@ -389,13 +396,23 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<a id="sampleCount">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>sampleCount</h4>
<pre>public final&nbsp;int sampleCount</pre>
<div class="block">Number of audio samples in the frame.</div>
</li>
</ul>
<a id="bitrate">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>bitrate</h4>
<pre>public final&nbsp;int bitrate</pre>
<div class="block">The bitrate of audio samples.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -178,11 +178,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">getBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">getBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
int&nbsp;bitrate,
double&nbsp;maxAudioTrackPlaybackSpeed)</code></th>
<td class="colLast">
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
@ -226,7 +227,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">
<a id="getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">
<!-- -->
</a>
<ul class="blockListLast">
@ -237,6 +238,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
int&nbsp;bitrate,
double&nbsp;maxAudioTrackPlaybackSpeed)</pre>
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
@ -249,6 +251,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dd><code>pcmFrameSize</code> - The size of the PCM frames if the <code>encoding</code> is PCM, 1 otherwise,
in bytes.</dd>
<dd><code>sampleRate</code> - The sample rate of the format, in Hz.</dd>
<dd><code>bitrate</code> - The bitrate of the audio stream if the stream is compressed, or <a href="../Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a> if <code>encoding</code> is PCM or the bitrate is not known.</dd>
<dd><code>maxAudioTrackPlaybackSpeed</code> - The maximum speed the content will be played using <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(android.media.PlaybackParams)</code></a>. 0.5 is 2x slow motion, 1 is real time, 2 is 2x fast
forward, etc. This will be <code>1</code> unless <a href="DefaultAudioSink.Builder.html#setEnableAudioTrackPlaybackParams(boolean)"><code>DefaultAudioSink.Builder.setEnableAudioTrackPlaybackParams(boolean)</code></a> is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>

View File

@ -282,22 +282,24 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get1xBufferSizeInBytes(int,int,int,int,int)">get1xBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get1xBufferSizeInBytes(int,int,int,int,int,int)">get1xBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
int&nbsp;encoding,
int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate)</code></th>
int&nbsp;sampleRate,
int&nbsp;bitrate)</code></th>
<td class="colLast">
<div class="block">Returns the buffer size for playback at 1x speed.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">getBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">getBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
int&nbsp;bitrate,
double&nbsp;maxAudioTrackPlaybackSpeed)</code></th>
<td class="colLast">
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
@ -318,7 +320,8 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPassthroughBufferSizeInBytes(@com.google.android.exoplayer2.C.Encodingint)">getPassthroughBufferSizeInBytes</a></span>&#8203;(@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPassthroughBufferSizeInBytes(@com.google.android.exoplayer2.C.Encodingint,int)">getPassthroughBufferSizeInBytes</a></span>&#8203;(@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
int&nbsp;bitrate)</code></th>
<td class="colLast">
<div class="block">Returns the buffer size for passthrough playback.</div>
</td>
@ -446,7 +449,7 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">
<a id="getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">
<!-- -->
</a>
<ul class="blockList">
@ -457,13 +460,14 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
int&nbsp;bitrate,
double&nbsp;maxAudioTrackPlaybackSpeed)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></span></div>
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">getBufferSizeInBytes</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></dd>
<dd><code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,int,double)">getBufferSizeInBytes</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minBufferSizeInBytes</code> - The minimum buffer size in bytes required to play this format.
See <a href="https://developer.android.com/reference/android/media/AudioTrack.html#getMinBufferSize(int,int,int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.getMinBufferSize(int, int, int)</code></a>.</dd>
@ -472,6 +476,7 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
<dd><code>pcmFrameSize</code> - The size of the PCM frames if the <code>encoding</code> is PCM, 1 otherwise,
in bytes.</dd>
<dd><code>sampleRate</code> - The sample rate of the format, in Hz.</dd>
<dd><code>bitrate</code> - The bitrate of the audio stream if the stream is compressed, or <a href="../Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a> if <code>encoding</code> is PCM or the bitrate is not known.</dd>
<dd><code>maxAudioTrackPlaybackSpeed</code> - The maximum speed the content will be played using <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(android.media.PlaybackParams)</code></a>. 0.5 is 2x slow motion, 1 is real time, 2 is 2x fast
forward, etc. This will be <code>1</code> unless <a href="DefaultAudioSink.Builder.html#setEnableAudioTrackPlaybackParams(boolean)"><code>DefaultAudioSink.Builder.setEnableAudioTrackPlaybackParams(boolean)</code></a> is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
@ -481,7 +486,7 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
</dl>
</li>
</ul>
<a id="get1xBufferSizeInBytes(int,int,int,int,int)">
<a id="get1xBufferSizeInBytes(int,int,int,int,int,int)">
<!-- -->
</a>
<ul class="blockList">
@ -491,7 +496,8 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
int&nbsp;encoding,
int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate)</pre>
int&nbsp;sampleRate,
int&nbsp;bitrate)</pre>
<div class="block">Returns the buffer size for playback at 1x speed.</div>
</li>
</ul>
@ -507,13 +513,14 @@ implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="i
<div class="block">Returns the buffer size for PCM playback.</div>
</li>
</ul>
<a id="getPassthroughBufferSizeInBytes(@com.google.android.exoplayer2.C.Encodingint)">
<a id="getPassthroughBufferSizeInBytes(@com.google.android.exoplayer2.C.Encodingint,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPassthroughBufferSizeInBytes</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;getPassthroughBufferSizeInBytes&#8203;(@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding)</pre>
<pre class="methodSignature">protected&nbsp;int&nbsp;getPassthroughBufferSizeInBytes&#8203;(@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
int&nbsp;bitrate)</pre>
<div class="block">Returns the buffer size for passthrough playback.</div>
</li>
</ul>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":9,"i1":9};
var data = {"i0":9,"i1":9,"i2":9,"i3":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -154,6 +154,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_BYTES_PER_SECOND">MAX_BYTES_PER_SECOND</a></span></code></th>
<td class="colLast">
<div class="block">Maximum achievable Opus bitrate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAMPLE_RATE">SAMPLE_RATE</a></span></code></th>
<td class="colLast">
<div class="block">Opus streams are always 48000 Hz.</div>
@ -191,6 +198,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Parses the channel count from an Opus Identification Header.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPacketDurationUs(byte%5B%5D)">getPacketDurationUs</a></span>&#8203;(byte[]&nbsp;buffer)</code></th>
<td class="colLast">
<div class="block">Returns the duration of the given audio packet.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parsePacketAudioSampleCount(java.nio.ByteBuffer)">parsePacketAudioSampleCount</a></span>&#8203;(<a href="https://developer.android.com/reference/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="externalLink" target="_top">ByteBuffer</a>&nbsp;buffer)</code></th>
<td class="colLast">
<div class="block">Returns the number of audio samples in the given audio packet.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -218,7 +239,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="SAMPLE_RATE">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>SAMPLE_RATE</h4>
<pre>public static final&nbsp;int SAMPLE_RATE</pre>
@ -229,6 +250,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl>
</li>
</ul>
<a id="MAX_BYTES_PER_SECOND">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MAX_BYTES_PER_SECOND</h4>
<pre>public static final&nbsp;int MAX_BYTES_PER_SECOND</pre>
<div class="block">Maximum achievable Opus bitrate.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#com.google.android.exoplayer2.audio.OpusUtil.MAX_BYTES_PER_SECOND">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
@ -258,7 +293,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="buildInitializationData(byte[])">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>buildInitializationData</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink" target="_top">List</a>&lt;byte[]&gt;&nbsp;buildInitializationData&#8203;(byte[]&nbsp;header)</pre>
@ -271,6 +306,40 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl>
</li>
</ul>
<a id="parsePacketAudioSampleCount(java.nio.ByteBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parsePacketAudioSampleCount</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;parsePacketAudioSampleCount&#8203;(<a href="https://developer.android.com/reference/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="externalLink" target="_top">ByteBuffer</a>&nbsp;buffer)</pre>
<div class="block">Returns the number of audio samples in the given audio packet.
<p>The buffer's position is not modified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The audio packet.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the number of audio samples in the packet.</dd>
</dl>
</li>
</ul>
<a id="getPacketDurationUs(byte[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPacketDurationUs</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getPacketDurationUs&#8203;(byte[]&nbsp;buffer)</pre>
<div class="block">Returns the duration of the given audio packet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The audio packet.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the duration of the given audio packet, in microseconds.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -499,7 +499,7 @@ extends <a href="../../BasePlayer.html" title="class in com.google.android.exopl
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.State int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackState()">getPlaybackState</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
@ -669,10 +669,12 @@ extends <a href="../../BasePlayer.html" title="class in com.google.android.exopl
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs,
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</code></th>
<td class="colLast">
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<div class="block">Seeks to a position in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
@ -694,7 +696,7 @@ extends <a href="../../BasePlayer.html" title="class in com.google.android.exopl
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i58" class="altColor">
@ -703,7 +705,7 @@ extends <a href="../../BasePlayer.html" title="class in com.google.android.exopl
int&nbsp;startIndex,
long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
@ -813,7 +815,7 @@ extends <a href="../../BasePlayer.html" title="class in com.google.android.exopl
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="../../BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="../../BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="../../BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="../../BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../../BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="../../BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="../../BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="../../BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="../../BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="../../BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../../BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../../BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="../../BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../../BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="../../BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../../BasePlayer.html#hasNext()">hasNext</a>, <a href="../../BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="../../BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="../../BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="../../BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="../../BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="../../BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="../../BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="../../BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="../../BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="../../BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="../../BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="../../BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="../../BasePlayer.html#isPlaying()">isPlaying</a>, <a href="../../BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../../BasePlayer.html#next()">next</a>, <a href="../../BasePlayer.html#pause()">pause</a>, <a href="../../BasePlayer.html#play()">play</a>, <a href="../../BasePlayer.html#previous()">previous</a>, <a href="../../BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../../BasePlayer.html#repeatCurrentMediaItem()">repeatCurrentMediaItem</a>, <a href="../../BasePlayer.html#seekBack()">seekBack</a>, <a href="../../BasePlayer.html#seekForward()">seekForward</a>, <a href="../../BasePlayer.html#seekTo(long)">seekTo</a>, <a href="../../BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#seekToNext()">seekToNext</a>, <a href="../../BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="../../BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="../../BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="../../BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="../../BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="../../BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
<code><a href="../../BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../../BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="../../BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="../../BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="../../BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../../BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="../../BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="../../BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="../../BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="../../BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="../../BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../../BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../../BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="../../BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../../BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="../../BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../../BasePlayer.html#hasNext()">hasNext</a>, <a href="../../BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="../../BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="../../BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="../../BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="../../BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="../../BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="../../BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="../../BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="../../BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="../../BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="../../BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="../../BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="../../BasePlayer.html#isPlaying()">isPlaying</a>, <a href="../../BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../../BasePlayer.html#next()">next</a>, <a href="../../BasePlayer.html#pause()">pause</a>, <a href="../../BasePlayer.html#play()">play</a>, <a href="../../BasePlayer.html#previous()">previous</a>, <a href="../../BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../../BasePlayer.html#seekBack()">seekBack</a>, <a href="../../BasePlayer.html#seekForward()">seekForward</a>, <a href="../../BasePlayer.html#seekTo(int,long)">seekTo</a>, <a href="../../BasePlayer.html#seekTo(long)">seekTo</a>, <a href="../../BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="../../BasePlayer.html#seekToNext()">seekToNext</a>, <a href="../../BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="../../BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="../../BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="../../BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="../../BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="../../BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="../../BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -1012,7 +1014,9 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;getApplicationLooper()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getApplicationLooper()">Player</a></code></span></div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the application thread that's used to access the
player and on which player events are received.</div>
player and on which player events are received.
<p>This method can be called from any thread.</div>
</li>
</ul>
<a id="addListener(com.google.android.exoplayer2.Player.Listener)">
@ -1025,7 +1029,9 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">Player</a></code></span></div>
<div class="block">Registers a listener to receive all events from the player.
<p>The listener's methods will be called on the thread associated with <a href="../../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
<p>The listener's methods will be called on the thread associated with <a href="../../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
@ -1057,10 +1063,12 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaItems&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setMediaItems(java.util.List,boolean)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position in
the first <a href="../../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>. If false, playback will start from the position defined
by <a href="../../Player.html#getCurrentMediaItemIndex()"><code>Player.getCurrentMediaItemIndex()</code></a> and <a href="../../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</dd>
@ -1077,10 +1085,12 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
int&nbsp;startIndex,
long&nbsp;startPositionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setMediaItems(java.util.List,int,long)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>startIndex</code> - The <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> index to start playback from. If <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>
is passed, the current position is not reset.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from. If <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> is passed, the default position of the given <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> is used. In
@ -1098,12 +1108,14 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaItems&#8203;(int&nbsp;index,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#addMediaItems(int,java.util.List)">Player</a></code></span></div>
<div class="block">Adds a list of media items at the given index of the playlist.</div>
<div class="block">Adds a list of media items at the given index of the playlist.
<p>This method must only be called if <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media items. If the index is larger than the size of
the playlist, the media items are added to the end of the playlist.</dd>
<dd><code>mediaItems</code> - The <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
<dd><code>mediaItems</code> - The <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> to add.</dd>
</dl>
</li>
</ul>
@ -1117,11 +1129,15 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
int&nbsp;toIndex,
int&nbsp;newIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#moveMediaItems(int,int,int)">Player</a></code></span></div>
<div class="block">Moves the media item range to the new index.</div>
<div class="block">Moves the media item range to the new index.
<p>This method must only be called if <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The start of the range to move.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive).</dd>
<dd><code>fromIndex</code> - The start of the range to move. If the index is larger than the size of the
playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive). If the index is
larger than the size of the playlist, items up to the end of the playlist are moved.</dd>
<dd><code>newIndex</code> - The new index of the first media item of the range. If the new index is larger
than the size of the remaining playlist after removing the range, the range is moved to the
end of the playlist.</dd>
@ -1137,12 +1153,15 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<pre class="methodSignature">public&nbsp;void&nbsp;removeMediaItems&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#removeMediaItems(int,int)">Player</a></code></span></div>
<div class="block">Removes a range of media items from the playlist.</div>
<div class="block">Removes a range of media items from the playlist.
<p>This method must only be called if <a href="../../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The index at which to start removing media items.</dd>
<dd><code>fromIndex</code> - The index at which to start removing media items. If the index is larger than
the size of the playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The index of the first item to be kept (exclusive). If the index is larger than
the size of the playlist, media items to the end of the playlist are removed.</dd>
the size of the playlist, media items up to the end of the playlist are removed.</dd>
</dl>
</li>
</ul>
@ -1157,13 +1176,7 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<div class="block">Returns the player's currently available <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.
<p>The returned <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a> are not updated when available commands change. Use <a href="../../Player.Listener.html#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)"><code>Player.Listener.onAvailableCommandsChanged(Commands)</code></a> to get an update when the available commands
change.
<p>Executing a command that is not available (for example, calling <a href="../../Player.html#seekToNextMediaItem()"><code>Player.seekToNextMediaItem()</code></a> if <a href="../../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a> is unavailable) will
neither throw an exception nor generate a <a href="../../Player.html#getPlayerError()"><code>Player.getPlayerError()</code></a> player error}.
<p><a href="../../Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a> and <a href="../../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a>
are unavailable if there is no such <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
change.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The currently available <a href="../../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</dd>
@ -1182,6 +1195,8 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#prepare()">Player</a></code></span></div>
<div class="block">Prepares the player.
<p>This method must only be called if <a href="../../Player.html#COMMAND_PREPARE"><code>Player.COMMAND_PREPARE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.
<p>This will move the player out of <a href="../../Player.html#STATE_IDLE"><code>idle state</code></a> and the player will start
loading media and acquire resources needed for playback.</div>
</li>
@ -1195,10 +1210,10 @@ public&nbsp;com.google.android.gms.cast.MediaQueueItem&nbsp;getItem&#8203;(int&n
<pre class="methodSignature"><a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">@State</a>
public&nbsp;@com.google.android.exoplayer2.Player.State int&nbsp;getPlaybackState()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlaybackState()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a>.</dd>
<dd>The current <a href="../../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a></dd>
</dl>
@ -1217,7 +1232,7 @@ public&nbsp;@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int&
true</code>, or <a href="../../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE"><code>Player.PLAYBACK_SUPPRESSION_REASON_NONE</code></a> if playback is not suppressed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>playback suppression reason</code></a>.</dd>
<dd>The current <a href="../../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlaybackSuppressionReason</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onPlaybackSuppressionReasonChanged(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)"><code>Player.Listener.onPlaybackSuppressionReasonChanged(int)</code></a></dd>
</dl>
@ -1256,7 +1271,9 @@ public&nbsp;<a href="../../PlaybackException.html" title="class in com.google.an
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setPlayWhenReady(boolean)">Player</a></code></span></div>
<div class="block">Sets whether playback should proceed when <a href="../../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.
<p>If the player is already in the ready state then this method pauses and resumes playback.</div>
<p>If the player is already in the ready state then this method pauses and resumes playback.
<p>This method must only be called if <a href="../../Player.html#COMMAND_PLAY_PAUSE"><code>Player.COMMAND_PLAY_PAUSE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback should proceed when ready.</dd>
@ -1280,21 +1297,28 @@ public&nbsp;<a href="../../PlaybackException.html" title="class in com.google.an
</dl>
</li>
</ul>
<a id="seekTo(int,long)">
<a id="seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekTo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#seekTo(int,long)">Player</a></code></span></div>
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
long&nbsp;positionMs,
<a href="../../Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">BasePlayer</a></code></span></div>
<div class="block">Seeks to a position in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></code>&nbsp;in class&nbsp;<code><a href="../../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItemIndex</code> - The index of the <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>, or <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a>
to seek to the media item's default position.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in milliseconds, or
<a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to seek to the media item's default position.</dd>
<dd><code>seekCommand</code> - The <a href="../../Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> used to trigger the seek.</dd>
<dd><code>isRepeatingCurrentItem</code> - Whether this seeks repeats the current item.</dd>
</dl>
</li>
</ul>
@ -1381,7 +1405,9 @@ public&nbsp;<a href="../../PlaybackException.html" title="class in com.google.an
still be called on the player if it's no longer required.
<p>Calling this method does not clear the playlist, reset the playback position or the playback
error.</div>
error.
<p>This method must only be called if <a href="../../Player.html#COMMAND_STOP"><code>Player.COMMAND_STOP</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="stop(boolean)">
@ -1423,7 +1449,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
player to the default, which means there is no speed or pitch adjustment.
<p>Playback parameters changes may cause the player to buffer. <a href="../../Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.Listener.onPlaybackParametersChanged(PlaybackParameters)</code></a> will be called whenever the currently
active playback parameters change.</div>
active playback parameters change.
<p>This method must only be called if <a href="../../Player.html#COMMAND_SET_SPEED_AND_PITCH"><code>Player.COMMAND_SET_SPEED_AND_PITCH</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters.</dd>
@ -1439,7 +1467,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;setRepeatMode&#8203;(<a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">Player</a></code></span></div>
<div class="block">Sets the <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
<div class="block">Sets the <a href="../../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.
<p>This method must only be called if <a href="../../Player.html#COMMAND_SET_REPEAT_MODE"><code>Player.COMMAND_SET_REPEAT_MODE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>repeatMode</code> - The repeat mode.</dd>
@ -1472,7 +1502,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>setShuffleModeEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setShuffleModeEnabled&#8203;(boolean&nbsp;shuffleModeEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#setShuffleModeEnabled(boolean)">Player</a></code></span></div>
<div class="block">Sets whether shuffling of media items is enabled.</div>
<div class="block">Sets whether shuffling of media items is enabled.
<p>This method must only be called if <a href="../../Player.html#COMMAND_SET_SHUFFLE_MODE"><code>Player.COMMAND_SET_SHUFFLE_MODE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling is enabled.</dd>
@ -1502,7 +1534,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>getCurrentTracks</h4>
<pre class="methodSignature">public&nbsp;<a href="../../Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;getCurrentTracks()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentTracks()">Player</a></code></span></div>
<div class="block">Returns the current tracks.</div>
<div class="block">Returns the current tracks.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_TRACKS"><code>Player.COMMAND_GET_TRACKS</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.Tracks)"><code>Player.Listener.onTracksChanged(Tracks)</code></a></dd>
@ -1546,7 +1580,10 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
.buildUpon()
.setMaxVideoSizeSd()
.build())
</code></pre></div>
</code></pre>
<p>This method must only be called if <a href="../../Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS"><code>Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS</code></a> is
<a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getMediaMetadata()">
@ -1563,7 +1600,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<p>This <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="../../MediaItem.html#mediaMetadata"><code>MediaItem
metadata</code></a>, the static metadata in the media's <a href="../../Format.html#metadata"><code>Format</code></a>, and any timed
metadata that has been parsed from the media and output via <a href="../../Player.Listener.html#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>Player.Listener.onMetadata(Metadata)</code></a>. If a field is populated in the <a href="../../MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a>,
it will be prioritised above the same field coming from static or timed metadata.</div>
it will be prioritised above the same field coming from static or timed metadata.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getMediaMetadataInternal()">
@ -1583,7 +1622,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>getPlaylistMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;getPlaylistMetadata()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getPlaylistMetadata()">Player</a></code></span></div>
<div class="block">Returns the playlist <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="../../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="../../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.</div>
<div class="block">Returns the playlist <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="../../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="../../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">
@ -1604,7 +1645,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>getCurrentTimeline</h4>
<pre class="methodSignature">public&nbsp;<a href="../../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;getCurrentTimeline()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentTimeline()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.</div>
<div class="block">Returns the current <a href="../../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)"><code>Player.Listener.onTimelineChanged(Timeline, int)</code></a></dd>
@ -1619,7 +1662,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>getCurrentPeriodIndex</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentPeriodIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentPeriodIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the period currently being played.</div>
<div class="block">Returns the index of the period currently being played.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentMediaItemIndex()">
@ -1631,7 +1676,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentMediaItemIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentMediaItemIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the current <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in the <a href="../../Player.html#getCurrentTimeline()"><code>timeline</code></a>, or the prospective index if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is
empty.</div>
empty.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getDuration()">
@ -1643,7 +1690,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;long&nbsp;getDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getDuration()">Player</a></code></span></div>
<div class="block">Returns the duration of the current content or ad in milliseconds, or <a href="../../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if
the duration is not known.</div>
the duration is not known.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentPosition()">
@ -1655,7 +1704,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;long&nbsp;getCurrentPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentPosition()">Player</a></code></span></div>
<div class="block">Returns the playback position in the current content or ad, in milliseconds, or the prospective
position in milliseconds if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.</div>
position in milliseconds if the <a href="../../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getBufferedPosition()">
@ -1667,7 +1718,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;long&nbsp;getBufferedPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getBufferedPosition()">Player</a></code></span></div>
<div class="block">Returns an estimate of the position in the current content or ad up to which data is buffered,
in milliseconds.</div>
in milliseconds.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getTotalBufferedDuration()">
@ -1679,7 +1732,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;long&nbsp;getTotalBufferedDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getTotalBufferedDuration()">Player</a></code></span></div>
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.
This includes pre-buffered data for subsequent ads and <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2"><code>media items</code></a>.</div>
This includes pre-buffered data for subsequent ads and <a href="../../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="isPlayingAd()">
@ -1690,7 +1745,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<h4>isPlayingAd</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isPlayingAd()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#isPlayingAd()">Player</a></code></span></div>
<div class="block">Returns whether the player is currently playing an ad.</div>
<div class="block">Returns whether the player is currently playing an ad.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentAdGroupIndex()">
@ -1702,7 +1759,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdGroupIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentAdGroupIndex()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad group in the period
currently being played. Returns <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
currently being played. Returns <a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentAdIndexInAdGroup()">
@ -1714,7 +1773,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdIndexInAdGroup()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getCurrentAdIndexInAdGroup()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad in its ad group. Returns
<a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
<a href="../../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="isLoading()">
@ -1744,7 +1805,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getContentPosition()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns the content position that will be
played once all ads in the ad group have finished playing, in milliseconds. If there is no ad
playing, the returned position is the same as that returned by <a href="../../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</div>
playing, the returned position is the same as that returned by <a href="../../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getContentBufferedPosition()">
@ -1757,7 +1820,9 @@ public&nbsp;@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;getRepeatM
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../Player.html#getContentBufferedPosition()">Player</a></code></span></div>
<div class="block">If <a href="../../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns an estimate of the content position in
the current content up to which data is buffered, in milliseconds. If there is no ad playing,
the returned position is the same as that returned by <a href="../../Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.</div>
the returned position is the same as that returned by <a href="../../Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.
<p>This method must only be called if <a href="../../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getAudioAttributes()">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -217,6 +217,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFocusSkipButtonWhenAvailable(boolean)">setFocusSkipButtonWhenAvailable</a></span>&#8203;(boolean&nbsp;focusSkipButtonWhenAvailable)</code></th>
<td class="colLast">
<div class="block">Sets whether to focus the skip button (when available) on Android TV devices.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setImaSdkSettings(com.google.ads.interactivemedia.v3.api.ImaSdkSettings)">setImaSdkSettings</a></span>&#8203;(com.google.ads.interactivemedia.v3.api.ImaSdkSettings&nbsp;imaSdkSettings)</code></th>
<td class="colLast">
<div class="block">Sets the IMA SDK settings.</div>
@ -282,7 +289,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
public&nbsp;<a href="ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a>&nbsp;setImaSdkSettings&#8203;(com.google.ads.interactivemedia.v3.api.ImaSdkSettings&nbsp;imaSdkSettings)</pre>
<div class="block">Sets the IMA SDK settings.
<p>If this method is not called the default settings will be used.</div>
<p>If this method is not called, the default settings will be used with the language set to <a href="../../util/Util.html#getSystemLanguageCodes()">the preferred system language</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>imaSdkSettings</code> - The <code>ImaSdkSettings</code>.</dd>
@ -363,6 +370,27 @@ public&nbsp;<a href="ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html"
</dl>
</li>
</ul>
<a id="setFocusSkipButtonWhenAvailable(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFocusSkipButtonWhenAvailable</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a>&nbsp;setFocusSkipButtonWhenAvailable&#8203;(boolean&nbsp;focusSkipButtonWhenAvailable)</pre>
<div class="block">Sets whether to focus the skip button (when available) on Android TV devices. The default
setting is <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>focusSkipButtonWhenAvailable</code> - Whether to focus the skip button (when available) on
Android TV devices.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder, for convenience.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>AdsRenderingSettings.setFocusSkipButtonWhenAvailable(boolean)</code></dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10};
var data = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -189,13 +189,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#focusSkipButton()">focusSkipButton</a></span>()</code></th>
<td class="colLast">
<div class="block">Puts the focus on the skip button, if a skip button is present and an ad is playing.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="ImaServerSideAdInsertionMediaSource.AdsLoader.State.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases resources.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayer(com.google.android.exoplayer2.Player)">setPlayer</a></span>&#8203;(<a href="../../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player)</code></th>
<td class="colLast">
@ -239,6 +246,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
player.</div>
</li>
</ul>
<a id="focusSkipButton()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>focusSkipButton</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;focusSkipButton()</pre>
<div class="block">Puts the focus on the skip button, if a skip button is present and an ad is playing.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>BaseManager.focus()</code></dd>
</dl>
</li>
</ul>
<a id="release()">
<!-- -->
</a>

View File

@ -256,7 +256,7 @@ implements <a href="https://developer.android.com/reference/java/lang/Runnable.h
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(long)">seekTo</a></span>&#8203;(long&nbsp;positionMs)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(long)">seekTo</a></span>&#8203;(long&nbsp;positionInMs)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
@ -268,7 +268,7 @@ implements <a href="https://developer.android.com/reference/java/lang/Runnable.h
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProgressUpdatingEnabled(boolean)">setProgressUpdatingEnabled</a></span>&#8203;(boolean&nbsp;enabled)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProgressUpdatingEnabled(boolean)">setProgressUpdatingEnabled</a></span>&#8203;(boolean&nbsp;enable)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
@ -379,7 +379,7 @@ implements <a href="https://developer.android.com/reference/java/lang/Runnable.h
<ul class="blockList">
<li class="blockList">
<h4>setProgressUpdatingEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setProgressUpdatingEnabled&#8203;(boolean&nbsp;enabled)</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;setProgressUpdatingEnabled&#8203;(boolean&nbsp;enable)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>setProgressUpdatingEnabled</code>&nbsp;in class&nbsp;<code>androidx.leanback.media.PlayerAdapter</code></dd>
@ -457,7 +457,7 @@ implements <a href="https://developer.android.com/reference/java/lang/Runnable.h
<ul class="blockList">
<li class="blockList">
<h4>seekTo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(long&nbsp;positionMs)</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(long&nbsp;positionInMs)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>seekTo</code>&nbsp;in class&nbsp;<code>androidx.leanback.media.PlayerAdapter</code></dd>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -326,6 +326,14 @@ implements <a href="ExtractorsFactory.html" title="interface in com.google.andro
by the factory.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorsFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTsSubtitleFormats(java.util.List)">setTsSubtitleFormats</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Format.html" title="class in com.google.android.exoplayer2" target="_top">Format</a>&gt;&nbsp;subtitleFormats)</code></th>
<td class="colLast">
<div class="block">Sets a list of subtitle formats to pass to the <a href="ts/DefaultTsPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>DefaultTsPayloadReaderFactory</code></a> used by
<a href="ts/TsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>TsExtractor</code></a> instances created by the factory.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -594,6 +602,26 @@ public&nbsp;<a href="DefaultExtractorsFactory.html" title="class in com.google.a
</dl>
</li>
</ul>
<a id="setTsSubtitleFormats(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTsSubtitleFormats</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorsFactory</a>&nbsp;setTsSubtitleFormats&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Format.html" title="class in com.google.android.exoplayer2" target="_top">Format</a>&gt;&nbsp;subtitleFormats)</pre>
<div class="block">Sets a list of subtitle formats to pass to the <a href="ts/DefaultTsPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>DefaultTsPayloadReaderFactory</code></a> used by
<a href="ts/TsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>TsExtractor</code></a> instances created by the factory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subtitleFormats</code> - The subtitle formats.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The factory, for convenience.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ts/DefaultTsPayloadReaderFactory.html#%3Cinit%3E(@com.google.android.exoplayer2.extractor.ts.DefaultTsPayloadReaderFactory.Flagsint,java.util.List)"><code>DefaultTsPayloadReaderFactory(int, List)</code></a></dd>
</dl>
</li>
</ul>
<a id="setTsExtractorTimestampSearchBytes(int)">
<!-- -->
</a>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":42,"i10":10,"i11":9,"i12":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":42,"i11":10,"i12":9,"i13":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -302,19 +302,27 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFormatSupported(com.google.android.exoplayer2.Format)">isFormatSupported</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFormatFunctionallySupported(com.google.android.exoplayer2.Format)">isFormatFunctionallySupported</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
<div class="block">Returns whether the decoder may support decoding the given <code>format</code>.</div>
<div class="block">Returns whether the decoder may functionally support decoding the given <code>format</code>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFormatSupported(com.google.android.exoplayer2.Format)">isFormatSupported</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
<div class="block">Returns whether the decoder may support decoding the given <code>format</code> both functionally and
performantly.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHdr10PlusOutOfBandMetadataSupported()">isHdr10PlusOutOfBandMetadataSupported</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the codec handles HDR10+ out-of-band metadata.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSeamlessAdaptationSupported(com.google.android.exoplayer2.Format)">isSeamlessAdaptationSupported</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
@ -322,7 +330,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
format when the codec is configured to play media in the specified <code>format</code>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSeamlessAdaptationSupported(com.google.android.exoplayer2.Format,com.google.android.exoplayer2.Format,boolean)">isSeamlessAdaptationSupported</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;oldFormat,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;newFormat,
@ -333,7 +341,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</div>
</td>
</tr>
<tr id="i10" class="altColor">
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isVideoSizeAndRateSupportedV21(int,int,double)">isVideoSizeAndRateSupportedV21</a></span>&#8203;(int&nbsp;width,
int&nbsp;height,
@ -342,7 +350,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Whether the decoder supports video with a given width, height and frame rate.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="MediaCodecInfo.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecInfo</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance(java.lang.String,java.lang.String,java.lang.String,android.media.MediaCodecInfo.CodecCapabilities,boolean,boolean,boolean,boolean,boolean)">newInstance</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;name,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType,
@ -357,7 +365,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Creates an instance.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
@ -647,7 +655,8 @@ public final&nbsp;<a href="https://developer.android.com/reference/android/media
<h4>isFormatSupported</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFormatSupported&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)
throws <a href="MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecUtil.DecoderQueryException</a></pre>
<div class="block">Returns whether the decoder may support decoding the given <code>format</code>.</div>
<div class="block">Returns whether the decoder may support decoding the given <code>format</code> both functionally and
performantly.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>format</code> - The input media format.</dd>
@ -658,6 +667,22 @@ public final&nbsp;<a href="https://developer.android.com/reference/android/media
</dl>
</li>
</ul>
<a id="isFormatFunctionallySupported(com.google.android.exoplayer2.Format)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFormatFunctionallySupported</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFormatFunctionallySupported&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</pre>
<div class="block">Returns whether the decoder may functionally support decoding the given <code>format</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>format</code> - The input media format.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the decoder may functionally support decoding the given <code>format</code>.</dd>
</dl>
</li>
</ul>
<a id="isHdr10PlusOutOfBandMetadataSupported()">
<!-- -->
</a>

View File

@ -221,8 +221,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDecoderInfosSortedByFormatSupport(java.util.List,com.google.android.exoplayer2.Format)">getDecoderInfosSortedByFormatSupport</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaCodecInfo.html" title="class in com.google.android.exoplayer2.mediacodec" target="_top">MediaCodecInfo</a>&gt;&nbsp;decoderInfos,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
<div class="block">Returns a copy of the provided decoder list sorted such that decoders with format support are
listed first.</div>
<div class="block">Returns a copy of the provided decoder list sorted such that decoders with functional format
support are listed first.</div>
</td>
</tr>
<tr id="i6" class="altColor">
@ -383,8 +383,8 @@ public static&nbsp;<a href="MediaCodecInfo.html" title="class in com.google.andr
<pre class="methodSignature">@CheckResult
public static&nbsp;<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaCodecInfo.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecInfo</a>&gt;&nbsp;getDecoderInfosSortedByFormatSupport&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaCodecInfo.html" title="class in com.google.android.exoplayer2.mediacodec" target="_top">MediaCodecInfo</a>&gt;&nbsp;decoderInfos,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</pre>
<div class="block">Returns a copy of the provided decoder list sorted such that decoders with format support are
listed first. The returned list is modifiable for convenience.</div>
<div class="block">Returns a copy of the provided decoder list sorted such that decoders with functional format
support are listed first. The returned list is modifiable for convenience.</div>
</li>
</ul>
<a id="maxH264DecodableFrameSize()">

View File

@ -209,7 +209,8 @@ extends <a href="https://developer.android.com/reference/android/os/Parcelable.h
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
</table>
@ -266,10 +267,8 @@ default&nbsp;byte[]&nbsp;getWrappedMetadataBytes()</pre>
<li class="blockList">
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block">Updates the <a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>builder</code> - The builder to be updated.</dd>

View File

@ -314,7 +314,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
@ -492,10 +493,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata">Metadata.Entry</a></code></dd>

View File

@ -288,7 +288,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
@ -424,10 +425,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata">Metadata.Entry</a></code></dd>

View File

@ -311,7 +311,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
@ -528,10 +529,8 @@ public static&nbsp;<a href="IcyHeaders.html" title="class in com.google.android.
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata">Metadata.Entry</a></code></dd>

View File

@ -270,7 +270,8 @@ implements <a href="../Metadata.Entry.html" title="interface in com.google.andro
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
@ -405,10 +406,8 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></code>&nbsp;in interface&nbsp;<code><a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata">Metadata.Entry</a></code></dd>

View File

@ -278,7 +278,8 @@ extends <a href="Id3Frame.html" title="class in com.google.android.exoplayer2.me
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
@ -430,10 +431,8 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type-specific values stored in this <code>
Entry</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>builder</code> - The builder to be updated.</dd>

View File

@ -191,7 +191,18 @@ extends <a href="Id3Frame.html" title="class in com.google.android.exoplayer2.me
<tr class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value">value</a></span></code></th>
<td class="colLast">&nbsp;</td>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use the first element of <a href="#values"><code>values</code></a> instead.</div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values">values</a></span></code></th>
<td class="colLast">
<div class="block">The text values of this frame.</div>
</td>
</tr>
</table>
<ul class="blockList">
@ -228,6 +239,17 @@ extends <a href="Id3Frame.html" title="class in com.google.android.exoplayer2.me
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)">TextInformationFrame</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;description,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <code>TextInformationFrame(String id, String description, String[] values</code>
instead</div>
</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.List)">TextInformationFrame</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;description,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;values)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
@ -262,7 +284,8 @@ extends <a href="Id3Frame.html" title="class in com.google.android.exoplayer2.me
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">populateMediaMetadata</a></span>&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.</div>
<div class="block">Uses the first element in <a href="#values"><code>values</code></a> to set the relevant field in <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>
(as determined by <a href="Id3Frame.html#id"><code>Id3Frame.id</code></a>).</div>
</td>
</tr>
<tr id="i3" class="rowColor">
@ -330,7 +353,21 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<ul class="blockList">
<li class="blockList">
<h4>value</h4>
<pre>public final&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a> value</pre>
<pre><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public final&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a> value</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use the first element of <a href="#values"><code>values</code></a> instead.</div>
</div>
</li>
</ul>
<a id="values">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre>public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt; values</pre>
<div class="block">The text values of this frame. Will always have at least one element.</div>
</li>
</ul>
<a id="CREATOR">
@ -352,16 +389,35 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TextInformationFrame</h4>
<pre>public&nbsp;TextInformationFrame&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;description,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;values)</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TextInformationFrame</h4>
<pre>public&nbsp;TextInformationFrame&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
<pre><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@InlineMe(replacement="this(id, description, ImmutableList.of(value))",
imports="com.google.common.collect.ImmutableList")
public&nbsp;TextInformationFrame&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;description,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <code>TextInformationFrame(String id, String description, String[] values</code>
instead</div>
</div>
</li>
</ul>
</li>
@ -381,11 +437,8 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<li class="blockList">
<h4>populateMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;populateMediaMetadata&#8203;(<a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;builder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)">Metadata.Entry</a></code></span></div>
<div class="block">Updates the <a href="../../MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata.Builder</code></a> with the type specific values stored in this Entry.
<p>The order of the <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> objects in the <a href="../Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a> matters. If two <a href="../Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> entries attempt to populate the same <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> field, then the last one in
the list is used.</div>
<div class="block">Uses the first element in <a href="#values"><code>values</code></a> to set the relevant field in <a href="../../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>
(as determined by <a href="Id3Frame.html#id"><code>Id3Frame.id</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>builder</code> - The builder to be updated.</dd>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":6,"i9":6,"i10":6,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9};
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":6,"i10":6,"i11":6,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -150,7 +150,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr>
<pre>public abstract class <span class="typeNameLabel">DownloadService</span>
extends <a href="https://developer.android.com/reference/android/app/Service.html" title="class or interface in android.app" class="externalLink" target="_top">Service</a></pre>
<div class="block">A <a href="https://developer.android.com/reference/android/app/Service.html" title="class or interface in android.app" class="externalLink" target="_top"><code>Service</code></a> for downloading media.</div>
<div class="block">A <a href="https://developer.android.com/reference/android/app/Service.html" title="class or interface in android.app" class="externalLink" target="_top"><code>Service</code></a> for downloading media.
<p>Apps with target SDK 33 and greater need to add the <code>
android.permission.POST_NOTIFICATIONS</code> permission to the manifest and request the permission at
runtime before starting downloads. Without that permission granted by the user, notifications
posted by this service are not displayed. See <a href="https://developer.android.com/develop/ui/views/notifications/notification-permission">the
official UI guide</a> for more detailed information.</div>
</li>
</ul>
</div>
@ -453,13 +459,21 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearDownloadManagerHelpers()">clearDownloadManagerHelpers</a></span>()</code></th>
<td class="colLast">
<div class="block">Clear all download manager helpers before restarting the
service.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="DownloadManager.html" title="class in com.google.android.exoplayer2.offline">DownloadManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDownloadManager()">getDownloadManager</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a <a href="DownloadManager.html" title="class in com.google.android.exoplayer2.offline"><code>DownloadManager</code></a> to be used to downloaded content.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected abstract <a href="https://developer.android.com/reference/android/app/Notification.html" title="class or interface in android.app" class="externalLink" target="_top">Notification</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getForegroundNotification(java.util.List,@com.google.android.exoplayer2.scheduler.Requirements.RequirementFlagsint)">getForegroundNotification</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Download.html" title="class in com.google.android.exoplayer2.offline" target="_top">Download</a>&gt;&nbsp;downloads,
@com.google.android.exoplayer2.scheduler.Requirements.RequirementFlags int&nbsp;notMetRequirements)</code></th>
@ -467,7 +481,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Returns a notification to be displayed when this service running in the foreground.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../scheduler/Scheduler.html" title="interface in com.google.android.exoplayer2.scheduler">Scheduler</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getScheduler()">getScheduler</a></span>()</code></th>
<td class="colLast">
@ -475,43 +489,43 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
are met.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invalidateForegroundNotification()">invalidateForegroundNotification</a></span>()</code></th>
<td class="colLast">
<div class="block">Invalidates the current foreground notification and causes <a href="#getForegroundNotification(java.util.List,@com.google.android.exoplayer2.scheduler.Requirements.RequirementFlagsint)"><code>getForegroundNotification(List, int)</code></a> to be invoked again if the service isn't stopped.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/IBinder.html" title="class or interface in android.os" class="externalLink" target="_top">IBinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onBind(android.content.Intent)">onBind</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a>&nbsp;intent)</code></th>
<td class="colLast">
<div class="block">Throws <a href="https://developer.android.com/reference/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>UnsupportedOperationException</code></a> because this service is not designed to be bound.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onCreate()">onCreate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDestroy()">onDestroy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStartCommand(android.content.Intent,int,int)">onStartCommand</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a>&nbsp;intent,
int&nbsp;flags,
int&nbsp;startId)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTaskRemoved(android.content.Intent)">onTaskRemoved</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a>&nbsp;rootIntent)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<tr id="i18" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendAddDownload(android.content.Context,java.lang.Class,com.google.android.exoplayer2.offline.DownloadRequest,boolean)">sendAddDownload</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -521,7 +535,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and adds a new download.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendAddDownload(android.content.Context,java.lang.Class,com.google.android.exoplayer2.offline.DownloadRequest,int,boolean)">sendAddDownload</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -532,7 +546,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and adds a new download.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<tr id="i20" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPauseDownloads(android.content.Context,java.lang.Class,boolean)">sendPauseDownloads</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -541,7 +555,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and pauses all downloads.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendRemoveAllDownloads(android.content.Context,java.lang.Class,boolean)">sendRemoveAllDownloads</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -550,7 +564,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and removes all downloads.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<tr id="i22" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendRemoveDownload(android.content.Context,java.lang.Class,java.lang.String,boolean)">sendRemoveDownload</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -560,7 +574,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and removes a download.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendResumeDownloads(android.content.Context,java.lang.Class,boolean)">sendResumeDownloads</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -569,7 +583,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and resumes all downloads.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSetRequirements(android.content.Context,java.lang.Class,com.google.android.exoplayer2.scheduler.Requirements,boolean)">sendSetRequirements</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -580,7 +594,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
downloads to progress.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendSetStopReason(android.content.Context,java.lang.Class,java.lang.String,int,boolean)">sendSetStopReason</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz,
@ -591,7 +605,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts the service if not started already and sets the stop reason for one or all downloads.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(android.content.Context,java.lang.Class)">start</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz)</code></th>
@ -599,7 +613,7 @@ extends <a href="https://developer.android.com/reference/android/app/Service.htm
<div class="block">Starts a download service to resume any ongoing downloads.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startForeground(android.content.Context,java.lang.Class)">startForeground</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/Class.html" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="DownloadService.html" title="class in com.google.android.exoplayer2.offline" target="_top">DownloadService</a>&gt;&nbsp;clazz)</code></th>
@ -1395,6 +1409,20 @@ protected&nbsp;DownloadService&#8203;(int&nbsp;foregroundNotificationId,
</dl>
</li>
</ul>
<a id="clearDownloadManagerHelpers()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearDownloadManagerHelpers</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;clearDownloadManagerHelpers()</pre>
<div class="block">Clear all download manager helpers before restarting the
service.
<p>Calling this method is normally only required if an app supports downloading content for
multiple users for which different download directories should be used.</div>
</li>
</ul>
<a id="onCreate()">
<!-- -->
</a>

View File

@ -180,7 +180,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></th>
<td class="colLast">
<div class="block">Listener of all changes in the Player.</div>
<div class="block">Listener for changes in a <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.</div>
</td>
</tr>
<tr class="altColor">
@ -219,6 +219,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Builds <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> instances for use by an <a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2">SimpleBasePlayer.PositionSupplier</a></th>
<td class="colLast">
<div class="block">A supplier for a position.</div>
</td>
</tr>
</tbody>
</table>
</li>
@ -494,7 +500,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a></th>
<td class="colLast">
<div class="block">A set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<div class="block">A set of <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">commands</a>.</div>
</td>
</tr>
<tr class="altColor">
@ -506,7 +512,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></th>
<td class="colLast">
<div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</div>
<div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">events</a>.</div>
</td>
</tr>
<tr class="altColor">
@ -547,6 +553,32 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData</a></th>
<td class="colLast">
<div class="block">An immutable description of an item in the playlist, containing both static setup information
like <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> and dynamic data that is generally read from the media like the
duration.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.MediaItemData.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.MediaItemData.Builder</a></th>
<td class="colLast">
<div class="block">A builder for <a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.MediaItemData</code></a> objects.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.PeriodData.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.PeriodData</a></th>
<td class="colLast">
<div class="block">Data describing the properties of a period inside a <a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.MediaItemData</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.PeriodData.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.PeriodData.Builder</a></th>
<td class="colLast">
<div class="block">A builder for <a href="SimpleBasePlayer.PeriodData.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.PeriodData</code></a> objects.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a></th>
<td class="colLast">
<div class="block">An immutable state description of the player.</div>
@ -871,114 +903,121 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.MediaType</a></th>
<td class="colLast">
<div class="block">The type of content described by the media item.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></th>
<td class="colLast">
<div class="block">The picture type of the artwork.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2">PlaybackException.ErrorCode</a></th>
<td class="colLast">
<div class="block">Codes that identify causes of player errors.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">Player.Command</a></th>
<td class="colLast">
<div class="block">Commands that can be executed on a <code>Player</code>.</div>
<div class="block">Commands that indicate which method calls are currently permitted on a particular <code>
Player</code> instance.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a></th>
<td class="colLast">
<div class="block">Reasons for position discontinuities.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Player.Event.html" title="annotation in com.google.android.exoplayer2">Player.Event</a></th>
<td class="colLast">
<div class="block">Events that can be reported via <a href="Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></th>
<td class="colLast">
<div class="block">Reasons for media item transitions.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a></th>
<td class="colLast">
<div class="block">Reason why playback is suppressed even though <a href="Player.html#getPlayWhenReady()"><code>Player.getPlayWhenReady()</code></a> is <code>true</code>.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a></th>
<td class="colLast">
<div class="block">Reasons for <a href="Player.html#getPlayWhenReady()"><code>playWhenReady</code></a> changes.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a></th>
<td class="colLast">
<div class="block">Repeat modes for playback.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a></th>
<td class="colLast">
<div class="block">Playback state.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></th>
<td class="colLast">
<div class="block">Reasons for timeline changes.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Renderer.MessageType.html" title="annotation in com.google.android.exoplayer2">Renderer.MessageType</a></th>
<td class="colLast">
<div class="block">Represents a type of message that can be passed to a renderer.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Renderer.State.html" title="annotation in com.google.android.exoplayer2">Renderer.State</a></th>
<td class="colLast">
<div class="block">The renderer states.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a></th>
<td class="colLast">
<div class="block">Level of renderer support for adaptive format switches.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a></th>
<td class="colLast">
<div class="block">Combined renderer capabilities.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a></th>
<td class="colLast">
<div class="block">Level of decoder support.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></th>
<td class="colLast">Deprecated.
<div class="deprecationComment">Use <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> instead.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a></th>
<td class="colLast">
<div class="block">Level of renderer support for hardware acceleration.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></th>
<td class="colLast">
<div class="block">Level of renderer support for tunneling.</div>

View File

@ -179,6 +179,10 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</li>
<li class="circle">com.google.android.exoplayer2.<a href="RendererConfiguration.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">RendererConfiguration</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SeekParameters.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SeekParameters</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.MediaItemData</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.MediaItemData.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.MediaItemData.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.PeriodData.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PeriodData</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.PeriodData.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PeriodData.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.State</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.State.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleExoPlayer.Builder</span></a></li>
@ -251,6 +255,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.<a href="Renderer.WakeupListener.html" title="interface in com.google.android.exoplayer2"><span class="typeNameLink">Renderer.WakeupListener</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="RendererCapabilities.html" title="interface in com.google.android.exoplayer2"><span class="typeNameLink">RendererCapabilities</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><span class="typeNameLink">RenderersFactory</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PositionSupplier</span></a></li>
</ul>
</section>
<section role="region">
@ -289,6 +294,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.<a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">ExoPlaybackException.Type</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">ExoTimeoutException.TimeoutOperation</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.FolderType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.MediaType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.PictureType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">PlaybackException.ErrorCode</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">Player.Command</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9};
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -182,13 +182,22 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilIsLoading(com.google.android.exoplayer2.Player,boolean)">runUntilIsLoading</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
boolean&nbsp;expectedIsLoading)</code></th>
<td class="colLast">
<div class="block">Runs tasks of the main <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> until <a href="../Player.html#isLoading()" target="_top"><code>Player.isLoading()</code></a> matches the expected
value or a playback error occurs.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilPendingCommandsAreFullyHandled(com.google.android.exoplayer2.ExoPlayer)">runUntilPendingCommandsAreFullyHandled</a></span>&#8203;(<a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a>&nbsp;player)</code></th>
<td class="colLast">
<div class="block">Runs tasks of the main <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> until the player completely handled all previously issued
commands on the internal playback thread.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilPlaybackState(com.google.android.exoplayer2.Player,@com.google.android.exoplayer2.Player.Stateint)">runUntilPlaybackState</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
@com.google.android.exoplayer2.Player.State int&nbsp;expectedState)</code></th>
@ -197,7 +206,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
expected state or a playback error occurs.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilPlayWhenReady(com.google.android.exoplayer2.Player,boolean)">runUntilPlayWhenReady</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
boolean&nbsp;expectedPlayWhenReady)</code></th>
@ -206,7 +215,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
expected value or a playback error occurs.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilPositionDiscontinuity(com.google.android.exoplayer2.Player,@com.google.android.exoplayer2.Player.DiscontinuityReasonint)">runUntilPositionDiscontinuity</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
@com.google.android.exoplayer2.Player.DiscontinuityReason int&nbsp;expectedReason)</code></th>
@ -215,7 +224,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
called with the specified <a href="../Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.DiscontinuityReason</code></a> or a playback error occurs.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilRenderedFirstFrame(com.google.android.exoplayer2.ExoPlayer)">runUntilRenderedFirstFrame</a></span>&#8203;(<a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a>&nbsp;player)</code></th>
<td class="colLast">
@ -223,7 +232,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
callback is called or a playback error occurs.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilSleepingForOffload(com.google.android.exoplayer2.ExoPlayer,boolean)">runUntilSleepingForOffload</a></span>&#8203;(<a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a>&nbsp;player,
boolean&nbsp;expectedSleepForOffload)</code></th>
@ -232,14 +241,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
playback error occurs.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilTimelineChanged(com.google.android.exoplayer2.Player)">runUntilTimelineChanged</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player)</code></th>
<td class="colLast">
<div class="block">Runs tasks of the main <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> until a timeline change or a playback error occurs.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runUntilTimelineChanged(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Timeline)">runUntilTimelineChanged</a></span>&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;expectedTimeline)</code></th>
@ -319,6 +328,29 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl>
</li>
</ul>
<a id="runUntilIsLoading(com.google.android.exoplayer2.Player,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runUntilIsLoading</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;runUntilIsLoading&#8203;(<a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a>&nbsp;player,
boolean&nbsp;expectedIsLoading)
throws <a href="https://developer.android.com/reference/java/util/concurrent/TimeoutException.html" title="class or interface in java.util.concurrent" class="externalLink" target="_top">TimeoutException</a></pre>
<div class="block">Runs tasks of the main <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> until <a href="../Player.html#isLoading()" target="_top"><code>Player.isLoading()</code></a> matches the expected
value or a playback error occurs.
<p>If a playback error occurs it will be thrown wrapped in an <a href="https://developer.android.com/reference/java/lang/IllegalStateException.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>IllegalStateException</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - The <a href="../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.</dd>
<dd><code>expectedIsLoading</code> - The expected value for <a href="../Player.html#isLoading()"><code>Player.isLoading()</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/concurrent/TimeoutException.html" title="class or interface in java.util.concurrent" class="externalLink">TimeoutException</a></code> - If the <a href="RobolectricUtil.html#DEFAULT_TIMEOUT_MS" target="_top"><code>default timeout</code></a> is
exceeded.</dd>
</dl>
</li>
</ul>
<a id="runUntilTimelineChanged(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Timeline)">
<!-- -->
</a>

View File

@ -143,7 +143,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></code>, <code><a href="ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></code>, <code><a href="../ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></code>, <code><a href="MergingMediaSource.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource</a></code>, <code><a href="WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source">WrappingMediaSource</a></code></dd>
<dd><code><a href="ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></code>, <code><a href="ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></code>, <code><a href="ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2</a></code>, <code><a href="../ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></code>, <code><a href="MergingMediaSource.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource</a></code>, <code><a href="WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source">WrappingMediaSource</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">CompositeMediaSource&lt;T&gt;</span>

View File

@ -328,7 +328,7 @@ extends <a href="../Timeline.html" title="class in com.google.android.exoplayer2
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -281,7 +281,7 @@ extends <a href="../Timeline.html" title="class in com.google.android.exoplayer2
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getFirstWindowIndex(boolean)">getFirstWindowIndex</a>, <a href="../Timeline.html#getLastWindowIndex(boolean)">getLastWindowIndex</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getNextWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextWindowIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPreviousWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getPreviousWindowIndex</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getFirstWindowIndex(boolean)">getFirstWindowIndex</a>, <a href="../Timeline.html#getLastWindowIndex(boolean)">getLastWindowIndex</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getNextWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextWindowIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPreviousWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getPreviousWindowIndex</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -122,7 +122,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></code>, <code><a href="BaseMediaSource.html" title="class in com.google.android.exoplayer2.source">BaseMediaSource</a></code>, <code><a href="ClippingMediaSource.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource</a></code>, <code><a href="CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source">CompositeMediaSource</a></code>, <code><a href="ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></code>, <code><a href="dash/DashMediaSource.html" title="class in com.google.android.exoplayer2.source.dash">DashMediaSource</a></code>, <code><a href="../testutil/FakeAdaptiveMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveMediaSource</a></code>, <code><a href="../testutil/FakeMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaSource</a></code>, <code><a href="hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource</a></code>, <code><a href="../ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></code>, <code><a href="LoopingMediaSource.html" title="class in com.google.android.exoplayer2.source">LoopingMediaSource</a></code>, <code><a href="MaskingMediaSource.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource</a></code>, <code><a href="MergingMediaSource.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource</a></code>, <code><a href="ProgressiveMediaSource.html" title="class in com.google.android.exoplayer2.source">ProgressiveMediaSource</a></code>, <code><a href="rtsp/RtspMediaSource.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource</a></code>, <code><a href="ads/ServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionMediaSource</a></code>, <code><a href="SilenceMediaSource.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource</a></code>, <code><a href="SingleSampleMediaSource.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource</a></code>, <code><a href="smoothstreaming/SsMediaSource.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">SsMediaSource</a></code>, <code><a href="WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source">WrappingMediaSource</a></code></dd>
<dd><code><a href="ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></code>, <code><a href="BaseMediaSource.html" title="class in com.google.android.exoplayer2.source">BaseMediaSource</a></code>, <code><a href="ClippingMediaSource.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource</a></code>, <code><a href="CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source">CompositeMediaSource</a></code>, <code><a href="ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></code>, <code><a href="ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2</a></code>, <code><a href="dash/DashMediaSource.html" title="class in com.google.android.exoplayer2.source.dash">DashMediaSource</a></code>, <code><a href="../testutil/FakeAdaptiveMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveMediaSource</a></code>, <code><a href="../testutil/FakeMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaSource</a></code>, <code><a href="hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource</a></code>, <code><a href="../ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></code>, <code><a href="LoopingMediaSource.html" title="class in com.google.android.exoplayer2.source">LoopingMediaSource</a></code>, <code><a href="MaskingMediaSource.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource</a></code>, <code><a href="MergingMediaSource.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource</a></code>, <code><a href="ProgressiveMediaSource.html" title="class in com.google.android.exoplayer2.source">ProgressiveMediaSource</a></code>, <code><a href="rtsp/RtspMediaSource.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource</a></code>, <code><a href="ads/ServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionMediaSource</a></code>, <code><a href="SilenceMediaSource.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource</a></code>, <code><a href="SingleSampleMediaSource.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource</a></code>, <code><a href="smoothstreaming/SsMediaSource.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">SsMediaSource</a></code>, <code><a href="WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source">WrappingMediaSource</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">MediaSource</span></pre>

View File

@ -387,7 +387,7 @@ extends <a href="../Timeline.html" title="class in com.google.android.exoplayer2
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getFirstWindowIndex(boolean)">getFirstWindowIndex</a>, <a href="../Timeline.html#getLastWindowIndex(boolean)">getLastWindowIndex</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getNextWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextWindowIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPreviousWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getPreviousWindowIndex</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getFirstWindowIndex(boolean)">getFirstWindowIndex</a>, <a href="../Timeline.html#getLastWindowIndex(boolean)">getLastWindowIndex</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getNextWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextWindowIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPreviousWindowIndex(int,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getPreviousWindowIndex</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -260,7 +260,7 @@ extends <a href="../ForwardingTimeline.html" title="class in com.google.android.
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../../Timeline.html#hashCode()">hashCode</a>, <a href="../../Timeline.html#isEmpty()">isEmpty</a>, <a href="../../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../../Timeline.html#toBundle()">toBundle</a>, <a href="../../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../../Timeline.html#hashCode()">hashCode</a>, <a href="../../Timeline.html#isEmpty()">isEmpty</a>, <a href="../../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../../Timeline.html#toBundle()">toBundle</a>, <a href="../../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":9,"i21":9,"i22":10,"i23":10,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":10,"i32":10,"i33":10,"i34":9,"i35":9,"i36":10,"i37":9,"i38":10,"i39":9,"i40":9,"i41":10,"i42":9,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":9,"i61":9,"i62":10,"i63":10,"i64":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":9,"i21":9,"i22":10,"i23":10,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":10,"i32":10,"i33":10,"i34":9,"i35":9,"i36":10,"i37":9,"i38":10,"i39":9,"i40":9,"i41":10,"i42":9,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":9,"i61":9,"i62":10,"i63":10,"i64":10,"i65":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -714,18 +714,25 @@ implements <a href="../../../upstream/ParsingLoadable.Parser.html" title="interf
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseTileCountFromProperties(java.util.List)">parseTileCountFromProperties</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Descriptor.html" title="class in com.google.android.exoplayer2.source.dash.manifest" target="_top">Descriptor</a>&gt;&nbsp;essentialProperties)</code></th>
<td class="colLast">
<div class="block">Parses given descriptors for thumbnail tile information.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>protected @com.google.android.exoplayer2.C.RoleFlags int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseTvaAudioPurposeCsValue(java.lang.String)">parseTvaAudioPurposeCsValue</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<tr id="i64" class="altColor">
<td class="colFirst"><code>protected <a href="UrlTemplate.html" title="class in com.google.android.exoplayer2.source.dash.manifest">UrlTemplate</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseUrlTemplate(org.xmlpull.v1.XmlPullParser,java.lang.String,com.google.android.exoplayer2.source.dash.manifest.UrlTemplate)">parseUrlTemplate</a></span>&#8203;(<a href="https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html" title="class or interface in org.xmlpull.v1" class="externalLink" target="_top">XmlPullParser</a>&nbsp;xpp,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;name,
<a href="UrlTemplate.html" title="class in com.google.android.exoplayer2.source.dash.manifest">UrlTemplate</a>&nbsp;defaultValue)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<tr id="i65" class="rowColor">
<td class="colFirst"><code>protected <a href="UtcTimingElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">UtcTimingElement</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseUtcTiming(org.xmlpull.v1.XmlPullParser)">parseUtcTiming</a></span>&#8203;(<a href="https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html" title="class or interface in org.xmlpull.v1" class="externalLink" target="_top">XmlPullParser</a>&nbsp;xpp)</code></th>
<td class="colLast">&nbsp;</td>
@ -1575,6 +1582,24 @@ protected&nbsp;@com.google.android.exoplayer2.C.RoleFlags int&nbsp;parseTvaAudio
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>[]&nbsp;defaultValue)</pre>
</li>
</ul>
<a id="parseTileCountFromProperties(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseTileCountFromProperties</h4>
<pre class="methodSignature">@Nullable
protected&nbsp;<a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;parseTileCountFromProperties&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Descriptor.html" title="class in com.google.android.exoplayer2.source.dash.manifest" target="_top">Descriptor</a>&gt;&nbsp;essentialProperties)</pre>
<div class="block">Parses given descriptors for thumbnail tile information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>essentialProperties</code> - List of descriptors that contain thumbnail tile information.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A pair of Integer values, where the first is the count of horizontal tiles and the
second is the count of vertical tiles, or null if no thumbnail tile information is found.</dd>
</dl>
</li>
</ul>
<a id="maybeSkipTag(org.xmlpull.v1.XmlPullParser)">
<!-- -->
</a>

View File

@ -262,6 +262,18 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2</a></th>
<td class="colLast">
<div class="block">Concatenates multiple <a href="MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>, combining everything in one single <a href="../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ConcatenatingMediaSource2.Builder.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource2.Builder</a></th>
<td class="colLast">
<div class="block">A builder for <a href="ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source"><code>ConcatenatingMediaSource2</code></a> instances.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultCompositeSequenceableLoaderFactory.html" title="class in com.google.android.exoplayer2.source">DefaultCompositeSequenceableLoaderFactory</a></th>
<td class="colLast">
<div class="block">Default implementation of <a href="CompositeSequenceableLoaderFactory.html" title="interface in com.google.android.exoplayer2.source"><code>CompositeSequenceableLoaderFactory</code></a>.</div>

View File

@ -108,6 +108,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.source.<a href="CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">CompositeMediaSource</span></a>&lt;T&gt;
<ul>
<li class="circle">com.google.android.exoplayer2.source.<a href="ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource2</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="MergingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">MergingMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">WrappingMediaSource</span></a>
<ul>
@ -126,6 +127,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.source.<a href="BundledExtractorsAdapter.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">BundledExtractorsAdapter</span></a> (implements com.google.android.exoplayer2.source.<a href="ProgressiveMediaExtractor.html" title="interface in com.google.android.exoplayer2.source">ProgressiveMediaExtractor</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="ClippingMediaPeriod.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ClippingMediaPeriod</span></a> (implements com.google.android.exoplayer2.source.<a href="MediaPeriod.html" title="interface in com.google.android.exoplayer2.source">MediaPeriod</a>, com.google.android.exoplayer2.source.<a href="MediaPeriod.Callback.html" title="interface in com.google.android.exoplayer2.source">MediaPeriod.Callback</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="CompositeSequenceableLoader.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">CompositeSequenceableLoader</span></a> (implements com.google.android.exoplayer2.source.<a href="SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source">SequenceableLoader</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="ConcatenatingMediaSource2.Builder.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource2.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="DefaultCompositeSequenceableLoaderFactory.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">DefaultCompositeSequenceableLoaderFactory</span></a> (implements com.google.android.exoplayer2.source.<a href="CompositeSequenceableLoaderFactory.html" title="interface in com.google.android.exoplayer2.source">CompositeSequenceableLoaderFactory</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">DefaultMediaSourceFactory</span></a> (implements com.google.android.exoplayer2.source.<a href="MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="EmptySampleStream.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">EmptySampleStream</span></a> (implements com.google.android.exoplayer2.source.<a href="SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>)</li>

View File

@ -318,7 +318,7 @@ implements <a href="../Player.Listener.html" title="interface in com.google.andr
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)">onTimelineChanged</a></span>&#8203;(<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;timeline,
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</code></th>
<td class="colLast">
<div class="block">Called when the timeline has been refreshed.</div>
<div class="block">Called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.</div>
</td>
</tr>
<tr id="i14" class="altColor">
@ -568,7 +568,7 @@ public&nbsp;<a href="ExoPlayerTestRunner.html" title="class in com.google.androi
<a href="../Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">@TimelineChangeReason</a>
@com.google.android.exoplayer2.Player.TimelineChangeReason int&nbsp;reason)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)">Player.Listener</a></code></span></div>
<div class="block">Called when the timeline has been refreshed.
<div class="block">Called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a> changes.
<p>Note that the current <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> or playback position may change as a result of a
timeline change. If playback can't continue smoothly because of this timeline change, a
@ -600,8 +600,8 @@ public&nbsp;<a href="ExoPlayerTestRunner.html" title="class in com.google.androi
<div class="block">Called when playback transitions to a media item or starts repeating a media item according
to the current <a href="../Player.html#getRepeatMode()"><code>repeat mode</code></a>.
<p>Note that this callback is also called when the playlist becomes non-empty or empty as a
consequence of a playlist change.
<p>Note that this callback is also called when the value of <a href="../Player.html#getCurrentTimeline()"><code>Player.getCurrentTimeline()</code></a>
becomes non-empty or empty.
<p><a href="../Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> will also be called to report this event along with
other events that happen in the same <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration.</div>
@ -631,7 +631,7 @@ public&nbsp;<a href="ExoPlayerTestRunner.html" title="class in com.google.androi
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)">onPlaybackStateChanged</a></code>&nbsp;in interface&nbsp;<code><a href="../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackState</code> - The new playback <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>state</code></a>.</dd>
<dd><code>playbackState</code> - The new playback <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>Player.State</code></a>.</dd>
</dl>
</li>
</ul>

View File

@ -221,7 +221,7 @@ extends <a href="FakeRenderer.html" title="class in com.google.android.exoplayer
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener)">FakeAudioRenderer</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(com.google.android.exoplayer2.util.HandlerWrapper,com.google.android.exoplayer2.audio.AudioRendererEventListener)">FakeAudioRenderer</a></span>&#8203;(<a href="../util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper</a>&nbsp;handler,
<a href="../audio/AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio">AudioRendererEventListener</a>&nbsp;eventListener)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
@ -318,13 +318,13 @@ extends <a href="FakeRenderer.html" title="class in com.google.android.exoplayer
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener)">
<a id="&lt;init&gt;(com.google.android.exoplayer2.util.HandlerWrapper,com.google.android.exoplayer2.audio.AudioRendererEventListener)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FakeAudioRenderer</h4>
<pre>public&nbsp;FakeAudioRenderer&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<pre>public&nbsp;FakeAudioRenderer&#8203;(<a href="../util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper</a>&nbsp;handler,
<a href="../audio/AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio">AudioRendererEventListener</a>&nbsp;eventListener)</pre>
</li>
</ul>

View File

@ -261,7 +261,7 @@ extends <a href="../source/ForwardingTimeline.html" title="class in com.google.a
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -399,7 +399,7 @@ extends <a href="../Timeline.html" title="class in com.google.android.exoplayer2
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></h3>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundle(boolean)">toBundle</a></code></li>
<code><a href="../Timeline.html#equals(java.lang.Object)">equals</a>, <a href="../Timeline.html#getNextPeriodIndex(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">getNextPeriodIndex</a>, <a href="../Timeline.html#getPeriod(int,com.google.android.exoplayer2.Timeline.Period)">getPeriod</a>, <a href="../Timeline.html#getPeriodByUid(java.lang.Object,com.google.android.exoplayer2.Timeline.Period)">getPeriodByUid</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPosition(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPosition</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getPeriodPositionUs(com.google.android.exoplayer2.Timeline.Window,com.google.android.exoplayer2.Timeline.Period,int,long,long)">getPeriodPositionUs</a>, <a href="../Timeline.html#getWindow(int,com.google.android.exoplayer2.Timeline.Window)">getWindow</a>, <a href="../Timeline.html#hashCode()">hashCode</a>, <a href="../Timeline.html#isEmpty()">isEmpty</a>, <a href="../Timeline.html#isLastPeriod(int,com.google.android.exoplayer2.Timeline.Period,com.google.android.exoplayer2.Timeline.Window,@com.google.android.exoplayer2.Player.RepeatModeint,boolean)">isLastPeriod</a>, <a href="../Timeline.html#toBundle()">toBundle</a>, <a href="../Timeline.html#toBundleWithOneWindowOnly(int)">toBundleWithOneWindowOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -221,7 +221,7 @@ extends <a href="FakeRenderer.html" title="class in com.google.android.exoplayer
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener)">FakeVideoRenderer</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(com.google.android.exoplayer2.util.HandlerWrapper,com.google.android.exoplayer2.video.VideoRendererEventListener)">FakeVideoRenderer</a></span>&#8203;(<a href="../util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper</a>&nbsp;handler,
<a href="../video/VideoRendererEventListener.html" title="interface in com.google.android.exoplayer2.video">VideoRendererEventListener</a>&nbsp;eventListener)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
@ -350,13 +350,13 @@ extends <a href="FakeRenderer.html" title="class in com.google.android.exoplayer
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener)">
<a id="&lt;init&gt;(com.google.android.exoplayer2.util.HandlerWrapper,com.google.android.exoplayer2.video.VideoRendererEventListener)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FakeVideoRenderer</h4>
<pre>public&nbsp;FakeVideoRenderer&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<pre>public&nbsp;FakeVideoRenderer&#8203;(<a href="../util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper</a>&nbsp;handler,
<a href="../video/VideoRendererEventListener.html" title="interface in com.google.android.exoplayer2.video">VideoRendererEventListener</a>&nbsp;eventListener)</pre>
</li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -440,7 +440,7 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.State int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackState()">getPlaybackState</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
@ -603,10 +603,12 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs,
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</code></th>
<td class="colLast">
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<div class="block">Seeks to a position in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i52" class="altColor">
@ -628,7 +630,7 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
@ -637,7 +639,7 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
int&nbsp;startIndex,
long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</div>
</td>
</tr>
<tr id="i56" class="altColor">
@ -742,7 +744,7 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="../BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="../BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="../BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="../BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="../BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="../BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="../BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="../BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="../BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="../BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="../BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../BasePlayer.html#hasNext()">hasNext</a>, <a href="../BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="../BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="../BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="../BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="../BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="../BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="../BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="../BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="../BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="../BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="../BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="../BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="../BasePlayer.html#isPlaying()">isPlaying</a>, <a href="../BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../BasePlayer.html#next()">next</a>, <a href="../BasePlayer.html#pause()">pause</a>, <a href="../BasePlayer.html#play()">play</a>, <a href="../BasePlayer.html#previous()">previous</a>, <a href="../BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../BasePlayer.html#repeatCurrentMediaItem()">repeatCurrentMediaItem</a>, <a href="../BasePlayer.html#seekBack()">seekBack</a>, <a href="../BasePlayer.html#seekForward()">seekForward</a>, <a href="../BasePlayer.html#seekTo(long)">seekTo</a>, <a href="../BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="../BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="../BasePlayer.html#seekToNext()">seekToNext</a>, <a href="../BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="../BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="../BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="../BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="../BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="../BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
<code><a href="../BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="../BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="../BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="../BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="../BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="../BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="../BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="../BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="../BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="../BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="../BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="../BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../BasePlayer.html#hasNext()">hasNext</a>, <a href="../BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="../BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="../BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="../BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="../BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="../BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="../BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="../BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="../BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="../BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="../BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="../BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="../BasePlayer.html#isPlaying()">isPlaying</a>, <a href="../BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../BasePlayer.html#next()">next</a>, <a href="../BasePlayer.html#pause()">pause</a>, <a href="../BasePlayer.html#play()">play</a>, <a href="../BasePlayer.html#previous()">previous</a>, <a href="../BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../BasePlayer.html#seekBack()">seekBack</a>, <a href="../BasePlayer.html#seekForward()">seekForward</a>, <a href="../BasePlayer.html#seekTo(int,long)">seekTo</a>, <a href="../BasePlayer.html#seekTo(long)">seekTo</a>, <a href="../BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="../BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="../BasePlayer.html#seekToNext()">seekToNext</a>, <a href="../BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="../BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="../BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="../BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="../BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="../BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="../BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -795,7 +797,9 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;getApplicationLooper()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getApplicationLooper()">Player</a></code></span></div>
<div class="block">Returns the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> associated with the application thread that's used to access the
player and on which player events are received.</div>
player and on which player events are received.
<p>This method can be called from any thread.</div>
</li>
</ul>
<a id="addListener(com.google.android.exoplayer2.Player.Listener)">
@ -808,7 +812,9 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">Player</a></code></span></div>
<div class="block">Registers a listener to receive all events from the player.
<p>The listener's methods will be called on the thread associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
<p>The listener's methods will be called on the thread associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
@ -840,10 +846,10 @@ extends <a href="../BasePlayer.html" title="class in com.google.android.exoplaye
<pre class="methodSignature"><a href="../Player.State.html" title="annotation in com.google.android.exoplayer2">@State</a>
public&nbsp;@com.google.android.exoplayer2.Player.State int&nbsp;getPlaybackState()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getPlaybackState()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a> of the player.</div>
<div class="block">Returns the current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a> of the player.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2"><code>playback state</code></a>.</dd>
<dd>The current <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2">playback state</a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a></dd>
</dl>
@ -862,7 +868,7 @@ public&nbsp;@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int&
true</code>, or <a href="../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE"><code>Player.PLAYBACK_SUPPRESSION_REASON_NONE</code></a> if playback is not suppressed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current <a href="../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>playback suppression reason</code></a>.</dd>
<dd>The current <a href="../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2"><code>Player.PlaybackSuppressionReason</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Player.Listener.html#onPlaybackSuppressionReasonChanged(@com.google.android.exoplayer2.Player.PlaybackSuppressionReasonint)"><code>Player.Listener.onPlaybackSuppressionReasonChanged(int)</code></a></dd>
</dl>
@ -901,6 +907,8 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#prepare()">Player</a></code></span></div>
<div class="block">Prepares the player.
<p>This method must only be called if <a href="../Player.html#COMMAND_PREPARE"><code>Player.COMMAND_PREPARE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.
<p>This will move the player out of <a href="../Player.html#STATE_IDLE"><code>idle state</code></a> and the player will start
loading media and acquire resources needed for playback.</div>
</li>
@ -914,10 +922,12 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaItems&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setMediaItems(java.util.List,boolean)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position in
the first <a href="../Timeline.Window.html" title="class in com.google.android.exoplayer2"><code>Timeline.Window</code></a>. If false, playback will start from the position defined
by <a href="../Player.html#getCurrentMediaItemIndex()"><code>Player.getCurrentMediaItemIndex()</code></a> and <a href="../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</dd>
@ -934,10 +944,12 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
int&nbsp;startIndex,
long&nbsp;startPositionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setMediaItems(java.util.List,int,long)">Player</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
<div class="block">Clears the playlist and adds the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItems</code> - The new <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</dd>
<dd><code>mediaItems</code> - The new <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.</dd>
<dd><code>startIndex</code> - The <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> index to start playback from. If <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>
is passed, the current position is not reset.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from. If <a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> is passed, the default position of the given <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> is used. In
@ -955,12 +967,14 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaItems&#8203;(int&nbsp;index,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#addMediaItems(int,java.util.List)">Player</a></code></span></div>
<div class="block">Adds a list of media items at the given index of the playlist.</div>
<div class="block">Adds a list of media items at the given index of the playlist.
<p>This method must only be called if <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media items. If the index is larger than the size of
the playlist, the media items are added to the end of the playlist.</dd>
<dd><code>mediaItems</code> - The <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a> to add.</dd>
<dd><code>mediaItems</code> - The <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a> to add.</dd>
</dl>
</li>
</ul>
@ -974,11 +988,15 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
int&nbsp;toIndex,
int&nbsp;newIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#moveMediaItems(int,int,int)">Player</a></code></span></div>
<div class="block">Moves the media item range to the new index.</div>
<div class="block">Moves the media item range to the new index.
<p>This method must only be called if <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The start of the range to move.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive).</dd>
<dd><code>fromIndex</code> - The start of the range to move. If the index is larger than the size of the
playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The first item not to be included in the range (exclusive). If the index is
larger than the size of the playlist, items up to the end of the playlist are moved.</dd>
<dd><code>newIndex</code> - The new index of the first media item of the range. If the new index is larger
than the size of the remaining playlist after removing the range, the range is moved to the
end of the playlist.</dd>
@ -994,12 +1012,15 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<pre class="methodSignature">public&nbsp;void&nbsp;removeMediaItems&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#removeMediaItems(int,int)">Player</a></code></span></div>
<div class="block">Removes a range of media items from the playlist.</div>
<div class="block">Removes a range of media items from the playlist.
<p>This method must only be called if <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS"><code>Player.COMMAND_CHANGE_MEDIA_ITEMS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fromIndex</code> - The index at which to start removing media items.</dd>
<dd><code>fromIndex</code> - The index at which to start removing media items. If the index is larger than
the size of the playlist, the request is ignored.</dd>
<dd><code>toIndex</code> - The index of the first item to be kept (exclusive). If the index is larger than
the size of the playlist, media items to the end of the playlist are removed.</dd>
the size of the playlist, media items up to the end of the playlist are removed.</dd>
</dl>
</li>
</ul>
@ -1014,13 +1035,7 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<div class="block">Returns the player's currently available <a href="../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.
<p>The returned <a href="../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a> are not updated when available commands change. Use <a href="../Player.Listener.html#onAvailableCommandsChanged(com.google.android.exoplayer2.Player.Commands)"><code>Player.Listener.onAvailableCommandsChanged(Commands)</code></a> to get an update when the available commands
change.
<p>Executing a command that is not available (for example, calling <a href="../Player.html#seekToNextMediaItem()"><code>Player.seekToNextMediaItem()</code></a> if <a href="../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a> is unavailable) will
neither throw an exception nor generate a <a href="../Player.html#getPlayerError()"><code>Player.getPlayerError()</code></a> player error}.
<p><a href="../Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</code></a> and <a href="../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM"><code>Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</code></a>
are unavailable if there is no such <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
change.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The currently available <a href="../Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</dd>
@ -1039,7 +1054,9 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setPlayWhenReady(boolean)">Player</a></code></span></div>
<div class="block">Sets whether playback should proceed when <a href="../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="../Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.
<p>If the player is already in the ready state then this method pauses and resumes playback.</div>
<p>If the player is already in the ready state then this method pauses and resumes playback.
<p>This method must only be called if <a href="../Player.html#COMMAND_PLAY_PAUSE"><code>Player.COMMAND_PLAY_PAUSE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback should proceed when ready.</dd>
@ -1072,7 +1089,9 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<pre class="methodSignature">public&nbsp;void&nbsp;setRepeatMode&#8203;(<a href="../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">@RepeatMode</a>
@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">Player</a></code></span></div>
<div class="block">Sets the <a href="../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
<div class="block">Sets the <a href="../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_REPEAT_MODE"><code>Player.COMMAND_SET_REPEAT_MODE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>repeatMode</code> - The repeat mode.</dd>
@ -1104,7 +1123,9 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
<h4>setShuffleModeEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setShuffleModeEnabled&#8203;(boolean&nbsp;shuffleModeEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setShuffleModeEnabled(boolean)">Player</a></code></span></div>
<div class="block">Sets whether shuffling of media items is enabled.</div>
<div class="block">Sets whether shuffling of media items is enabled.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_SHUFFLE_MODE"><code>Player.COMMAND_SET_SHUFFLE_MODE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleModeEnabled</code> - Whether shuffling is enabled.</dd>
@ -1143,21 +1164,28 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
</dl>
</li>
</ul>
<a id="seekTo(int,long)">
<a id="seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekTo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;seekTo&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#seekTo(int,long)">Player</a></code></span></div>
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
long&nbsp;positionMs,
<a href="../Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;seekCommand,
boolean&nbsp;isRepeatingCurrentItem)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">BasePlayer</a></code></span></div>
<div class="block">Seeks to a position in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../BasePlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a></code>&nbsp;in class&nbsp;<code><a href="../BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaItemIndex</code> - The index of the <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>, or <a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a>
to seek to the media item's default position.</dd>
<dd><code>positionMs</code> - The seek position in the specified <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in milliseconds, or
<a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> to seek to the media item's default position.</dd>
<dd><code>seekCommand</code> - The <a href="../Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> used to trigger the seek.</dd>
<dd><code>isRepeatingCurrentItem</code> - Whether this seeks repeats the current item.</dd>
</dl>
</li>
</ul>
@ -1224,7 +1252,9 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
player to the default, which means there is no speed or pitch adjustment.
<p>Playback parameters changes may cause the player to buffer. <a href="../Player.Listener.html#onPlaybackParametersChanged(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.Listener.onPlaybackParametersChanged(PlaybackParameters)</code></a> will be called whenever the currently
active playback parameters change.</div>
active playback parameters change.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_SPEED_AND_PITCH"><code>Player.COMMAND_SET_SPEED_AND_PITCH</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters.</dd>
@ -1263,7 +1293,9 @@ public&nbsp;<a href="../PlaybackException.html" title="class in com.google.andro
still be called on the player if it's no longer required.
<p>Calling this method does not clear the playlist, reset the playback position or the playback
error.</div>
error.
<p>This method must only be called if <a href="../Player.html#COMMAND_STOP"><code>Player.COMMAND_STOP</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="stop(boolean)">
@ -1301,7 +1333,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getCurrentTracks</h4>
<pre class="methodSignature">public&nbsp;<a href="../Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a>&nbsp;getCurrentTracks()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentTracks()">Player</a></code></span></div>
<div class="block">Returns the current tracks.</div>
<div class="block">Returns the current tracks.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_TRACKS"><code>Player.COMMAND_GET_TRACKS</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.Tracks)"><code>Player.Listener.onTracksChanged(Tracks)</code></a></dd>
@ -1345,7 +1379,10 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
.buildUpon()
.setMaxVideoSizeSd()
.build())
</code></pre></div>
</code></pre>
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS"><code>Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS</code></a> is
<a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getMediaMetadata()">
@ -1362,7 +1399,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<p>This <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> is a combination of the <a href="../MediaItem.html#mediaMetadata"><code>MediaItem
metadata</code></a>, the static metadata in the media's <a href="../Format.html#metadata"><code>Format</code></a>, and any timed
metadata that has been parsed from the media and output via <a href="../Player.Listener.html#onMetadata(com.google.android.exoplayer2.metadata.Metadata)"><code>Player.Listener.onMetadata(Metadata)</code></a>. If a field is populated in the <a href="../MediaItem.html#mediaMetadata"><code>MediaItem.mediaMetadata</code></a>,
it will be prioritised above the same field coming from static or timed metadata.</div>
it will be prioritised above the same field coming from static or timed metadata.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getPlaylistMetadata()">
@ -1373,7 +1412,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getPlaylistMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;getPlaylistMetadata()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getPlaylistMetadata()">Player</a></code></span></div>
<div class="block">Returns the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.</div>
<div class="block">Returns the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>, as set by <a href="../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a>, or <a href="../MediaMetadata.html#EMPTY"><code>MediaMetadata.EMPTY</code></a> if not supported.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_GET_MEDIA_ITEMS_METADATA</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">
@ -1384,7 +1425,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>setPlaylistMetadata</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPlaylistMetadata&#8203;(<a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">Player</a></code></span></div>
<div class="block">Sets the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
<div class="block">Sets the playlist <a href="../MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_MEDIA_ITEMS_METADATA"><code>Player.COMMAND_SET_MEDIA_ITEMS_METADATA</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentTimeline()">
@ -1395,7 +1438,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getCurrentTimeline</h4>
<pre class="methodSignature">public&nbsp;<a href="../Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a>&nbsp;getCurrentTimeline()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentTimeline()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.</div>
<div class="block">Returns the current <a href="../Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>. Never null, but may be empty.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)"><code>Player.Listener.onTimelineChanged(Timeline, int)</code></a></dd>
@ -1410,7 +1455,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getCurrentPeriodIndex</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentPeriodIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentPeriodIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the period currently being played.</div>
<div class="block">Returns the index of the period currently being played.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentMediaItemIndex()">
@ -1422,7 +1469,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentMediaItemIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentMediaItemIndex()">Player</a></code></span></div>
<div class="block">Returns the index of the current <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> in the <a href="../Player.html#getCurrentTimeline()"><code>timeline</code></a>, or the prospective index if the <a href="../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is
empty.</div>
empty.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_TIMELINE"><code>Player.COMMAND_GET_TIMELINE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getDuration()">
@ -1434,7 +1483,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;long&nbsp;getDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getDuration()">Player</a></code></span></div>
<div class="block">Returns the duration of the current content or ad in milliseconds, or <a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if
the duration is not known.</div>
the duration is not known.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentPosition()">
@ -1446,7 +1497,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;long&nbsp;getCurrentPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentPosition()">Player</a></code></span></div>
<div class="block">Returns the playback position in the current content or ad, in milliseconds, or the prospective
position in milliseconds if the <a href="../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.</div>
position in milliseconds if the <a href="../Player.html#getCurrentTimeline()"><code>current timeline</code></a> is empty.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getBufferedPosition()">
@ -1458,7 +1511,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;long&nbsp;getBufferedPosition()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getBufferedPosition()">Player</a></code></span></div>
<div class="block">Returns an estimate of the position in the current content or ad up to which data is buffered,
in milliseconds.</div>
in milliseconds.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getTotalBufferedDuration()">
@ -1470,7 +1525,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;long&nbsp;getTotalBufferedDuration()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getTotalBufferedDuration()">Player</a></code></span></div>
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.
This includes pre-buffered data for subsequent ads and <a href="../MediaItem.html" title="class in com.google.android.exoplayer2"><code>media items</code></a>.</div>
This includes pre-buffered data for subsequent ads and <a href="../MediaItem.html" title="class in com.google.android.exoplayer2">media items</a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="isPlayingAd()">
@ -1481,7 +1538,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>isPlayingAd</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isPlayingAd()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#isPlayingAd()">Player</a></code></span></div>
<div class="block">Returns whether the player is currently playing an ad.</div>
<div class="block">Returns whether the player is currently playing an ad.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentAdGroupIndex()">
@ -1493,7 +1552,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdGroupIndex()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentAdGroupIndex()">Player</a></code></span></div>
<div class="block">If <a href="../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad group in the period
currently being played. Returns <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
currently being played. Returns <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getCurrentAdIndexInAdGroup()">
@ -1505,7 +1566,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentAdIndexInAdGroup()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentAdIndexInAdGroup()">Player</a></code></span></div>
<div class="block">If <a href="../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns true, returns the index of the ad in its ad group. Returns
<a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.</div>
<a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> otherwise.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getContentPosition()">
@ -1518,7 +1581,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getContentPosition()">Player</a></code></span></div>
<div class="block">If <a href="../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns the content position that will be
played once all ads in the ad group have finished playing, in milliseconds. If there is no ad
playing, the returned position is the same as that returned by <a href="../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.</div>
playing, the returned position is the same as that returned by <a href="../Player.html#getCurrentPosition()"><code>Player.getCurrentPosition()</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getContentBufferedPosition()">
@ -1531,7 +1596,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getContentBufferedPosition()">Player</a></code></span></div>
<div class="block">If <a href="../Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> returns <code>true</code>, returns an estimate of the content position in
the current content up to which data is buffered, in milliseconds. If there is no ad playing,
the returned position is the same as that returned by <a href="../Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.</div>
the returned position is the same as that returned by <a href="../Player.html#getBufferedPosition()"><code>Player.getBufferedPosition()</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM"><code>Player.COMMAND_GET_CURRENT_MEDIA_ITEM</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getAudioAttributes()">
@ -1542,7 +1609,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getAudioAttributes</h4>
<pre class="methodSignature">public&nbsp;<a href="../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;getAudioAttributes()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getAudioAttributes()">Player</a></code></span></div>
<div class="block">Returns the attributes for audio playback.</div>
<div class="block">Returns the attributes for audio playback.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_AUDIO_ATTRIBUTES"><code>Player.COMMAND_GET_AUDIO_ATTRIBUTES</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="setVolume(float)">
@ -1554,7 +1623,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;setVolume&#8203;(float&nbsp;volume)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setVolume(float)">Player</a></code></span></div>
<div class="block">Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal
unchanged), inclusive.</div>
unchanged), inclusive.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VOLUME"><code>Player.COMMAND_SET_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>volume</code> - Linear output gain to apply to all audio channels.</dd>
@ -1569,7 +1640,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getVolume</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getVolume()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getVolume()">Player</a></code></span></div>
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_VOLUME"><code>Player.COMMAND_GET_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The linear gain applied to all audio channels.</dd>
@ -1585,7 +1658,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoSurface()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#clearVideoSurface()">Player</a></code></span></div>
<div class="block">Clears any <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink"><code>Surface</code></a>, <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a>, <a href="https://developer.android.com/reference/android/view/SurfaceView.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceView</code></a> or <a href="https://developer.android.com/reference/android/view/TextureView.html?is-external=true" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a>
currently set on the player.</div>
currently set on the player.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="clearVideoSurface(android.view.Surface)">
@ -1598,7 +1673,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#clearVideoSurface(android.view.Surface)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surface</code> - The surface to clear.</dd>
@ -1620,7 +1697,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<p>If the surface is held by a <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink"><code>SurfaceView</code></a>, <a href="https://developer.android.com/reference/android/view/TextureView.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>TextureView</code></a> or <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html?is-external=true" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a> then it's recommended to use <a href="../Player.html#setVideoSurfaceView(android.view.SurfaceView)"><code>Player.setVideoSurfaceView(SurfaceView)</code></a>, <a href="../Player.html#setVideoTextureView(android.view.TextureView)"><code>Player.setVideoTextureView(TextureView)</code></a> or <a href="../Player.html#setVideoSurfaceHolder(android.view.SurfaceHolder)" target="_top"><code>Player.setVideoSurfaceHolder(SurfaceHolder)</code></a> rather than
this method, since passing the holder allows the player to track the lifecycle of the surface
automatically.</div>
automatically.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surface</code> - The <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</dd>
@ -1640,7 +1719,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
rendered. The player will track the lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceHolder.Callback</code></a> methods must be the thread
associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceHolder</code> - The surface holder.</dd>
@ -1657,7 +1738,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#clearVideoSurfaceHolder(android.view.SurfaceHolder)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink"><code>SurfaceHolder</code></a> that holds the <a href="https://developer.android.com/reference/android/view/Surface.html?is-external=true" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video is being
rendered if it matches the one passed. Else does nothing.</div>
rendered if it matches the one passed. Else does nothing.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceHolder</code> - The surface holder to clear.</dd>
@ -1677,7 +1760,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/SurfaceHolder.Callback.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceHolder.Callback</code></a> methods must be the thread
associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceView</code> - The surface view.</dd>
@ -1694,7 +1779,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#clearVideoSurfaceView(android.view.SurfaceView)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>surfaceView</code> - The texture view to clear.</dd>
@ -1714,7 +1801,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
lifecycle of the surface automatically.
<p>The thread that calls the <a href="https://developer.android.com/reference/android/view/TextureView.SurfaceTextureListener.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView.SurfaceTextureListener</code></a> methods must be the
thread associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.</div>
thread associated with <a href="../Player.html#getApplicationLooper()"><code>Player.getApplicationLooper()</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>textureView</code> - The texture view.</dd>
@ -1731,7 +1820,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#clearVideoTextureView(android.view.TextureView)">Player</a></code></span></div>
<div class="block">Clears the <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a> onto which video is being rendered if it matches the one passed.
Else does nothing.</div>
Else does nothing.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE"><code>Player.COMMAND_SET_VIDEO_SURFACE</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>textureView</code> - The texture view to clear.</dd>
@ -1779,7 +1870,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>getCurrentCues</h4>
<pre class="methodSignature">public&nbsp;<a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a>&nbsp;getCurrentCues()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getCurrentCues()">Player</a></code></span></div>
<div class="block">Returns the current <a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.</div>
<div class="block">Returns the current <a href="../text/CueGroup.html" title="class in com.google.android.exoplayer2.text"><code>CueGroup</code></a>.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_TEXT"><code>Player.COMMAND_GET_TEXT</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="getDeviceInfo()">
@ -1809,7 +1902,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<a href="../util/Util.html#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)"><code>Util.getStreamTypeForAudioUsage(int)</code></a>.
<p>For devices with <a href="../DeviceInfo.html#PLAYBACK_TYPE_REMOTE"><code>remote playback</code></a>, the volume of the
remote device is returned.</div>
remote device is returned.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="isDeviceMuted()">
@ -1820,7 +1915,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>isDeviceMuted</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDeviceMuted()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#isDeviceMuted()">Player</a></code></span></div>
<div class="block">Gets whether the device is muted or not.</div>
<div class="block">Gets whether the device is muted or not.
<p>This method must only be called if <a href="../Player.html#COMMAND_GET_DEVICE_VOLUME"><code>Player.COMMAND_GET_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="setDeviceVolume(int)">
@ -1831,7 +1928,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>setDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceVolume&#8203;(int&nbsp;volume)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setDeviceVolume(int)">Player</a></code></span></div>
<div class="block">Sets the volume of the device.</div>
<div class="block">Sets the volume of the device.
<p>This method must only be called if <a href="../Player.html#COMMAND_SET_DEVICE_VOLUME"><code>Player.COMMAND_SET_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>volume</code> - The volume to set.</dd>
@ -1846,7 +1945,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>increaseDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;increaseDeviceVolume()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#increaseDeviceVolume()">Player</a></code></span></div>
<div class="block">Increases the volume of the device.</div>
<div class="block">Increases the volume of the device.
<p>This method must only be called if <a href="../Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="decreaseDeviceVolume()">
@ -1857,7 +1958,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>decreaseDeviceVolume</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;decreaseDeviceVolume()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#decreaseDeviceVolume()">Player</a></code></span></div>
<div class="block">Decreases the volume of the device.</div>
<div class="block">Decreases the volume of the device.
<p>This method must only be called if <a href="../Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
<a id="setDeviceMuted(boolean)">
@ -1868,7 +1971,9 @@ public&nbsp;void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<h4>setDeviceMuted</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceMuted&#8203;(boolean&nbsp;muted)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#setDeviceMuted(boolean)">Player</a></code></span></div>
<div class="block">Sets the mute state of the device.</div>
<div class="block">Sets the mute state of the device.
<p>This method must only be called if <a href="../Player.html#COMMAND_ADJUST_DEVICE_VOLUME"><code>Player.COMMAND_ADJUST_DEVICE_VOLUME</code></a> is <a href="../Player.html#getAvailableCommands()">available</a>.</div>
</li>
</ul>
</li>

View File

@ -403,7 +403,7 @@ implements <a href="../Bundleable.html" title="interface in com.google.android.e
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.trackselection.<a href="TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></h3>
<code><a href="TrackSelectionParameters.html#fromBundle(android.os.Bundle)">fromBundle</a>, <a href="TrackSelectionParameters.html#keyForField(int)">keyForField</a></code></li>
<code><a href="TrackSelectionParameters.html#fromBundle(android.os.Bundle)">fromBundle</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":9,"i6":10};
var data = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -503,14 +503,6 @@ implements <a href="../Bundleable.html" title="interface in com.google.android.e
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyForField(int)">keyForField</a></span>&#8203;(int&nbsp;field)</code></th>
<td class="colLast">
<div class="block">Converts the given field number to a string which can be used as a field key when implementing
<a href="#toBundle()"><code>toBundle()</code></a> and <a href="../Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle()">toBundle</a></span>()</code></th>
<td class="colLast">
@ -883,7 +875,7 @@ public final&nbsp;@com.google.android.exoplayer2.C.SelectionFlags int ignoredTex
and <a href="../Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.
<p>Subclasses should obtain keys for their <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representation by applying a
non-negative offset on this constant and passing the result to <a href="#keyForField(int)"><code>keyForField(int)</code></a>.</div>
non-negative offset on this constant and passing the result to <a href="../util/Util.html#intToStringMaxRadix(int)"><code>Util.intToStringMaxRadix(int)</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#com.google.android.exoplayer2.trackselection.TrackSelectionParameters.FIELD_CUSTOM_ID_BASE">Constant Field Values</a></dd>
@ -997,26 +989,13 @@ public static final&nbsp;<a href="../Bundleable.Creator.html" title="interface i
<a id="fromBundle(android.os.Bundle)">
<!-- -->
</a>
<ul class="blockList">
<ul class="blockListLast">
<li class="blockList">
<h4>fromBundle</h4>
<pre class="methodSignature">public static&nbsp;<a href="TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;fromBundle&#8203;(<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;bundle)</pre>
<div class="block">Construct an instance from a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundle</code></a> produced by <a href="#toBundle()" target="_top"><code>toBundle()</code></a>.</div>
</li>
</ul>
<a id="keyForField(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>keyForField</h4>
<pre class="methodSignature">protected static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;keyForField&#8203;(int&nbsp;field)</pre>
<div class="block">Converts the given field number to a string which can be used as a field key when implementing
<a href="#toBundle()"><code>toBundle()</code></a> and <a href="../Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.
<p>Subclasses should use <code>field</code> values greater than or equal to <a href="#FIELD_CUSTOM_ID_BASE"><code>FIELD_CUSTOM_ID_BASE</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -1374,7 +1374,7 @@ public&nbsp;<a href="https://developer.android.com/reference/android/graphics/dr
<a href="StyledPlayerView.ControllerVisibilityListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerView.ControllerVisibilityListener</a>&nbsp;listener)</pre>
<div class="block">Sets the <a href="StyledPlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui"><code>StyledPlayerControlView.VisibilityListener</code></a>.
<p>Removes any listener set by <a href="#setControllerVisibilityListener(com.google.android.exoplayer2.ui.StyledPlayerControlView.VisibilityListener)"><code>setControllerVisibilityListener(StyledPlayerControlView.VisibilityListener)</code></a>.</div>
<p>If <code>listener</code> is non-null then any listener set by <a href="#setControllerVisibilityListener(com.google.android.exoplayer2.ui.StyledPlayerControlView.VisibilityListener)"><code>setControllerVisibilityListener(StyledPlayerControlView.VisibilityListener)</code></a> is removed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to be notified about visibility changes, or null to remove the
@ -1396,7 +1396,7 @@ public&nbsp;void&nbsp;setControllerVisibilityListener&#8203;(@Nullable
</div>
<div class="block">Sets the <a href="StyledPlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui"><code>StyledPlayerControlView.VisibilityListener</code></a>.
<p>Removes any listener set by <a href="#setControllerVisibilityListener(com.google.android.exoplayer2.ui.StyledPlayerView.ControllerVisibilityListener)"><code>setControllerVisibilityListener(ControllerVisibilityListener)</code></a>.</div>
<p>If <code>listener</code> is non-null then any listener set by <a href="#setControllerVisibilityListener(com.google.android.exoplayer2.ui.StyledPlayerView.ControllerVisibilityListener)"><code>setControllerVisibilityListener(ControllerVisibilityListener)</code></a> is removed.</div>
</li>
</ul>
<a id="setFullscreenButtonClickListener(com.google.android.exoplayer2.ui.StyledPlayerView.FullscreenButtonClickListener)">

View File

@ -25,8 +25,8 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":42,"i10":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@ -141,7 +141,10 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
triggered recursively from another listener.
<p>Events are also guaranteed to be only sent to the listeners registered at the time the event
was enqueued and haven't been removed since.</div>
was enqueued and haven't been removed since.
<p>All methods must be called on the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> passed to the constructor unless indicated
otherwise.</div>
</li>
</ul>
</div>
@ -214,7 +217,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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>
<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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>
@ -289,6 +292,15 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setThrowsWhenUsingWrongThread(boolean)">setThrowsWhenUsingWrongThread</a></span>&#8203;(boolean&nbsp;throwsWhenUsingWrongThread)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Do not use this method and ensure all calls are made from the correct thread.</div>
</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">
@ -332,7 +344,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>looper</code> - A <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> used to call listeners on. The same <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> must be used
to call all other methods of this class.</dd>
to call all other methods of this class unless indicated otherwise.</dd>
<dd><code>clock</code> - A <a href="Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a>.</dd>
<dd><code>iterationFinishedEvent</code> - An <a href="ListenerSet.IterationFinishedEvent.html" title="interface in com.google.android.exoplayer2.util"><code>ListenerSet.IterationFinishedEvent</code></a> sent when all other events sent
during one <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue iteration were handled by the listeners.</dd>
@ -358,7 +370,9 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<pre class="methodSignature">@CheckResult
public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exoplayer2.util">ListenerSet</a>&lt;<a href="ListenerSet.html" title="type parameter in ListenerSet">T</a>&gt;&nbsp;copy&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper,
<a href="ListenerSet.IterationFinishedEvent.html" title="interface in com.google.android.exoplayer2.util">ListenerSet.IterationFinishedEvent</a>&lt;<a href="ListenerSet.html" title="type parameter in ListenerSet">T</a>&gt;&nbsp;iterationFinishedEvent)</pre>
<div class="block">Copies the listener set.</div>
<div class="block">Copies the listener set.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>looper</code> - The new <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> for the copied listener set.</dd>
@ -379,7 +393,9 @@ public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exopla
public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exoplayer2.util">ListenerSet</a>&lt;<a href="ListenerSet.html" title="type parameter in ListenerSet">T</a>&gt;&nbsp;copy&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper,
<a href="Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;clock,
<a href="ListenerSet.IterationFinishedEvent.html" title="interface in com.google.android.exoplayer2.util">ListenerSet.IterationFinishedEvent</a>&lt;<a href="ListenerSet.html" title="type parameter in ListenerSet">T</a>&gt;&nbsp;iterationFinishedEvent)</pre>
<div class="block">Copies the listener set.</div>
<div class="block">Copies the listener set.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>looper</code> - The new <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> for the copied listener set.</dd>
@ -402,7 +418,9 @@ public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exopla
<pre class="methodSignature">public&nbsp;void&nbsp;add&#8203;(<a href="ListenerSet.html" title="type parameter in ListenerSet">T</a>&nbsp;listener)</pre>
<div class="block">Adds a listener to the set.
<p>If a listener is already present, it will not be added again.</div>
<p>If a listener is already present, it will not be added again.
<p>This method can be called from any thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to be added.</dd>
@ -494,7 +512,7 @@ public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exopla
<a id="release()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;release()</pre>
@ -503,6 +521,26 @@ public&nbsp;<a href="ListenerSet.html" title="class in com.google.android.exopla
<p>This will ensure no events are sent to any listener after this method has been called.</div>
</li>
</ul>
<a id="setThrowsWhenUsingWrongThread(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setThrowsWhenUsingWrongThread</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;void&nbsp;setThrowsWhenUsingWrongThread&#8203;(boolean&nbsp;throwsWhenUsingWrongThread)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Do not use this method and ensure all calls are made from the correct thread.</div>
</div>
<div class="block">Sets whether methods throw when using the wrong thread.
<p>Do not use this method unless to support legacy use cases.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>throwsWhenUsingWrongThread</code> - Whether to throw when using the wrong thread.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -316,52 +316,59 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLine()">readLine</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads a line of text.</div>
<div class="block">Reads a line of text in UTF-8.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLine(java.nio.charset.Charset)">readLine</a></span>&#8203;(<a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top">Charset</a>&nbsp;charset)</code></th>
<td class="colLast">
<div class="block">Reads a line of text in <code>charset</code>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianInt()">readLittleEndianInt</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next four bytes as a signed value in little endian order.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<tr id="i19" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianInt24()">readLittleEndianInt24</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next three bytes as a signed value in little endian order.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<tr id="i20" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianLong()">readLittleEndianLong</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next eight bytes as a signed value in little endian order.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<tr id="i21" class="rowColor">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianShort()">readLittleEndianShort</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next two bytes as a signed value.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<tr id="i22" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianUnsignedInt()">readLittleEndianUnsignedInt</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next four bytes as an unsigned value in little endian order.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<tr id="i23" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianUnsignedInt24()">readLittleEndianUnsignedInt24</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next three bytes as an unsigned value in little endian order.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianUnsignedIntToInt()">readLittleEndianUnsignedIntToInt</a></span>()</code></th>
<td class="colLast">
@ -369,49 +376,49 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
is a zero.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLittleEndianUnsignedShort()">readLittleEndianUnsignedShort</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next two bytes as an unsigned value.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLong()">readLong</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next eight bytes as a signed value.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readNullTerminatedString()">readNullTerminatedString</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads up to the next NUL byte (or the limit) as UTF-8 characters.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readNullTerminatedString(int)">readNullTerminatedString</a></span>&#8203;(int&nbsp;length)</code></th>
<td class="colLast">
<div class="block">Reads the next <code>length</code> bytes as UTF-8 characters.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<tr id="i29" class="rowColor">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readShort()">readShort</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next two bytes as a signed value.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readString(int)">readString</a></span>&#8203;(int&nbsp;length)</code></th>
<td class="colLast">
<div class="block">Reads the next <code>length</code> bytes as UTF-8 characters.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readString(int,java.nio.charset.Charset)">readString</a></span>&#8203;(int&nbsp;length,
<a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top">Charset</a>&nbsp;charset)</code></th>
@ -419,70 +426,77 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Reads the next <code>length</code> bytes as characters in the specified <a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top"><code>Charset</code></a>.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<tr id="i32" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readSynchSafeInt()">readSynchSafeInt</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads a Synchsafe integer.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<tr id="i33" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedByte()">readUnsignedByte</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next byte as an unsigned value.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<tr id="i34" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedFixedPoint1616()">readUnsignedFixedPoint1616</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next four bytes, returning the integer portion of the fixed point 16.16 integer.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<tr id="i35" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedInt()">readUnsignedInt</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next four bytes as an unsigned value.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<tr id="i36" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedInt24()">readUnsignedInt24</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next three bytes as an unsigned value.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<tr id="i37" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedIntToInt()">readUnsignedIntToInt</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next four bytes as an unsigned integer into an integer, if the top bit is a zero.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<tr id="i38" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedLongToLong()">readUnsignedLongToLong</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next eight bytes as an unsigned long into a long, if the top bit is a zero.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<tr id="i39" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedShort()">readUnsignedShort</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads the next two bytes as an unsigned value.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<tr id="i40" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUtf8EncodedLong()">readUtf8EncodedLong</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads a long value encoded by UTF-8 encoding</div>
</td>
</tr>
<tr id="i40" class="altColor">
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top">Charset</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUtfCharsetFromBom()">readUtfCharsetFromBom</a></span>()</code></th>
<td class="colLast">
<div class="block">Reads a UTF byte order mark (BOM) and returns the UTF <a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top"><code>Charset</code></a> it represents.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset(byte%5B%5D)">reset</a></span>&#8203;(byte[]&nbsp;data)</code></th>
<td class="colLast">
@ -490,7 +504,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<code>data.length</code>.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset(byte%5B%5D,int)">reset</a></span>&#8203;(byte[]&nbsp;data,
int&nbsp;limit)</code></th>
@ -498,28 +512,28 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Updates the instance to wrap <code>data</code>, and resets the position to zero.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset(int)">reset</a></span>&#8203;(int&nbsp;limit)</code></th>
<td class="colLast">
<div class="block">Resets the position to zero and the limit to the specified value.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLimit(int)">setLimit</a></span>&#8203;(int&nbsp;limit)</code></th>
<td class="colLast">
<div class="block">Sets the limit.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<tr id="i46" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPosition(int)">setPosition</a></span>&#8203;(int&nbsp;position)</code></th>
<td class="colLast">
<div class="block">Sets the reading offset in the array.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#skipBytes(int)">skipBytes</a></span>&#8203;(int&nbsp;bytes)</code></th>
<td class="colLast">
@ -1184,22 +1198,43 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/String.ht
<h4>readLine</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;readLine()</pre>
<div class="block">Reads a line of text.
<div class="block">Reads a line of text in UTF-8.
<p>Equivalent to passing <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/base/Charsets.html?is-external=true#UTF_8" title="class or interface in com.google.common.base" class="externalLink"><code>Charsets.UTF_8</code></a> to <a href="#readLine(java.nio.charset.Charset)"><code>readLine(Charset)</code></a>.</div>
</li>
</ul>
<a id="readLine(java.nio.charset.Charset)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLine</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;readLine&#8203;(<a href="https://developer.android.com/reference/java/nio/charset/Charset.html?is-external=true" title="class or interface in java.nio.charset" class="externalLink" target="_top">Charset</a>&nbsp;charset)</pre>
<div class="block">Reads a line of text in <code>charset</code>.
<p>A line is considered to be terminated by any one of a carriage return ('\r'), a line feed
('\n'), or a carriage return followed immediately by a line feed ('\r\n'). The UTF-8 charset is
used. This method discards leading UTF-8 byte order marks, if present.</div>
('\n'), or a carriage return followed immediately by a line feed ('\r\n'). This method discards
leading UTF byte order marks (BOM), if present.
<p>The <a href="#getPosition()">position</a> is advanced to start of the next line (i.e. any
line terminators are skipped).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>charset</code> - The charset used to interpret the bytes as a <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>String</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The line not including any line-termination characters, or null if the end of the data
has already been reached.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="externalLink" target="_top">IllegalArgumentException</a></code> - if charset is not supported. Only US_ASCII, UTF-8, UTF-16,
UTF-16BE, and UTF-16LE are supported.</dd>
</dl>
</li>
</ul>
<a id="readUtf8EncodedLong()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>readUtf8EncodedLong</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;readUtf8EncodedLong()</pre>
@ -1212,6 +1247,18 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/String.ht
</dl>
</li>
</ul>
<a id="readUtfCharsetFromBom()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>readUtfCharsetFromBom</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top">Charset</a>&nbsp;readUtfCharsetFromBom()</pre>
<div class="block">Reads a UTF byte order mark (BOM) and returns the UTF <a href="https://developer.android.com/reference/java/nio/charset/Charset.html" title="class or interface in java.nio.charset" class="externalLink" target="_top"><code>Charset</code></a> it represents. Returns
<code>null</code> without advancing <a href="#getPosition()"><code>position</code></a> if no BOM is found.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -159,6 +159,11 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">A static instance to represent an unknown size value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="Size.html" title="class in com.google.android.exoplayer2.util">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ZERO">ZERO</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
@ -257,13 +262,22 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="UNKNOWN">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>UNKNOWN</h4>
<pre>public static final&nbsp;<a href="Size.html" title="class in com.google.android.exoplayer2.util">Size</a> UNKNOWN</pre>
<div class="block">A static instance to represent an unknown size value.</div>
</li>
</ul>
<a id="ZERO">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ZERO</h4>
<pre>public static final&nbsp;<a href="Size.html" title="class in com.google.android.exoplayer2.util">Size</a> ZERO</pre>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":41,"i72":41,"i73":9,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":9,"i85":9,"i86":9,"i87":9,"i88":9,"i89":9,"i90":9,"i91":9,"i92":9,"i93":9,"i94":9,"i95":9,"i96":9,"i97":9,"i98":9,"i99":9,"i100":9,"i101":9,"i102":9,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9,"i113":9,"i114":9,"i115":9,"i116":9,"i117":9,"i118":9,"i119":9,"i120":9,"i121":9,"i122":9,"i123":9,"i124":9,"i125":9};
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":41,"i73":41,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":9,"i85":9,"i86":9,"i87":9,"i88":9,"i89":9,"i90":9,"i91":9,"i92":9,"i93":9,"i94":9,"i95":9,"i96":9,"i97":9,"i98":9,"i99":9,"i100":9,"i101":9,"i102":9,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9,"i113":9,"i114":9,"i115":9,"i116":9,"i117":9,"i118":9,"i119":9,"i120":9,"i121":9,"i122":9,"i123":9,"i124":9,"i125":9,"i126":9,"i127":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -645,34 +645,43 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.html" title="class or interface in android.graphics.drawable" class="externalLink" target="_top">Drawable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDrawable(android.content.Context,android.content.res.Resources,int)">getDrawable</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/content/res/Resources.html" title="class or interface in android.content.res" class="externalLink" target="_top">Resources</a>&nbsp;resources,
int&nbsp;drawableRes)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.html" title="class or interface in android.graphics.drawable" class="externalLink"><code>Drawable</code></a> for the given resource or throws a <a href="https://developer.android.com/reference/android/content/res/Resources.NotFoundException.html?is-external=true" title="class or interface in android.content.res" class="externalLink" target="_top"><code>Resources.NotFoundException</code></a> if not found.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDrmUuid(java.lang.String)">getDrmUuid</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;drmScheme)</code></th>
<td class="colLast">
<div class="block">Derives a DRM <a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top"><code>UUID</code></a> from <code>drmScheme</code>.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.PlaybackException.ErrorCode int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getErrorCodeForMediaDrmErrorCode(int)">getErrorCodeForMediaDrmErrorCode</a></span>&#8203;(int&nbsp;mediaDrmErrorCode)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="../PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2"><code>PlaybackException.ErrorCode</code></a> value that corresponds to the provided <a href="https://developer.android.com/reference/android/media/MediaDrm.ErrorCodes.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaDrm.ErrorCodes</code></a> value.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<tr id="i54" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getErrorCodeFromPlatformDiagnosticsInfo(java.lang.String)">getErrorCodeFromPlatformDiagnosticsInfo</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;diagnosticsInfo)</code></th>
<td class="colLast">
<div class="block">Attempts to parse an error code from a diagnostic string found in framework media exceptions.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFormatSupportString(@com.google.android.exoplayer2.C.FormatSupportint)">getFormatSupportString</a></span>&#8203;(@com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport)</code></th>
<td class="colLast">
<div class="block">Returns string representation of a <a href="../C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> flag.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<tr id="i56" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIntegerCodeForString(java.lang.String)">getIntegerCodeForString</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;string)</code></th>
<td class="colLast">
@ -680,14 +689,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
as bytes.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocaleLanguageTag(java.util.Locale)">getLocaleLanguageTag</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/Locale.html" title="class or interface in java.util" class="externalLink" target="_top">Locale</a>&nbsp;locale)</code></th>
<td class="colLast">
<div class="block">Returns the language tag for a <a href="https://developer.android.com/reference/java/util/Locale.html" title="class or interface in java.util" class="externalLink" target="_top"><code>Locale</code></a>.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<tr id="i58" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaDurationForPlayoutDuration(long,float)">getMediaDurationForPlayoutDuration</a></span>&#8203;(long&nbsp;playoutDuration,
float&nbsp;speed)</code></th>
@ -695,21 +704,21 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the duration of media that will elapse in <code>playoutDuration</code>.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNowUnixTimeMs(long)">getNowUnixTimeMs</a></span>&#8203;(long&nbsp;elapsedRealtimeEpochOffsetMs)</code></th>
<td class="colLast">
<div class="block">Returns the current time in milliseconds since the epoch.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<tr id="i60" class="altColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.PcmEncoding int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPcmEncoding(int)">getPcmEncoding</a></span>&#8203;(int&nbsp;bitDepth)</code></th>
<td class="colLast">
<div class="block">Converts a sample bit depth to a corresponding PCM encoding constant.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<tr id="i61" class="rowColor">
<td class="colFirst"><code>static <a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPcmFormat(@com.google.android.exoplayer2.C.PcmEncodingint,int,int)">getPcmFormat</a></span>&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding,
int&nbsp;channels,
@ -718,7 +727,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Gets a PCM <a href="../Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a> with the specified parameters.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<tr id="i62" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPcmFrameSize(@com.google.android.exoplayer2.C.PcmEncodingint,int)">getPcmFrameSize</a></span>&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding,
int&nbsp;channelCount)</code></th>
@ -726,7 +735,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the frame size for audio with <code>channelCount</code> channels in the specified encoding.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlayoutDurationForMediaDuration(long,float)">getPlayoutDurationForMediaDuration</a></span>&#8203;(long&nbsp;mediaDuration,
float&nbsp;speed)</code></th>
@ -734,14 +743,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the playout duration of <code>mediaDuration</code> of media.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<tr id="i64" class="altColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.StreamType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)">getStreamTypeForAudioUsage</a></span>&#8203;(@com.google.android.exoplayer2.C.AudioUsage int&nbsp;usage)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="../C.StreamType.html" title="annotation in com.google.android.exoplayer2"><code>C.StreamType</code></a> corresponding to the specified <a href="../C.AudioUsage.html" title="annotation in com.google.android.exoplayer2"><code>C.AudioUsage</code></a>.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<tr id="i65" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringForTime(java.lang.StringBuilder,java.util.Formatter,long)">getStringForTime</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/StringBuilder.html" title="class or interface in java.lang" class="externalLink" target="_top">StringBuilder</a>&nbsp;builder,
<a href="https://developer.android.com/reference/java/util/Formatter.html" title="class or interface in java.util" class="externalLink" target="_top">Formatter</a>&nbsp;formatter,
@ -750,7 +759,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the specified millisecond time formatted as a string.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<tr id="i66" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSystemLanguageCodes()">getSystemLanguageCodes</a></span>()</code></th>
<td class="colLast">
@ -758,14 +767,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
ordered by preference.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackTypeString(@com.google.android.exoplayer2.C.TrackTypeint)">getTrackTypeString</a></span>&#8203;(@com.google.android.exoplayer2.C.TrackType int&nbsp;trackType)</code></th>
<td class="colLast">
<div class="block">Returns a string representation of a <a href="../C.TrackType.html" title="annotation in com.google.android.exoplayer2"><code>C.TrackType</code></a>.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<tr id="i68" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserAgent(android.content.Context,java.lang.String)">getUserAgent</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;applicationName)</code></th>
@ -773,28 +782,28 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns a user agent string based on the given application name and the library version.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUtf8Bytes(java.lang.String)">getUtf8Bytes</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Returns a new byte array containing the code points of a <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>String</code></a> encoded using UTF-8.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<tr id="i70" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gzip(byte%5B%5D)">gzip</a></span>&#8203;(byte[]&nbsp;input)</code></th>
<td class="colLast">
<div class="block">Compresses <code>input</code> using gzip and returns the result in a newly allocated byte array.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.ContentType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferContentType(android.net.Uri)">inferContentType</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</code></th>
<td class="colLast">
<div class="block">Makes a best guess to infer the <a href="../C.ContentType.html" title="annotation in com.google.android.exoplayer2"><code>C.ContentType</code></a> from a <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top"><code>Uri</code></a>.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<tr id="i72" class="altColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.ContentType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferContentType(android.net.Uri,java.lang.String)">inferContentType</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;overrideExtension)</code></th>
@ -805,7 +814,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</div>
</td>
</tr>
<tr id="i72" class="altColor">
<tr id="i73" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.ContentType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferContentType(java.lang.String)">inferContentType</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;fileName)</code></th>
<td class="colLast">
@ -815,14 +824,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<tr id="i74" class="altColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.ContentType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferContentTypeForExtension(java.lang.String)">inferContentTypeForExtension</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;fileExtension)</code></th>
<td class="colLast">
<div class="block">Makes a best guess to infer the <a href="../C.ContentType.html" title="annotation in com.google.android.exoplayer2"><code>C.ContentType</code></a> from a file extension.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<tr id="i75" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.ContentType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferContentTypeForUriAndMimeType(android.net.Uri,java.lang.String)">inferContentTypeForUriAndMimeType</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType)</code></th>
@ -830,7 +839,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Makes a best guess to infer the <a href="../C.ContentType.html" title="annotation in com.google.android.exoplayer2"><code>C.ContentType</code></a> from a <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top"><code>Uri</code></a> and optional MIME type.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<tr id="i76" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inflate(com.google.android.exoplayer2.util.ParsableByteArray,com.google.android.exoplayer2.util.ParsableByteArray,java.util.zip.Inflater)">inflate</a></span>&#8203;(<a href="ParsableByteArray.html" title="class in com.google.android.exoplayer2.util">ParsableByteArray</a>&nbsp;input,
<a href="ParsableByteArray.html" title="class in com.google.android.exoplayer2.util">ParsableByteArray</a>&nbsp;output,
@ -839,49 +848,56 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Uncompresses the data in <code>input</code>.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#intToStringMaxRadix(int)">intToStringMaxRadix</a></span>&#8203;(int&nbsp;i)</code></th>
<td class="colLast">
<div class="block">Returns a string representation of the integer using radix value <a href="https://developer.android.com/reference/java/lang/Character.html#MAX_RADIX" title="class or interface in java.lang" class="externalLink" target="_top"><code>Character.MAX_RADIX</code></a>.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAutomotive(android.content.Context)">isAutomotive</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Returns whether the app is running on an automotive device.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<tr id="i79" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEncodingHighResolutionPcm(@com.google.android.exoplayer2.C.PcmEncodingint)">isEncodingHighResolutionPcm</a></span>&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;encoding)</code></th>
<td class="colLast">
<div class="block">Returns whether <code>encoding</code> is high resolution (&gt; 16-bit) PCM.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<tr id="i80" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEncodingLinearPcm(@com.google.android.exoplayer2.C.Encodingint)">isEncodingLinearPcm</a></span>&#8203;(@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding)</code></th>
<td class="colLast">
<div class="block">Returns whether <code>encoding</code> is one of the linear PCM encodings.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<tr id="i81" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLinebreak(int)">isLinebreak</a></span>&#8203;(int&nbsp;c)</code></th>
<td class="colLast">
<div class="block">Returns whether the given character is a carriage return ('\r') or a line feed ('\n').</div>
</td>
</tr>
<tr id="i80" class="altColor">
<tr id="i82" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLocalFileUri(android.net.Uri)">isLocalFileUri</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</code></th>
<td class="colLast">
<div class="block">Returns true if the URI is a path to a local file or a reference to a local file.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<tr id="i83" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTv(android.content.Context)">isTv</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Returns whether the app is running on a TV device.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<tr id="i84" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#linearSearch(int%5B%5D,int)">linearSearch</a></span>&#8203;(int[]&nbsp;array,
int&nbsp;value)</code></th>
@ -889,7 +905,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the index of the first occurrence of <code>value</code> in <code>array</code>, or <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if <code>value</code> is not contained in <code>array</code>.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<tr id="i85" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#linearSearch(long%5B%5D,long)">linearSearch</a></span>&#8203;(long[]&nbsp;array,
long&nbsp;value)</code></th>
@ -897,14 +913,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the index of the first occurrence of <code>value</code> in <code>array</code>, or <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a> if <code>value</code> is not contained in <code>array</code>.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<tr id="i86" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxValue(android.util.SparseLongArray)">maxValue</a></span>&#8203;(<a href="https://developer.android.com/reference/android/util/SparseLongArray.html" title="class or interface in android.util" class="externalLink" target="_top">SparseLongArray</a>&nbsp;sparseLongArray)</code></th>
<td class="colLast">
<div class="block">Returns the maximum value in the given <a href="https://developer.android.com/reference/android/util/SparseLongArray.html" title="class or interface in android.util" class="externalLink" target="_top"><code>SparseLongArray</code></a>.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<tr id="i87" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeRequestReadExternalStoragePermission(android.app.Activity,android.net.Uri...)">maybeRequestReadExternalStoragePermission</a></span>&#8203;(<a href="https://developer.android.com/reference/android/app/Activity.html" title="class or interface in android.app" class="externalLink" target="_top">Activity</a>&nbsp;activity,
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>...&nbsp;uris)</code></th>
@ -913,7 +929,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
permission read the specified <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top"><code>Uri</code></a>s, requesting the permission if necessary.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<tr id="i88" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeRequestReadExternalStoragePermission(android.app.Activity,com.google.android.exoplayer2.MediaItem...)">maybeRequestReadExternalStoragePermission</a></span>&#8203;(<a href="https://developer.android.com/reference/android/app/Activity.html" title="class or interface in android.app" class="externalLink" target="_top">Activity</a>&nbsp;activity,
<a href="../MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>...&nbsp;mediaItems)</code></th>
@ -923,14 +939,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
necessary.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<tr id="i89" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minValue(android.util.SparseLongArray)">minValue</a></span>&#8203;(<a href="https://developer.android.com/reference/android/util/SparseLongArray.html" title="class or interface in android.util" class="externalLink" target="_top">SparseLongArray</a>&nbsp;sparseLongArray)</code></th>
<td class="colLast">
<div class="block">Returns the minimum value in the given <a href="https://developer.android.com/reference/android/util/SparseLongArray.html" title="class or interface in android.util" class="externalLink" target="_top"><code>SparseLongArray</code></a>.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<tr id="i90" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveItems(java.util.List,int,int,int)">moveItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink" target="_top">List</a>&lt;T&gt;&nbsp;items,
int&nbsp;fromIndex,
@ -940,28 +956,28 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Moves the elements starting at <code>fromIndex</code> to <code>newFromIndex</code>.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<tr id="i91" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#msToUs(long)">msToUs</a></span>&#8203;(long&nbsp;timeMs)</code></th>
<td class="colLast">
<div class="block">Converts a time in milliseconds to the corresponding time in microseconds, preserving <a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> values and <a href="../C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a> values.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<tr id="i92" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/util/concurrent/ExecutorService.html" title="class or interface in java.util.concurrent" class="externalLink" target="_top">ExecutorService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSingleThreadExecutor(java.lang.String)">newSingleThreadExecutor</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;threadName)</code></th>
<td class="colLast">
<div class="block">Instantiates a new single threaded executor whose thread has the specified name.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<tr id="i93" class="rowColor">
<td class="colFirst"><code>static @PolyNull <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#normalizeLanguageCode(java.lang.String)">normalizeLanguageCode</a></span>&#8203;(@PolyNull <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;language)</code></th>
<td class="colLast">
<div class="block">Returns a normalized IETF BCP 47 language tag for <code>language</code>.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<tr id="i94" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullSafeArrayAppend(T%5B%5D,T)">nullSafeArrayAppend</a></span>&#8203;(T[]&nbsp;original,
T&nbsp;newElement)</code></th>
@ -969,7 +985,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Creates a new array containing <code>original</code> with <code>newElement</code> appended.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<tr id="i95" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullSafeArrayConcatenation(T%5B%5D,T%5B%5D)">nullSafeArrayConcatenation</a></span>&#8203;(T[]&nbsp;first,
T[]&nbsp;second)</code></th>
@ -977,7 +993,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Creates a new array containing the concatenation of two non-null type arrays.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<tr id="i96" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullSafeArrayCopy(T%5B%5D,int)">nullSafeArrayCopy</a></span>&#8203;(T[]&nbsp;input,
int&nbsp;length)</code></th>
@ -985,7 +1001,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Copies and optionally truncates an array.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<tr id="i97" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullSafeArrayCopyOfRange(T%5B%5D,int,int)">nullSafeArrayCopyOfRange</a></span>&#8203;(T[]&nbsp;input,
int&nbsp;from,
@ -994,7 +1010,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Copies a subset of an array.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<tr id="i98" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullSafeListToArray(java.util.List,T%5B%5D)">nullSafeListToArray</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink" target="_top">List</a>&lt;T&gt;&nbsp;list,
T[]&nbsp;array)</code></th>
@ -1002,7 +1018,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Copies the contents of <code>list</code> into <code>array</code>.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<tr id="i99" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseXsDateTime(java.lang.String)">parseXsDateTime</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">
@ -1010,14 +1026,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
epoch.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<tr id="i100" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseXsDuration(java.lang.String)">parseXsDuration</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Parses an xs:duration attribute value, returning the parsed duration in milliseconds.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<tr id="i101" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#postOrRun(android.os.Handler,java.lang.Runnable)">postOrRun</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink" target="_top">Runnable</a>&nbsp;runnable)</code></th>
@ -1025,7 +1041,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Posts the <a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink"><code>Runnable</code></a> if the calling thread differs with the <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> of the <a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Handler</code></a>.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<tr id="i102" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#postOrRunWithCompletion(android.os.Handler,java.lang.Runnable,T)">postOrRunWithCompletion</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler,
<a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink" target="_top">Runnable</a>&nbsp;runnable,
@ -1034,7 +1050,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Posts the <a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink"><code>Runnable</code></a> if the calling thread differs with the <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> of the <a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Handler</code></a>.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<tr id="i103" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBoolean(android.os.Parcel)">readBoolean</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Parcel.html" title="class or interface in android.os" class="externalLink" target="_top">Parcel</a>&nbsp;parcel)</code></th>
<td class="colLast">
@ -1042,14 +1058,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
and all other values mapping to true.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<tr id="i104" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recursiveDelete(java.io.File)">recursiveDelete</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html" title="class or interface in java.io" class="externalLink" target="_top">File</a>&nbsp;fileOrDirectory)</code></th>
<td class="colLast">
<div class="block">Recursively deletes a directory and its content.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<tr id="i105" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerReceiverNotExported(android.content.Context,android.content.BroadcastReceiver,android.content.IntentFilter)">registerReceiverNotExported</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/content/BroadcastReceiver.html" title="class or interface in android.content" class="externalLink" target="_top">BroadcastReceiver</a>&nbsp;receiver,
@ -1059,7 +1075,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
apps.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<tr id="i106" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerReceiverNotExported(android.content.Context,android.content.BroadcastReceiver,android.content.IntentFilter,android.os.Handler)">registerReceiverNotExported</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/content/BroadcastReceiver.html" title="class or interface in android.content" class="externalLink" target="_top">BroadcastReceiver</a>&nbsp;receiver,
@ -1070,7 +1086,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
apps.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<tr id="i107" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeRange(java.util.List,int,int)">removeRange</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink" target="_top">List</a>&lt;T&gt;&nbsp;list,
int&nbsp;fromIndex,
@ -1079,7 +1095,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Removes an indexed range from a List.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<tr id="i108" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scaleLargeTimestamp(long,long,long)">scaleLargeTimestamp</a></span>&#8203;(long&nbsp;timestamp,
long&nbsp;multiplier,
@ -1088,7 +1104,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Scales a large timestamp.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<tr id="i109" class="rowColor">
<td class="colFirst"><code>static long[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scaleLargeTimestamps(java.util.List,long,long)">scaleLargeTimestamps</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Long</a>&gt;&nbsp;timestamps,
long&nbsp;multiplier,
@ -1097,7 +1113,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Applies <a href="#scaleLargeTimestamp(long,long,long)"><code>scaleLargeTimestamp(long, long, long)</code></a> to a list of unscaled timestamps.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<tr id="i110" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scaleLargeTimestampsInPlace(long%5B%5D,long,long)">scaleLargeTimestampsInPlace</a></span>&#8203;(long[]&nbsp;timestamps,
long&nbsp;multiplier,
@ -1106,7 +1122,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Applies <a href="#scaleLargeTimestamp(long,long,long)"><code>scaleLargeTimestamp(long, long, long)</code></a> to an array of unscaled timestamps.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<tr id="i111" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sneakyThrow(java.lang.Throwable)">sneakyThrow</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;t)</code></th>
<td class="colLast">
@ -1114,7 +1130,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
not declared to be thrown.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<tr id="i112" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#split(java.lang.String,java.lang.String)">split</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;regex)</code></th>
@ -1122,7 +1138,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Splits a string using <code>value.split(regex, -1</code>).</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<tr id="i113" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitAtFirst(java.lang.String,java.lang.String)">splitAtFirst</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;value,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;regex)</code></th>
@ -1130,14 +1146,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Splits the string at the first occurrence of the delimiter <code>regex</code>.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<tr id="i114" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitCodecs(java.lang.String)">splitCodecs</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;codecs)</code></th>
<td class="colLast">
<div class="block">Splits a codecs sequence string, as defined in RFC 6381, into individual codec strings.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<tr id="i115" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/android/content/ComponentName.html" title="class or interface in android.content" class="externalLink" target="_top">ComponentName</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startForegroundService(android.content.Context,android.content.Intent)">startForegroundService</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/content/Intent.html" title="class or interface in android.content" class="externalLink" target="_top">Intent</a>&nbsp;intent)</code></th>
@ -1146,7 +1162,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a href="https://developer.android.com/reference/android/content/Context.html#startService(android.content.Intent)" title="class or interface in android.content" class="externalLink" target="_top"><code>Context.startService(Intent)</code></a> otherwise.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<tr id="i116" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subtractWithOverflowDefault(long,long,long)">subtractWithOverflowDefault</a></span>&#8203;(long&nbsp;x,
long&nbsp;y,
@ -1155,14 +1171,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the difference between two arguments, or a third argument if the result overflows.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<tr id="i117" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sum(long...)">sum</a></span>&#8203;(long...&nbsp;summands)</code></th>
<td class="colLast">
<div class="block">Returns the sum of all summands of the given array.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<tr id="i118" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tableExists(android.database.sqlite.SQLiteDatabase,java.lang.String)">tableExists</a></span>&#8203;(<a href="https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html" title="class or interface in android.database.sqlite" class="externalLink" target="_top">SQLiteDatabase</a>&nbsp;database,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;tableName)</code></th>
@ -1170,21 +1186,21 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns whether the table exists in the database.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<tr id="i119" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toByteArray(java.io.InputStream)">toByteArray</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/InputStream.html" title="class or interface in java.io" class="externalLink" target="_top">InputStream</a>&nbsp;inputStream)</code></th>
<td class="colLast">
<div class="block">Converts the entirety of an <a href="https://developer.android.com/reference/java/io/InputStream.html" title="class or interface in java.io" class="externalLink" target="_top"><code>InputStream</code></a> to a byte array.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<tr id="i120" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexString(byte%5B%5D)">toHexString</a></span>&#8203;(byte[]&nbsp;bytes)</code></th>
<td class="colLast">
<div class="block">Returns a string containing a lower-case hex representation of the bytes provided.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<tr id="i121" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLong(int,int)">toLong</a></span>&#8203;(int&nbsp;mostSignificantBits,
int&nbsp;leastSignificantBits)</code></th>
@ -1192,14 +1208,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Returns the long that is composed of the bits of the 2 specified integers.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<tr id="i122" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toUnsignedLong(int)">toUnsignedLong</a></span>&#8203;(int&nbsp;x)</code></th>
<td class="colLast">
<div class="block">Converts an integer to a long by unsigned conversion.</div>
</td>
</tr>
<tr id="i121" class="rowColor">
<tr id="i123" class="rowColor">
<td class="colFirst"><code>static &lt;T,&#8203;U&gt;<br><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;T&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transformFutureAsync(com.google.common.util.concurrent.ListenableFuture,com.google.common.util.concurrent.AsyncFunction)">transformFutureAsync</a></span>&#8203;(<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;U&gt;&nbsp;future,
<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/AsyncFunction.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">AsyncFunction</a>&lt;U,&#8203;T&gt;&nbsp;transformFunction)</code></th>
@ -1207,7 +1223,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Asynchronously transforms the result of a <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink"><code>ListenableFuture</code></a>.</div>
</td>
</tr>
<tr id="i122" class="altColor">
<tr id="i124" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#truncateAscii(java.lang.CharSequence,int)">truncateAscii</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;sequence,
int&nbsp;maxLength)</code></th>
@ -1215,21 +1231,21 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Truncates a sequence of ASCII characters to a maximum length.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<tr id="i125" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unescapeFileName(java.lang.String)">unescapeFileName</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;fileName)</code></th>
<td class="colLast">
<div class="block">Unescapes an escaped file or directory name back to its original value.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<tr id="i126" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#usToMs(long)">usToMs</a></span>&#8203;(long&nbsp;timeUs)</code></th>
<td class="colLast">
<div class="block">Converts a time in microseconds to the corresponding time in milliseconds, preserving <a href="../C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> and <a href="../C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a> values.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<tr id="i127" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#writeBoolean(android.os.Parcel,boolean)">writeBoolean</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/Parcel.html" title="class or interface in android.os" class="externalLink" target="_top">Parcel</a>&nbsp;parcel,
boolean&nbsp;value)</code></th>
@ -3670,7 +3686,7 @@ public static&nbsp;<a href="https://developer.android.com/reference/java/lang/St
<a id="sum(long...)">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>sum</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;sum&#8203;(long...&nbsp;summands)</pre>
@ -3683,6 +3699,41 @@ public static&nbsp;<a href="https://developer.android.com/reference/java/lang/St
</dl>
</li>
</ul>
<a id="getDrawable(android.content.Context,android.content.res.Resources,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDrawable</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.html" title="class or interface in android.graphics.drawable" class="externalLink">Drawable</a>&nbsp;getDrawable&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/content/res/Resources.html" title="class or interface in android.content.res" class="externalLink" target="_top">Resources</a>&nbsp;resources,
@DrawableRes
int&nbsp;drawableRes)</pre>
<div class="block">Returns a <a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.html" title="class or interface in android.graphics.drawable" class="externalLink"><code>Drawable</code></a> for the given resource or throws a <a href="https://developer.android.com/reference/android/content/res/Resources.NotFoundException.html?is-external=true" title="class or interface in android.content.res" class="externalLink" target="_top"><code>Resources.NotFoundException</code></a> if not found.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The context to get the theme from starting with API 21.</dd>
<dd><code>resources</code> - The resources to load the drawable from.</dd>
<dd><code>drawableRes</code> - The drawable resource int.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The loaded <a href="https://developer.android.com/reference/android/graphics/drawable/Drawable.html" title="class or interface in android.graphics.drawable" class="externalLink" target="_top"><code>Drawable</code></a>.</dd>
</dl>
</li>
</ul>
<a id="intToStringMaxRadix(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>intToStringMaxRadix</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;intToStringMaxRadix&#8203;(int&nbsp;i)</pre>
<div class="block">Returns a string representation of the integer using radix value <a href="https://developer.android.com/reference/java/lang/Character.html#MAX_RADIX" title="class or interface in java.lang" class="externalLink" target="_top"><code>Character.MAX_RADIX</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>i</code> - An integer to be converted to String.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
/*!
JSZip v3.2.1 - A JavaScript class for generating and reading zip files
JSZip v3.7.1 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
@ -123,7 +123,6 @@ exports.decode = function(input) {
var external = require("./external");
var DataWorker = require('./stream/DataWorker');
var DataLengthProbe = require('./stream/DataLengthProbe');
var Crc32Probe = require('./stream/Crc32Probe');
var DataLengthProbe = require('./stream/DataLengthProbe');
@ -149,14 +148,14 @@ CompressedObject.prototype = {
* Create a worker to get the uncompressed content.
* @return {GenericWorker} the worker.
*/
getContentWorker : function () {
getContentWorker: function () {
var worker = new DataWorker(external.Promise.resolve(this.compressedContent))
.pipe(this.compression.uncompressWorker())
.pipe(new DataLengthProbe("data_length"));
.pipe(this.compression.uncompressWorker())
.pipe(new DataLengthProbe("data_length"));
var that = this;
worker.on("end", function () {
if(this.streamInfo['data_length'] !== that.uncompressedSize) {
if (this.streamInfo['data_length'] !== that.uncompressedSize) {
throw new Error("Bug : uncompressed data size mismatch");
}
});
@ -166,19 +165,19 @@ CompressedObject.prototype = {
* Create a worker to get the compressed content.
* @return {GenericWorker} the worker.
*/
getCompressedWorker : function () {
getCompressedWorker: function () {
return new DataWorker(external.Promise.resolve(this.compressedContent))
.withStreamInfo("compressedSize", this.compressedSize)
.withStreamInfo("uncompressedSize", this.uncompressedSize)
.withStreamInfo("crc32", this.crc32)
.withStreamInfo("compression", this.compression)
;
.withStreamInfo("compressedSize", this.compressedSize)
.withStreamInfo("uncompressedSize", this.uncompressedSize)
.withStreamInfo("crc32", this.crc32)
.withStreamInfo("compression", this.compression)
;
}
};
/**
* Chain the given worker with other workers to compress the content with the
* given compresion.
* given compression.
* @param {GenericWorker} uncompressedWorker the worker to pipe.
* @param {Object} compression the compression object.
* @param {Object} compressionOptions the options to use when compressing.
@ -186,11 +185,11 @@ CompressedObject.prototype = {
*/
CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {
return uncompressedWorker
.pipe(new Crc32Probe())
.pipe(new DataLengthProbe("uncompressedSize"))
.pipe(compression.compressWorker(compressionOptions))
.pipe(new DataLengthProbe("compressedSize"))
.withStreamInfo("compression", compression);
.pipe(new Crc32Probe())
.pipe(new DataLengthProbe("uncompressedSize"))
.pipe(compression.compressWorker(compressionOptions))
.pipe(new DataLengthProbe("compressedSize"))
.withStreamInfo("compression", compression);
};
module.exports = CompressedObject;
@ -484,7 +483,7 @@ var generateDosExternalFileAttr = function (dosPermissions, isDir) {
/**
* Generate the various parts used in the construction of the final zip file.
* @param {Object} streamInfo the hash with informations about the compressed file.
* @param {Object} streamInfo the hash with information about the compressed file.
* @param {Boolean} streamedContent is the content streamed ?
* @param {Boolean} streamingEnded is the stream finished ?
* @param {number} offset the current offset from the start of the zip file.
@ -707,7 +706,7 @@ var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, loca
/**
* Generate data descriptors for a file entry.
* @param {Object} streamInfo the hash generated by a worker, containing informations
* @param {Object} streamInfo the hash generated by a worker, containing information
* on the file entry.
* @return {String} the data descriptors.
*/
@ -759,7 +758,7 @@ function ZipFileWorker(streamFiles, comment, platform, encodeFileName) {
// The total number of entries in this zip file.
this.entriesCount = 0;
// the name of the file currently being added, null when handling the end of the zip file.
// Used for the emited metadata.
// Used for the emitted metadata.
this.currentFile = null;
@ -1034,7 +1033,10 @@ function JSZip() {
// "folder/" : {...},
// "folder/data.txt" : {...}
// }
this.files = {};
// NOTE: we use a null prototype because we do not
// want filenames like "toString" coming from a zip file
// to overwrite methods and attributes in a normal Object.
this.files = Object.create(null);
this.comment = null;
@ -1057,7 +1059,7 @@ JSZip.defaults = require('./defaults');
// TODO find a better way to handle this version,
// a require('package.json').version doesn't work with webpack, see #327
JSZip.version = "3.2.0";
JSZip.version = "3.7.1";
JSZip.loadAsync = function (content, options) {
return new JSZip().loadAsync(content, options);
@ -1071,7 +1073,6 @@ module.exports = JSZip;
var utils = require('./utils');
var external = require("./external");
var utf8 = require('./utf8');
var utils = require('./utils');
var ZipEntries = require('./zipEntries');
var Crc32Probe = require('./stream/Crc32Probe');
var nodejsUtils = require("./nodejsUtils");
@ -1087,18 +1088,18 @@ function checkEntryCRC32(zipEntry) {
worker.on("error", function (e) {
reject(e);
})
.on("end", function () {
if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
reject(new Error("Corrupted zip : CRC32 mismatch"));
} else {
resolve();
}
})
.resume();
.on("end", function () {
if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
reject(new Error("Corrupted zip : CRC32 mismatch"));
} else {
resolve();
}
})
.resume();
});
}
module.exports = function(data, options) {
module.exports = function (data, options) {
var zip = this;
options = utils.extend(options || {}, {
base64: false,
@ -1113,41 +1114,41 @@ module.exports = function(data, options) {
}
return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64)
.then(function(data) {
var zipEntries = new ZipEntries(options);
zipEntries.load(data);
return zipEntries;
}).then(function checkCRC32(zipEntries) {
var promises = [external.Promise.resolve(zipEntries)];
var files = zipEntries.files;
if (options.checkCRC32) {
for (var i = 0; i < files.length; i++) {
promises.push(checkEntryCRC32(files[i]));
.then(function (data) {
var zipEntries = new ZipEntries(options);
zipEntries.load(data);
return zipEntries;
}).then(function checkCRC32(zipEntries) {
var promises = [external.Promise.resolve(zipEntries)];
var files = zipEntries.files;
if (options.checkCRC32) {
for (var i = 0; i < files.length; i++) {
promises.push(checkEntryCRC32(files[i]));
}
}
return external.Promise.all(promises);
}).then(function addFiles(results) {
var zipEntries = results.shift();
var files = zipEntries.files;
for (var i = 0; i < files.length; i++) {
var input = files[i];
zip.file(input.fileNameStr, input.decompressed, {
binary: true,
optimizedBinaryString: true,
date: input.date,
dir: input.dir,
comment: input.fileCommentStr.length ? input.fileCommentStr : null,
unixPermissions: input.unixPermissions,
dosPermissions: input.dosPermissions,
createFolders: options.createFolders
});
}
if (zipEntries.zipComment.length) {
zip.comment = zipEntries.zipComment;
}
}
return external.Promise.all(promises);
}).then(function addFiles(results) {
var zipEntries = results.shift();
var files = zipEntries.files;
for (var i = 0; i < files.length; i++) {
var input = files[i];
zip.file(input.fileNameStr, input.decompressed, {
binary: true,
optimizedBinaryString: true,
date: input.date,
dir: input.dir,
comment : input.fileCommentStr.length ? input.fileCommentStr : null,
unixPermissions : input.unixPermissions,
dosPermissions : input.dosPermissions,
createFolders: options.createFolders
});
}
if (zipEntries.zipComment.length) {
zip.comment = zipEntries.zipComment;
}
return zip;
});
return zip;
});
};
},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){
@ -1511,16 +1512,16 @@ var out = {
*/
forEach: function(cb) {
var filename, relativePath, file;
/* jshint ignore:start */
// ignore warning about unwanted properties because this.files is a null prototype object
for (filename in this.files) {
if (!this.files.hasOwnProperty(filename)) {
continue;
}
file = this.files[filename];
relativePath = filename.slice(this.root.length, filename.length);
if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
}
}
/* jshint ignore:end */
},
/**
@ -1667,7 +1668,7 @@ var out = {
opts.type = opts.type.toLowerCase();
opts.compression = opts.compression.toUpperCase();
// "binarystring" is prefered but the internals use "string".
// "binarystring" is preferred but the internals use "string".
if(opts.type === "binarystring") {
opts.type = "string";
}
@ -1876,9 +1877,9 @@ DataReader.prototype = {
// see implementations
},
/**
* Find the last occurence of a zip signature (4 bytes).
* Find the last occurrence of a zip signature (4 bytes).
* @param {string} sig the signature to find.
* @return {number} the index of the last occurence, -1 if not found.
* @return {number} the index of the last occurrence, -1 if not found.
*/
lastIndexOfSignature: function(sig) {
// see implementations
@ -3122,7 +3123,7 @@ function stringToArrayLike(str, array) {
/**
* An helper for the function arrayLikeToString.
* This contains static informations and functions that
* This contains static information and functions that
* can be optimized by the browser JIT compiler.
*/
var arrayToStringHelper = {
@ -3862,7 +3863,7 @@ ZipEntry.prototype = {
reader.skip(localExtraFieldsLength);
if (this.compressedSize === -1 || this.uncompressedSize === -1) {
throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
throw new Error("Bug or corrupted zip : didn't get enough information from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
}
compression = findCompression(this.compressionMethod);
@ -3976,7 +3977,7 @@ ZipEntry.prototype = {
this.extraFields = {};
}
while (reader.index < end) {
while (reader.index + 4 < end) {
extraFieldId = reader.readInt(2);
extraFieldLength = reader.readInt(2);
extraFieldValue = reader.readData(extraFieldLength);
@ -3987,6 +3988,8 @@ ZipEntry.prototype = {
value: extraFieldValue
};
}
reader.setIndex(end);
},
/**
* Apply an UTF8 transformation if needed.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -299,6 +299,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<ul>
<li class="circle">com.google.android.exoplayer2.source.ads.<a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads"><span class="typeNameLink">AdsMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource2.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource2</span></a></li>
<li class="circle">com.google.android.exoplayer2.ext.ima.<a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima"><span class="typeNameLink">ImaServerSideAdInsertionMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/MergingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">MergingMediaSource</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">WrappingMediaSource</span></a>
@ -457,6 +458,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.video.<a href="com/google/android/exoplayer2/video/ColorInfo.html" title="class in com.google.android.exoplayer2.video"><span class="typeNameLink">ColorInfo</span></a> (implements com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/Bundleable.html" title="interface in com.google.android.exoplayer2">Bundleable</a>)</li>
<li class="circle">com.google.android.exoplayer2.util.<a href="com/google/android/exoplayer2/util/ColorParser.html" title="class in com.google.android.exoplayer2.util"><span class="typeNameLink">ColorParser</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/CompositeSequenceableLoader.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">CompositeSequenceableLoader</span></a> (implements com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source">SequenceableLoader</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource2.Builder.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ConcatenatingMediaSource2.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.util.<a href="com/google/android/exoplayer2/util/ConditionVariable.html" title="class in com.google.android.exoplayer2.util"><span class="typeNameLink">ConditionVariable</span></a></li>
<li class="circle">com.google.android.exoplayer2.extractor.<a href="com/google/android/exoplayer2/extractor/ConstantBitrateSeekMap.html" title="class in com.google.android.exoplayer2.extractor"><span class="typeNameLink">ConstantBitrateSeekMap</span></a> (implements com.google.android.exoplayer2.extractor.<a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor">SeekMap</a>)</li>
<li class="circle">com.google.android.exoplayer2.upstream.cache.<a href="com/google/android/exoplayer2/upstream/cache/ContentMetadataMutations.html" title="class in com.google.android.exoplayer2.upstream.cache"><span class="typeNameLink">ContentMetadataMutations</span></a></li>
@ -1017,6 +1019,10 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ShuffleOrder.DefaultShuffleOrder.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ShuffleOrder.DefaultShuffleOrder</span></a> (implements com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ShuffleOrder.UnshuffledShuffleOrder.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">ShuffleOrder.UnshuffledShuffleOrder</span></a> (implements com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/SilenceMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source"><span class="typeNameLink">SilenceMediaSource.Factory</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.MediaItemData.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.MediaItemData</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.MediaItemData.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.MediaItemData.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.PeriodData.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PeriodData</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.PeriodData.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PeriodData.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.State</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.State.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.upstream.cache.<a href="com/google/android/exoplayer2/upstream/cache/SimpleCache.html" title="class in com.google.android.exoplayer2.upstream.cache"><span class="typeNameLink">SimpleCache</span></a> (implements com.google.android.exoplayer2.upstream.cache.<a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache">Cache</a>)</li>
@ -1664,6 +1670,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.ext.media2.<a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.RatingCallback.html" title="interface in com.google.android.exoplayer2.ext.media2"><span class="typeNameLink">SessionCallbackBuilder.RatingCallback</span></a></li>
<li class="circle">com.google.android.exoplayer2.ext.media2.<a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.SkipCallback.html" title="interface in com.google.android.exoplayer2.ext.media2"><span class="typeNameLink">SessionCallbackBuilder.SkipCallback</span></a></li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source"><span class="typeNameLink">ShuffleOrder</span></a></li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/SimpleBasePlayer.PositionSupplier.html" title="interface in com.google.android.exoplayer2"><span class="typeNameLink">SimpleBasePlayer.PositionSupplier</span></a></li>
<li class="circle">com.google.android.exoplayer2.util.<a href="com/google/android/exoplayer2/util/SntpClient.InitializationCallback.html" title="interface in com.google.android.exoplayer2.util"><span class="typeNameLink">SntpClient.InitializationCallback</span></a></li>
<li class="circle">com.google.android.exoplayer2.testutil.truth.<a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.AbsoluteSized.html" title="interface in com.google.android.exoplayer2.testutil.truth"><span class="typeNameLink">SpannedSubject.AbsoluteSized</span></a></li>
<li class="circle">com.google.android.exoplayer2.testutil.truth.<a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.Aligned.html" title="interface in com.google.android.exoplayer2.testutil.truth"><span class="typeNameLink">SpannedSubject.Aligned</span></a></li>
@ -1793,6 +1800,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.trackselection.<a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.RendererSupport.html" title="annotation in com.google.android.exoplayer2.trackselection"><span class="typeNameLink">MappingTrackSelector.MappedTrackInfo.RendererSupport</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.extractor.mkv.<a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mkv"><span class="typeNameLink">MatroskaExtractor.Flags</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.FolderType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/MediaMetadata.MediaType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.MediaType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.<a href="com/google/android/exoplayer2/MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2"><span class="typeNameLink">MediaMetadata.PictureType</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.ext.mediasession.<a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.PlaybackActions.html" title="annotation in com.google.android.exoplayer2.ext.mediasession"><span class="typeNameLink">MediaSessionConnector.PlaybackActions</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>
<li class="circle">com.google.android.exoplayer2.source.<a href="com/google/android/exoplayer2/source/MergingMediaSource.IllegalMergeException.Reason.html" title="annotation in com.google.android.exoplayer2.source"><span class="typeNameLink">MergingMediaSource.IllegalMergeException.Reason</span></a> (implements java.lang.annotation.<a href="https://developer.android.com/reference/java/lang/annotation/Annotation.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">Annotation</a>)</li>

File diff suppressed because one or more lines are too long