media/docs/doc/reference/com/google/android/exoplayer2/testutil/StubExoPlayer.html
christosts 68ca3996aa Update javadoc for ExoPlayer 2.18.3
#minor-release

PiperOrigin-RevId: 509867431
(cherry picked from commit 482871fed4)
2023-02-16 10:30:06 +00:00

2127 lines
169 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>StubExoPlayer (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="StubExoPlayer (ExoPlayer library)";
}
}
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":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":42,"i19":42,"i20":42,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":42,"i30":10,"i31":10,"i32":42,"i33":10,"i34":10,"i35":10,"i36":10,"i37":42,"i38":42,"i39":10,"i40":10,"i41":42,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":42,"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};
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";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.testutil</a></div>
<h2 title="Class StubExoPlayer" class="title">Class StubExoPlayer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../BasePlayer.html" title="class in com.google.android.exoplayer2">com.google.android.exoplayer2.BasePlayer</a></li>
<li>
<ul class="inheritance">
<li><a href="StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">com.google.android.exoplayer2.testutil.StubPlayer</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.testutil.StubExoPlayer</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code>, <code><a href="../Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">StubExoPlayer</span>
extends <a href="StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a>
implements <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></pre>
<div class="block">An abstract <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> implementation that 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>
from every method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.com.google.android.exoplayer2.ExoPlayer">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></h3>
<code><a href="../ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a>, <a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>, <a href="../ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>, <a href="../ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a>, <a href="../ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a>, <a href="../ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.com.google.android.exoplayer2.Player">
<!-- -->
</a>
<h3>Nested classes/interfaces 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.Command.html" title="annotation in com.google.android.exoplayer2">Player.Command</a>, <a href="../Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>, <a href="../Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a>, <a href="../Player.Event.html" title="annotation in com.google.android.exoplayer2">Player.Event</a>, <a href="../Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a>, <a href="../Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>, <a href="../Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a>, <a href="../Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a>, <a href="../Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a>, <a href="../Player.PositionInfo.html" title="class in com.google.android.exoplayer2">Player.PositionInfo</a>, <a href="../Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a>, <a href="../Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a>, <a href="../Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.BasePlayer">
<!-- -->
</a>
<h3>Fields 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#window">window</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.ExoPlayer">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></h3>
<code><a href="../ExoPlayer.html#DEFAULT_DETACH_SURFACE_TIMEOUT_MS">DEFAULT_DETACH_SURFACE_TIMEOUT_MS</a>, <a href="../ExoPlayer.html#DEFAULT_RELEASE_TIMEOUT_MS">DEFAULT_RELEASE_TIMEOUT_MS</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.Player">
<!-- -->
</a>
<h3>Fields 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#COMMAND_ADJUST_DEVICE_VOLUME">COMMAND_ADJUST_DEVICE_VOLUME</a>, <a href="../Player.html#COMMAND_CHANGE_MEDIA_ITEMS">COMMAND_CHANGE_MEDIA_ITEMS</a>, <a href="../Player.html#COMMAND_GET_AUDIO_ATTRIBUTES">COMMAND_GET_AUDIO_ATTRIBUTES</a>, <a href="../Player.html#COMMAND_GET_CURRENT_MEDIA_ITEM">COMMAND_GET_CURRENT_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_GET_DEVICE_VOLUME">COMMAND_GET_DEVICE_VOLUME</a>, <a href="../Player.html#COMMAND_GET_MEDIA_ITEMS_METADATA">COMMAND_GET_MEDIA_ITEMS_METADATA</a>, <a href="../Player.html#COMMAND_GET_TEXT">COMMAND_GET_TEXT</a>, <a href="../Player.html#COMMAND_GET_TIMELINE">COMMAND_GET_TIMELINE</a>, <a href="../Player.html#COMMAND_GET_TRACKS">COMMAND_GET_TRACKS</a>, <a href="../Player.html#COMMAND_GET_VOLUME">COMMAND_GET_VOLUME</a>, <a href="../Player.html#COMMAND_INVALID">COMMAND_INVALID</a>, <a href="../Player.html#COMMAND_PLAY_PAUSE">COMMAND_PLAY_PAUSE</a>, <a href="../Player.html#COMMAND_PREPARE">COMMAND_PREPARE</a>, <a href="../Player.html#COMMAND_SEEK_BACK">COMMAND_SEEK_BACK</a>, <a href="../Player.html#COMMAND_SEEK_FORWARD">COMMAND_SEEK_FORWARD</a>, <a href="../Player.html#COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM">COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_SEEK_IN_CURRENT_WINDOW">COMMAND_SEEK_IN_CURRENT_WINDOW</a>, <a href="../Player.html#COMMAND_SEEK_TO_DEFAULT_POSITION">COMMAND_SEEK_TO_DEFAULT_POSITION</a>, <a href="../Player.html#COMMAND_SEEK_TO_MEDIA_ITEM">COMMAND_SEEK_TO_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_SEEK_TO_NEXT">COMMAND_SEEK_TO_NEXT</a>, <a href="../Player.html#COMMAND_SEEK_TO_NEXT_MEDIA_ITEM">COMMAND_SEEK_TO_NEXT_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_SEEK_TO_NEXT_WINDOW">COMMAND_SEEK_TO_NEXT_WINDOW</a>, <a href="../Player.html#COMMAND_SEEK_TO_PREVIOUS">COMMAND_SEEK_TO_PREVIOUS</a>, <a href="../Player.html#COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM">COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_SEEK_TO_PREVIOUS_WINDOW">COMMAND_SEEK_TO_PREVIOUS_WINDOW</a>, <a href="../Player.html#COMMAND_SEEK_TO_WINDOW">COMMAND_SEEK_TO_WINDOW</a>, <a href="../Player.html#COMMAND_SET_DEVICE_VOLUME">COMMAND_SET_DEVICE_VOLUME</a>, <a href="../Player.html#COMMAND_SET_MEDIA_ITEM">COMMAND_SET_MEDIA_ITEM</a>, <a href="../Player.html#COMMAND_SET_MEDIA_ITEMS_METADATA">COMMAND_SET_MEDIA_ITEMS_METADATA</a>, <a href="../Player.html#COMMAND_SET_REPEAT_MODE">COMMAND_SET_REPEAT_MODE</a>, <a href="../Player.html#COMMAND_SET_SHUFFLE_MODE">COMMAND_SET_SHUFFLE_MODE</a>, <a href="../Player.html#COMMAND_SET_SPEED_AND_PITCH">COMMAND_SET_SPEED_AND_PITCH</a>, <a href="../Player.html#COMMAND_SET_TRACK_SELECTION_PARAMETERS">COMMAND_SET_TRACK_SELECTION_PARAMETERS</a>, <a href="../Player.html#COMMAND_SET_VIDEO_SURFACE">COMMAND_SET_VIDEO_SURFACE</a>, <a href="../Player.html#COMMAND_SET_VOLUME">COMMAND_SET_VOLUME</a>, <a href="../Player.html#COMMAND_STOP">COMMAND_STOP</a>, <a href="../Player.html#DISCONTINUITY_REASON_AUTO_TRANSITION">DISCONTINUITY_REASON_AUTO_TRANSITION</a>, <a href="../Player.html#DISCONTINUITY_REASON_INTERNAL">DISCONTINUITY_REASON_INTERNAL</a>, <a href="../Player.html#DISCONTINUITY_REASON_REMOVE">DISCONTINUITY_REASON_REMOVE</a>, <a href="../Player.html#DISCONTINUITY_REASON_SEEK">DISCONTINUITY_REASON_SEEK</a>, <a href="../Player.html#DISCONTINUITY_REASON_SEEK_ADJUSTMENT">DISCONTINUITY_REASON_SEEK_ADJUSTMENT</a>, <a href="../Player.html#DISCONTINUITY_REASON_SKIP">DISCONTINUITY_REASON_SKIP</a>, <a href="../Player.html#EVENT_AUDIO_ATTRIBUTES_CHANGED">EVENT_AUDIO_ATTRIBUTES_CHANGED</a>, <a href="../Player.html#EVENT_AUDIO_SESSION_ID">EVENT_AUDIO_SESSION_ID</a>, <a href="../Player.html#EVENT_AVAILABLE_COMMANDS_CHANGED">EVENT_AVAILABLE_COMMANDS_CHANGED</a>, <a href="../Player.html#EVENT_CUES">EVENT_CUES</a>, <a href="../Player.html#EVENT_DEVICE_INFO_CHANGED">EVENT_DEVICE_INFO_CHANGED</a>, <a href="../Player.html#EVENT_DEVICE_VOLUME_CHANGED">EVENT_DEVICE_VOLUME_CHANGED</a>, <a href="../Player.html#EVENT_IS_LOADING_CHANGED">EVENT_IS_LOADING_CHANGED</a>, <a href="../Player.html#EVENT_IS_PLAYING_CHANGED">EVENT_IS_PLAYING_CHANGED</a>, <a href="../Player.html#EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED">EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED</a>, <a href="../Player.html#EVENT_MEDIA_ITEM_TRANSITION">EVENT_MEDIA_ITEM_TRANSITION</a>, <a href="../Player.html#EVENT_MEDIA_METADATA_CHANGED">EVENT_MEDIA_METADATA_CHANGED</a>, <a href="../Player.html#EVENT_METADATA">EVENT_METADATA</a>, <a href="../Player.html#EVENT_PLAY_WHEN_READY_CHANGED">EVENT_PLAY_WHEN_READY_CHANGED</a>, <a href="../Player.html#EVENT_PLAYBACK_PARAMETERS_CHANGED">EVENT_PLAYBACK_PARAMETERS_CHANGED</a>, <a href="../Player.html#EVENT_PLAYBACK_STATE_CHANGED">EVENT_PLAYBACK_STATE_CHANGED</a>, <a href="../Player.html#EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED">EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED</a>, <a href="../Player.html#EVENT_PLAYER_ERROR">EVENT_PLAYER_ERROR</a>, <a href="../Player.html#EVENT_PLAYLIST_METADATA_CHANGED">EVENT_PLAYLIST_METADATA_CHANGED</a>, <a href="../Player.html#EVENT_POSITION_DISCONTINUITY">EVENT_POSITION_DISCONTINUITY</a>, <a href="../Player.html#EVENT_RENDERED_FIRST_FRAME">EVENT_RENDERED_FIRST_FRAME</a>, <a href="../Player.html#EVENT_REPEAT_MODE_CHANGED">EVENT_REPEAT_MODE_CHANGED</a>, <a href="../Player.html#EVENT_SEEK_BACK_INCREMENT_CHANGED">EVENT_SEEK_BACK_INCREMENT_CHANGED</a>, <a href="../Player.html#EVENT_SEEK_FORWARD_INCREMENT_CHANGED">EVENT_SEEK_FORWARD_INCREMENT_CHANGED</a>, <a href="../Player.html#EVENT_SHUFFLE_MODE_ENABLED_CHANGED">EVENT_SHUFFLE_MODE_ENABLED_CHANGED</a>, <a href="../Player.html#EVENT_SKIP_SILENCE_ENABLED_CHANGED">EVENT_SKIP_SILENCE_ENABLED_CHANGED</a>, <a href="../Player.html#EVENT_SURFACE_SIZE_CHANGED">EVENT_SURFACE_SIZE_CHANGED</a>, <a href="../Player.html#EVENT_TIMELINE_CHANGED">EVENT_TIMELINE_CHANGED</a>, <a href="../Player.html#EVENT_TRACK_SELECTION_PARAMETERS_CHANGED">EVENT_TRACK_SELECTION_PARAMETERS_CHANGED</a>, <a href="../Player.html#EVENT_TRACKS_CHANGED">EVENT_TRACKS_CHANGED</a>, <a href="../Player.html#EVENT_VIDEO_SIZE_CHANGED">EVENT_VIDEO_SIZE_CHANGED</a>, <a href="../Player.html#EVENT_VOLUME_CHANGED">EVENT_VOLUME_CHANGED</a>, <a href="../Player.html#MEDIA_ITEM_TRANSITION_REASON_AUTO">MEDIA_ITEM_TRANSITION_REASON_AUTO</a>, <a href="../Player.html#MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED">MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED</a>, <a href="../Player.html#MEDIA_ITEM_TRANSITION_REASON_REPEAT">MEDIA_ITEM_TRANSITION_REASON_REPEAT</a>, <a href="../Player.html#MEDIA_ITEM_TRANSITION_REASON_SEEK">MEDIA_ITEM_TRANSITION_REASON_SEEK</a>, <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY</a>, <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS</a>, <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM">PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</a>, <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_REMOTE">PLAY_WHEN_READY_CHANGE_REASON_REMOTE</a>, <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST">PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST</a>, <a href="../Player.html#PLAYBACK_SUPPRESSION_REASON_NONE">PLAYBACK_SUPPRESSION_REASON_NONE</a>, <a href="../Player.html#PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS">PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS</a>, <a href="../Player.html#REPEAT_MODE_ALL">REPEAT_MODE_ALL</a>, <a href="../Player.html#REPEAT_MODE_OFF">REPEAT_MODE_OFF</a>, <a href="../Player.html#REPEAT_MODE_ONE">REPEAT_MODE_ONE</a>, <a href="../Player.html#STATE_BUFFERING">STATE_BUFFERING</a>, <a href="../Player.html#STATE_ENDED">STATE_ENDED</a>, <a href="../Player.html#STATE_IDLE">STATE_IDLE</a>, <a href="../Player.html#STATE_READY">STATE_READY</a>, <a href="../Player.html#TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED">TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED</a>, <a href="../Player.html#TIMELINE_CHANGE_REASON_SOURCE_UPDATE">TIMELINE_CHANGE_REASON_SOURCE_UPDATE</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">StubExoPlayer</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</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><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>
<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="#addAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">addAnalyticsListener</a></span>&#8203;(<a href="../analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<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>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">addAudioOffloadListener</a></span>&#8203;(<a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Adds a listener to receive audio offload events.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMediaSource(int,com.google.android.exoplayer2.source.MediaSource)">addMediaSource</a></span>&#8203;(int&nbsp;index,
<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
<div class="block">Adds a media source at the given index of the playlist.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMediaSource(com.google.android.exoplayer2.source.MediaSource)">addMediaSource</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
<div class="block">Adds a media source to the end of the playlist.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMediaSources(int,java.util.List)">addMediaSources</a></span>&#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="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</code></th>
<td class="colLast">
<div class="block">Adds a list of media sources at the given index of the playlist.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addMediaSources(java.util.List)">addMediaSources</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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</code></th>
<td class="colLast">
<div class="block">Adds a list of media sources to the end of the playlist.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearAuxEffectInfo()">clearAuxEffectInfo</a></span>()</code></th>
<td class="colLast">
<div class="block">Detaches any previously attached auxiliary audio effect from the underlying audio track.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">clearCameraMotionListener</a></span>&#8203;(<a href="../video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Clears the listener which receives camera motion events if it matches the one passed.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clearVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">clearVideoFrameMetadataListener</a></span>&#8203;(<a href="../video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Clears the listener which receives video frame metadata events if it matches the one passed.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)">createMessage</a></span>&#8203;(<a href="../PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a>&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Creates a message that can be sent to a <a href="../PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><code>PlayerMessage.Target</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#experimentalIsSleepingForOffload()">experimentalIsSleepingForOffload</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the player has paused its main loop to save power in offload scheduling mode.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#experimentalSetOffloadSchedulingEnabled(boolean)">experimentalSetOffloadSchedulingEnabled</a></span>&#8203;(boolean&nbsp;offloadSchedulingEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether audio offload scheduling is enabled.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnalyticsCollector()">getAnalyticsCollector</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="../analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> used for collecting analytics events.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioComponent()">getAudioComponent</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="../ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.AudioComponent</code></a> methods are defined by that
interface.</div>
</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioDecoderCounters()">getAudioDecoderCounters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a> for audio, or null if no audio is being played.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><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="#getAudioFormat()">getAudioFormat</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the audio format currently being played, or null if no audio is being played.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioSessionId()">getAudioSessionId</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the audio session identifier, or <a href="../C.html#AUDIO_SESSION_ID_UNSET"><code>C.AUDIO_SESSION_ID_UNSET</code></a> if not set.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClock()">getClock</a></span>()</code></th>
<td class="colLast">
<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>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTrackGroups()">getCurrentTrackGroups</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#getCurrentTracks()"><code>StubPlayer.getCurrentTracks()</code></a>.</div>
</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../trackselection/TrackSelectionArray.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionArray</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentTrackSelections()">getCurrentTrackSelections</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#getCurrentTracks()"><code>StubPlayer.getCurrentTracks()</code></a>.</div>
</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeviceComponent()">getDeviceComponent</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="../ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.DeviceComponent</code></a> methods are defined by that
interface.</div>
</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPauseAtEndOfMediaItems()">getPauseAtEndOfMediaItems</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the player pauses playback at the end of each media item.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlaybackLooper()">getPlaybackLooper</a></span>()</code></th>
<td class="colLast">
<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>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlayerError()">getPlayerError</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the error that caused playback to fail.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRenderer(int)">getRenderer</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the renderer at the given index.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRendererCount()">getRendererCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of renderers.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRendererType(int)">getRendererType</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the track type that the renderer at a given index handles.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSeekParameters()">getSeekParameters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the currently active <a href="../SeekParameters.html" title="class in com.google.android.exoplayer2"><code>SeekParameters</code></a> of the player.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSkipSilenceEnabled()">getSkipSilenceEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether skipping silences in the audio stream is enabled.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTextComponent()">getTextComponent</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="../ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.TextComponent</code></a> methods are defined by that
interface.</div>
</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackSelector()">getTrackSelector</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the track selector that this player uses, or null if track selection is not supported.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoChangeFrameRateStrategy()">getVideoChangeFrameRateStrategy</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="../C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoComponent()">getVideoComponent</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="../ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.VideoComponent</code></a> methods are defined by that
interface.</div>
</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoDecoderCounters()">getVideoDecoderCounters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a> for video, or null if no video is being played.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><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="#getVideoFormat()">getVideoFormat</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the video format currently being played, or null if no video is being played.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoScalingMode()">getVideoScalingMode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="../C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTunnelingEnabled()">isTunnelingEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether <a href="https://source.android.com/devices/tv/multimedia-tunneling">tunneling</a> is enabled for
the currently selected tracks.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare(com.google.android.exoplayer2.source.MediaSource)">prepare</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource)"><code>setMediaSource(MediaSource)</code></a> and <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare(com.google.android.exoplayer2.source.MediaSource,boolean,boolean)">prepare</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition,
boolean&nbsp;resetState)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)"><code>setMediaSource(MediaSource, boolean)</code></a> and <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">removeAnalyticsListener</a></span>&#8203;(<a href="../analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Removes an <a href="../analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a>.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">removeAudioOffloadListener</a></span>&#8203;(<a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Removes a listener of audio offload events.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retry()">retry</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</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="#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)">setAudioAttributes</a></span>&#8203;(<a href="../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
boolean&nbsp;handleAudioFocus)</code></th>
<td class="colLast">
<div class="block">Sets the attributes for audio playback, used by the underlying audio track.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioSessionId(int)">setAudioSessionId</a></span>&#8203;(int&nbsp;audioSessionId)</code></th>
<td class="colLast">
<div class="block">Sets the ID of the audio session to attach to the underlying <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>.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAuxEffectInfo(com.google.android.exoplayer2.audio.AuxEffectInfo)">setAuxEffectInfo</a></span>&#8203;(<a href="../audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio">AuxEffectInfo</a>&nbsp;auxEffectInfo)</code></th>
<td class="colLast">
<div class="block">Sets information on an auxiliary audio effect to attach to the underlying audio track.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">setCameraMotionListener</a></span>&#8203;(<a href="../video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Sets a listener of camera motion events.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setForegroundMode(boolean)">setForegroundMode</a></span>&#8203;(boolean&nbsp;foregroundMode)</code></th>
<td class="colLast">
<div class="block">Sets whether the player is allowed to keep holding limited resources such as video decoders,
even when in the idle state.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHandleAudioBecomingNoisy(boolean)">setHandleAudioBecomingNoisy</a></span>&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</code></th>
<td class="colLast">
<div class="block">Sets whether the player should pause automatically when audio is rerouted from a headset to
device speakers.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHandleWakeLock(boolean)">setHandleWakeLock</a></span>&#8203;(boolean&nbsp;handleWakeLock)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setWakeMode(int)"><code>setWakeMode(int)</code></a> instead.</div>
</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource)">setMediaSource</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
<div class="block">Clears the playlist, adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> and resets the position to the
default position.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)">setMediaSource</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,long)">setMediaSource</a></span>&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List)">setMediaSources</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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</code></th>
<td class="colLast">
<div class="block">Clears the playlist, adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a> and resets the
position to the default position.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List,boolean)">setMediaSources</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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
boolean&nbsp;resetPosition)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List,int,long)">setMediaSources</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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
int&nbsp;startMediaItemIndex,
long&nbsp;startPositionMs)</code></th>
<td class="colLast">
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPauseAtEndOfMediaItems(boolean)">setPauseAtEndOfMediaItems</a></span>&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</code></th>
<td class="colLast">
<div class="block">Sets whether to pause playback at the end of each media item.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPreferredAudioDevice(android.media.AudioDeviceInfo)">setPreferredAudioDevice</a></span>&#8203;(<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the preferred audio device.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</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 a <a href="../util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>, or null to clear a previously set priority task manager.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</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="i59" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)">setShuffleOrder</a></span>&#8203;(<a href="../source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a>&nbsp;shuffleOrder)</code></th>
<td class="colLast">
<div class="block">Sets the shuffle order.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>void</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 skipping silences in the audio stream is enabled.</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="#setVideoChangeFrameRateStrategy(int)">setVideoChangeFrameRateStrategy</a></span>&#8203;(int&nbsp;videoChangeFrameRateStrategy)</code></th>
<td class="colLast">
<div class="block">Sets a <a href="../C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a> that will be used by the player when provided
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="i62" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">setVideoFrameMetadataListener</a></span>&#8203;(<a href="../video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Sets a listener to receive video frame metadata events.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(int)">setVideoScalingMode</a></span>&#8203;(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>.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWakeMode(int)">setWakeMode</a></span>&#8203;(int&nbsp;wakeMode)</code></th>
<td class="colLast">
<div class="block">Sets how the player should keep the device awake for playback when the screen is off.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.testutil.StubPlayer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.testutil.<a href="StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a></h3>
<code><a href="StubPlayer.html#addListener(com.google.android.exoplayer2.Player.Listener)">addListener</a>, <a href="StubPlayer.html#addMediaItems(int,java.util.List)">addMediaItems</a>, <a href="StubPlayer.html#clearVideoSurface()">clearVideoSurface</a>, <a href="StubPlayer.html#clearVideoSurface(android.view.Surface)">clearVideoSurface</a>, <a href="StubPlayer.html#clearVideoSurfaceHolder(android.view.SurfaceHolder)">clearVideoSurfaceHolder</a>, <a href="StubPlayer.html#clearVideoSurfaceView(android.view.SurfaceView)">clearVideoSurfaceView</a>, <a href="StubPlayer.html#clearVideoTextureView(android.view.TextureView)">clearVideoTextureView</a>, <a href="StubPlayer.html#decreaseDeviceVolume()">decreaseDeviceVolume</a>, <a href="StubPlayer.html#getApplicationLooper()">getApplicationLooper</a>, <a href="StubPlayer.html#getAudioAttributes()">getAudioAttributes</a>, <a href="StubPlayer.html#getAvailableCommands()">getAvailableCommands</a>, <a href="StubPlayer.html#getBufferedPosition()">getBufferedPosition</a>, <a href="StubPlayer.html#getContentBufferedPosition()">getContentBufferedPosition</a>, <a href="StubPlayer.html#getContentPosition()">getContentPosition</a>, <a href="StubPlayer.html#getCurrentAdGroupIndex()">getCurrentAdGroupIndex</a>, <a href="StubPlayer.html#getCurrentAdIndexInAdGroup()">getCurrentAdIndexInAdGroup</a>, <a href="StubPlayer.html#getCurrentCues()">getCurrentCues</a>, <a href="StubPlayer.html#getCurrentMediaItemIndex()">getCurrentMediaItemIndex</a>, <a href="StubPlayer.html#getCurrentPeriodIndex()">getCurrentPeriodIndex</a>, <a href="StubPlayer.html#getCurrentPosition()">getCurrentPosition</a>, <a href="StubPlayer.html#getCurrentTimeline()">getCurrentTimeline</a>, <a href="StubPlayer.html#getCurrentTracks()">getCurrentTracks</a>, <a href="StubPlayer.html#getDeviceInfo()">getDeviceInfo</a>, <a href="StubPlayer.html#getDeviceVolume()">getDeviceVolume</a>, <a href="StubPlayer.html#getDuration()">getDuration</a>, <a href="StubPlayer.html#getMaxSeekToPreviousPosition()">getMaxSeekToPreviousPosition</a>, <a href="StubPlayer.html#getMediaMetadata()">getMediaMetadata</a>, <a href="StubPlayer.html#getPlaybackParameters()">getPlaybackParameters</a>, <a href="StubPlayer.html#getPlaybackState()">getPlaybackState</a>, <a href="StubPlayer.html#getPlaybackSuppressionReason()">getPlaybackSuppressionReason</a>, <a href="StubPlayer.html#getPlaylistMetadata()">getPlaylistMetadata</a>, <a href="StubPlayer.html#getPlayWhenReady()">getPlayWhenReady</a>, <a href="StubPlayer.html#getRepeatMode()">getRepeatMode</a>, <a href="StubPlayer.html#getSeekBackIncrement()">getSeekBackIncrement</a>, <a href="StubPlayer.html#getSeekForwardIncrement()">getSeekForwardIncrement</a>, <a href="StubPlayer.html#getShuffleModeEnabled()">getShuffleModeEnabled</a>, <a href="StubPlayer.html#getSurfaceSize()">getSurfaceSize</a>, <a href="StubPlayer.html#getTotalBufferedDuration()">getTotalBufferedDuration</a>, <a href="StubPlayer.html#getTrackSelectionParameters()">getTrackSelectionParameters</a>, <a href="StubPlayer.html#getVideoSize()">getVideoSize</a>, <a href="StubPlayer.html#getVolume()">getVolume</a>, <a href="StubPlayer.html#increaseDeviceVolume()">increaseDeviceVolume</a>, <a href="StubPlayer.html#isDeviceMuted()">isDeviceMuted</a>, <a href="StubPlayer.html#isLoading()">isLoading</a>, <a href="StubPlayer.html#isPlayingAd()">isPlayingAd</a>, <a href="StubPlayer.html#moveMediaItems(int,int,int)">moveMediaItems</a>, <a href="StubPlayer.html#prepare()">prepare</a>, <a href="StubPlayer.html#release()">release</a>, <a href="StubPlayer.html#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a>, <a href="StubPlayer.html#removeMediaItems(int,int)">removeMediaItems</a>, <a href="StubPlayer.html#seekTo(int,long,@com.google.android.exoplayer2.Player.Commandint,boolean)">seekTo</a>, <a href="StubPlayer.html#setDeviceMuted(boolean)">setDeviceMuted</a>, <a href="StubPlayer.html#setDeviceVolume(int)">setDeviceVolume</a>, <a href="StubPlayer.html#setMediaItems(java.util.List,boolean)">setMediaItems</a>, <a href="StubPlayer.html#setMediaItems(java.util.List,int,long)">setMediaItems</a>, <a href="StubPlayer.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a>, <a href="StubPlayer.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a>, <a href="StubPlayer.html#setPlayWhenReady(boolean)">setPlayWhenReady</a>, <a href="StubPlayer.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a>, <a href="StubPlayer.html#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a>, <a href="StubPlayer.html#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a>, <a href="StubPlayer.html#setVideoSurface(android.view.Surface)">setVideoSurface</a>, <a href="StubPlayer.html#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a>, <a href="StubPlayer.html#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a>, <a href="StubPlayer.html#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a>, <a href="StubPlayer.html#setVolume(float)">setVolume</a>, <a href="StubPlayer.html#stop()">stop</a>, <a href="StubPlayer.html#stop(boolean)">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.BasePlayer">
<!-- -->
</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#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">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.Player">
<!-- -->
</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#addListener(com.google.android.exoplayer2.Player.Listener)">addListener</a>, <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(int,java.util.List)">addMediaItems</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#clearVideoSurface()">clearVideoSurface</a>, <a href="../Player.html#clearVideoSurface(android.view.Surface)">clearVideoSurface</a>, <a href="../Player.html#clearVideoSurfaceHolder(android.view.SurfaceHolder)">clearVideoSurfaceHolder</a>, <a href="../Player.html#clearVideoSurfaceView(android.view.SurfaceView)">clearVideoSurfaceView</a>, <a href="../Player.html#clearVideoTextureView(android.view.TextureView)">clearVideoTextureView</a>, <a href="../Player.html#decreaseDeviceVolume()">decreaseDeviceVolume</a>, <a href="../Player.html#getApplicationLooper()">getApplicationLooper</a>, <a href="../Player.html#getAudioAttributes()">getAudioAttributes</a>, <a href="../Player.html#getAvailableCommands()">getAvailableCommands</a>, <a href="../Player.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="../Player.html#getBufferedPosition()">getBufferedPosition</a>, <a href="../Player.html#getContentBufferedPosition()">getContentBufferedPosition</a>, <a href="../Player.html#getContentDuration()">getContentDuration</a>, <a href="../Player.html#getContentPosition()">getContentPosition</a>, <a href="../Player.html#getCurrentAdGroupIndex()">getCurrentAdGroupIndex</a>, <a href="../Player.html#getCurrentAdIndexInAdGroup()">getCurrentAdIndexInAdGroup</a>, <a href="../Player.html#getCurrentCues()">getCurrentCues</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#getCurrentMediaItemIndex()">getCurrentMediaItemIndex</a>, <a href="../Player.html#getCurrentPeriodIndex()">getCurrentPeriodIndex</a>, <a href="../Player.html#getCurrentPosition()">getCurrentPosition</a>, <a href="../Player.html#getCurrentTimeline()">getCurrentTimeline</a>, <a href="../Player.html#getCurrentTracks()">getCurrentTracks</a>, <a href="../Player.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="../Player.html#getDeviceInfo()">getDeviceInfo</a>, <a href="../Player.html#getDeviceVolume()">getDeviceVolume</a>, <a href="../Player.html#getDuration()">getDuration</a>, <a href="../Player.html#getMaxSeekToPreviousPosition()">getMaxSeekToPreviousPosition</a>, <a href="../Player.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="../Player.html#getMediaItemCount()">getMediaItemCount</a>, <a href="../Player.html#getMediaMetadata()">getMediaMetadata</a>, <a href="../Player.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="../Player.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="../Player.html#getPlaybackParameters()">getPlaybackParameters</a>, <a href="../Player.html#getPlaybackState()">getPlaybackState</a>, <a href="../Player.html#getPlaybackSuppressionReason()">getPlaybackSuppressionReason</a>, <a href="../Player.html#getPlaylistMetadata()">getPlaylistMetadata</a>, <a href="../Player.html#getPlayWhenReady()">getPlayWhenReady</a>, <a href="../Player.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="../Player.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="../Player.html#getRepeatMode()">getRepeatMode</a>, <a href="../Player.html#getSeekBackIncrement()">getSeekBackIncrement</a>, <a href="../Player.html#getSeekForwardIncrement()">getSeekForwardIncrement</a>, <a href="../Player.html#getShuffleModeEnabled()">getShuffleModeEnabled</a>, <a href="../Player.html#getSurfaceSize()">getSurfaceSize</a>, <a href="../Player.html#getTotalBufferedDuration()">getTotalBufferedDuration</a>, <a href="../Player.html#getTrackSelectionParameters()">getTrackSelectionParameters</a>, <a href="../Player.html#getVideoSize()">getVideoSize</a>, <a href="../Player.html#getVolume()">getVolume</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#increaseDeviceVolume()">increaseDeviceVolume</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#isDeviceMuted()">isDeviceMuted</a>, <a href="../Player.html#isLoading()">isLoading</a>, <a href="../Player.html#isPlaying()">isPlaying</a>, <a href="../Player.html#isPlayingAd()">isPlayingAd</a>, <a href="../Player.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="../Player.html#moveMediaItems(int,int,int)">moveMediaItems</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#prepare()">prepare</a>, <a href="../Player.html#previous()">previous</a>, <a href="../Player.html#release()">release</a>, <a href="../Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a>, <a href="../Player.html#removeMediaItem(int)">removeMediaItem</a>, <a href="../Player.html#removeMediaItems(int,int)">removeMediaItems</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#setDeviceMuted(boolean)">setDeviceMuted</a>, <a href="../Player.html#setDeviceVolume(int)">setDeviceVolume</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#setMediaItems(java.util.List,boolean)">setMediaItems</a>, <a href="../Player.html#setMediaItems(java.util.List,int,long)">setMediaItems</a>, <a href="../Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a>, <a href="../Player.html#setPlaybackSpeed(float)">setPlaybackSpeed</a>, <a href="../Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a>, <a href="../Player.html#setPlayWhenReady(boolean)">setPlayWhenReady</a>, <a href="../Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a>, <a href="../Player.html#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a>, <a href="../Player.html#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a>, <a href="../Player.html#setVideoSurface(android.view.Surface)">setVideoSurface</a>, <a href="../Player.html#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a>, <a href="../Player.html#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a>, <a href="../Player.html#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a>, <a href="../Player.html#setVolume(float)">setVolume</a>, <a href="../Player.html#stop()">stop</a>, <a href="../Player.html#stop(boolean)">stop</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>StubExoPlayer</h4>
<pre>public&nbsp;StubExoPlayer()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getAudioComponent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioComponent</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;<a href="../ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a>&nbsp;getAudioComponent()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="../ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.AudioComponent</code></a> methods are defined by that
interface.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getAudioComponent()">getAudioComponent</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getVideoComponent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoComponent</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;<a href="../ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a>&nbsp;getVideoComponent()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="../ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.VideoComponent</code></a> methods are defined by that
interface.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getVideoComponent()">getVideoComponent</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getTextComponent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTextComponent</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;<a href="../ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a>&nbsp;getTextComponent()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="../ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.TextComponent</code></a> methods are defined by that
interface.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getTextComponent()">getTextComponent</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getDeviceComponent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeviceComponent</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;<a href="../ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a>&nbsp;getDeviceComponent()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="../ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.DeviceComponent</code></a> methods are defined by that
interface.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getDeviceComponent()">getDeviceComponent</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getPlaybackLooper()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlaybackLooper</h4>
<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="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.
<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>
</dl>
</li>
</ul>
<a id="getClock()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClock</h4>
<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="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.
<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>
</dl>
</li>
</ul>
<a id="addAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAudioOffloadListener</h4>
<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="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.
<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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to register.</dd>
</dl>
</li>
</ul>
<a id="removeAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAudioOffloadListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeAudioOffloadListener&#8203;(<a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#removeAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">ExoPlayer</a></code></span></div>
<div class="block">Removes a listener of audio offload events.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#removeAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">removeAudioOffloadListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to unregister.</dd>
</dl>
</li>
</ul>
<a id="getAnalyticsCollector()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAnalyticsCollector</h4>
<pre class="methodSignature">public&nbsp;<a href="../analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;getAnalyticsCollector()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getAnalyticsCollector()">ExoPlayer</a></code></span></div>
<div class="block">Returns the <a href="../analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> used for collecting analytics events.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getAnalyticsCollector()">getAnalyticsCollector</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="addAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAnalyticsListener</h4>
<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="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.
<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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to be added.</dd>
</dl>
</li>
</ul>
<a id="removeAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAnalyticsListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeAnalyticsListener&#8203;(<a href="../analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#removeAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">ExoPlayer</a></code></span></div>
<div class="block">Removes an <a href="../analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#removeAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">removeAnalyticsListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to be removed.</dd>
</dl>
</li>
</ul>
<a id="getPlayerError()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlayerError</h4>
<pre class="methodSignature">public&nbsp;<a href="../ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a>&nbsp;getPlayerError()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Player.html#getPlayerError()">Player</a></code></span></div>
<div class="block">Returns the error that caused playback to fail. This is the same error that will have been
reported via <a href="../Player.Listener.html#onPlayerError(com.google.android.exoplayer2.PlaybackException)"><code>Player.Listener.onPlayerError(PlaybackException)</code></a> at the time of failure. It can
be queried using this method until the player is re-prepared.
<p>Note that this method will always return <code>null</code> if <a href="../Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> is not
<a href="../Player.html#STATE_IDLE"><code>Player.STATE_IDLE</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getPlayerError()">getPlayerError</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Player.html#getPlayerError()">getPlayerError</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="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="StubPlayer.html#getPlayerError()">getPlayerError</a></code>&nbsp;in class&nbsp;<code><a href="StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The error, or <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../Player.Listener.html#onPlayerError(com.google.android.exoplayer2.PlaybackException)"><code>Player.Listener.onPlayerError(PlaybackException)</code></a></dd>
</dl>
</li>
</ul>
<a id="retry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retry</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;retry()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#retry()">retry</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="prepare(com.google.android.exoplayer2.source.MediaSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</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;prepare&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource)"><code>setMediaSource(MediaSource)</code></a> and <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#prepare(com.google.android.exoplayer2.source.MediaSource)">prepare</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="prepare(com.google.android.exoplayer2.source.MediaSource,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</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;prepare&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition,
boolean&nbsp;resetState)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)"><code>setMediaSource(MediaSource, boolean)</code></a> and <a href="StubPlayer.html#prepare()"><code>StubPlayer.prepare()</code></a> instead.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#prepare(com.google.android.exoplayer2.source.MediaSource,boolean,boolean)">prepare</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setMediaSource(com.google.android.exoplayer2.source.MediaSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSource&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist, adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> and resets the position to the
default position.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource)">setMediaSource</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSource</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</dd>
</dl>
</li>
</ul>
<a id="setMediaSource(com.google.android.exoplayer2.source.MediaSource,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSource&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
long&nbsp;startPositionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource,long)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource,long)">setMediaSource</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSource</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</dd>
<dd><code>startPositionMs</code> - The position in milliseconds to start playback from.</dd>
</dl>
</li>
</ul>
<a id="setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSource&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)">setMediaSource</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSource</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</dd>
<dd><code>resetPosition</code> - Whether the playback position should be reset to the default position. 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>
</dl>
</li>
</ul>
<a id="setMediaSources(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSources</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSources&#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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSources(java.util.List)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist, adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a> and resets the
position to the default position.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSources(java.util.List)">setMediaSources</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSources</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</dd>
</dl>
</li>
</ul>
<a id="setMediaSources(java.util.List,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSources</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSources&#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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
boolean&nbsp;resetPosition)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSources(java.util.List,boolean)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSources(java.util.List,boolean)">setMediaSources</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSources</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></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>
</dl>
</li>
</ul>
<a id="setMediaSources(java.util.List,int,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMediaSources</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMediaSources&#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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
int&nbsp;startMediaItemIndex,
long&nbsp;startPositionMs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setMediaSources(java.util.List,int,long)">ExoPlayer</a></code></span></div>
<div class="block">Clears the playlist and adds the specified <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setMediaSources(java.util.List,int,long)">setMediaSources</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSources</code> - The new <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</dd>
<dd><code>startMediaItemIndex</code> - The media item 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 media item is used. In any case,
if <code>startMediaItemIndex</code> is set to <a href="../C.html#INDEX_UNSET"><code>C.INDEX_UNSET</code></a>, this parameter is ignored
and the position is not reset at all.</dd>
</dl>
</li>
</ul>
<a id="addMediaSource(com.google.android.exoplayer2.source.MediaSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMediaSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaSource&#8203;(<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#addMediaSource(com.google.android.exoplayer2.source.MediaSource)">ExoPlayer</a></code></span></div>
<div class="block">Adds a media source to the end of the playlist.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#addMediaSource(com.google.android.exoplayer2.source.MediaSource)">addMediaSource</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSource</code> - The <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> to add.</dd>
</dl>
</li>
</ul>
<a id="addMediaSource(int,com.google.android.exoplayer2.source.MediaSource)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMediaSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaSource&#8203;(int&nbsp;index,
<a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#addMediaSource(int,com.google.android.exoplayer2.source.MediaSource)">ExoPlayer</a></code></span></div>
<div class="block">Adds a media source at the given index of the playlist.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#addMediaSource(int,com.google.android.exoplayer2.source.MediaSource)">addMediaSource</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the source.</dd>
<dd><code>mediaSource</code> - The <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> to add.</dd>
</dl>
</li>
</ul>
<a id="addMediaSources(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMediaSources</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaSources&#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.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#addMediaSources(java.util.List)">ExoPlayer</a></code></span></div>
<div class="block">Adds a list of media sources to the end of the playlist.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#addMediaSources(java.util.List)">addMediaSources</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSources</code> - The <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a> to add.</dd>
</dl>
</li>
</ul>
<a id="addMediaSources(int,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMediaSources</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addMediaSources&#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="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#addMediaSources(int,java.util.List)">ExoPlayer</a></code></span></div>
<div class="block">Adds a list of media sources at the given index of the playlist.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#addMediaSources(int,java.util.List)">addMediaSources</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index at which to add the media sources.</dd>
<dd><code>mediaSources</code> - The <a href="../source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a> to add.</dd>
</dl>
</li>
</ul>
<a id="setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setShuffleOrder</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setShuffleOrder&#8203;(<a href="../source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a>&nbsp;shuffleOrder)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)">ExoPlayer</a></code></span></div>
<div class="block">Sets the shuffle order.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)">setShuffleOrder</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuffleOrder</code> - The shuffle order.</dd>
</dl>
</li>
</ul>
<a id="setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAudioAttributes</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAudioAttributes&#8203;(<a href="../audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
boolean&nbsp;handleAudioFocus)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets the attributes for audio playback, used by the underlying audio track. If not set, the
default audio attributes will be used. They are suitable for general media playback.
<p>Setting the audio attributes during playback may introduce a short gap in audio output as
the audio track is recreated. A new audio session id will also be generated.
<p>If tunneling is enabled by the track selector, the specified audio attributes will be
ignored, but they will take effect if audio is later played without tunneling.
<p>If the device is running a build before platform API version 21, audio attributes cannot be
set directly on the underlying audio track. In this case, the usage will be mapped onto an
equivalent stream type using <a href="../util/Util.html#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)"><code>Util.getStreamTypeForAudioUsage(int)</code></a>.
<p>If audio focus should be handled, the <a href="../audio/AudioAttributes.html#usage"><code>AudioAttributes.usage</code></a> must be <a href="../C.html#USAGE_MEDIA"><code>C.USAGE_MEDIA</code></a> or <a href="../C.html#USAGE_GAME"><code>C.USAGE_GAME</code></a>. Other usages will throw an <a href="https://developer.android.com/reference/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>IllegalArgumentException</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)">setAudioAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioAttributes</code> - The attributes to use for audio playback.</dd>
<dd><code>handleAudioFocus</code> - True if the player should handle audio focus, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="setAudioSessionId(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAudioSessionId</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAudioSessionId&#8203;(int&nbsp;audioSessionId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setAudioSessionId(int)">ExoPlayer</a></code></span></div>
<div class="block">Sets the ID of the audio session to attach to the underlying <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>.
<p>The audio session ID can be generated using <a href="../util/Util.html#generateAudioSessionIdV21(android.content.Context)"><code>Util.generateAudioSessionIdV21(Context)</code></a>
for API 21+.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setAudioSessionId(int)">setAudioSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioSessionId</code> - The audio session ID, or <a href="../C.html#AUDIO_SESSION_ID_UNSET"><code>C.AUDIO_SESSION_ID_UNSET</code></a> if it should be
generated by the framework.</dd>
</dl>
</li>
</ul>
<a id="getAudioSessionId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioSessionId</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getAudioSessionId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getAudioSessionId()">ExoPlayer</a></code></span></div>
<div class="block">Returns the audio session identifier, or <a href="../C.html#AUDIO_SESSION_ID_UNSET"><code>C.AUDIO_SESSION_ID_UNSET</code></a> if not set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getAudioSessionId()">getAudioSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setAuxEffectInfo(com.google.android.exoplayer2.audio.AuxEffectInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuxEffectInfo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAuxEffectInfo&#8203;(<a href="../audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio">AuxEffectInfo</a>&nbsp;auxEffectInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setAuxEffectInfo(com.google.android.exoplayer2.audio.AuxEffectInfo)">ExoPlayer</a></code></span></div>
<div class="block">Sets information on an auxiliary audio effect to attach to the underlying audio track.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setAuxEffectInfo(com.google.android.exoplayer2.audio.AuxEffectInfo)">setAuxEffectInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="clearAuxEffectInfo()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearAuxEffectInfo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearAuxEffectInfo()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#clearAuxEffectInfo()">ExoPlayer</a></code></span></div>
<div class="block">Detaches any previously attached auxiliary audio effect from the underlying audio track.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#clearAuxEffectInfo()">clearAuxEffectInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setPreferredAudioDevice(android.media.AudioDeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferredAudioDevice</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPreferredAudioDevice&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setPreferredAudioDevice(android.media.AudioDeviceInfo)">ExoPlayer</a></code></span></div>
<div class="block">Sets the preferred audio device.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setPreferredAudioDevice(android.media.AudioDeviceInfo)">setPreferredAudioDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioDeviceInfo</code> - The preferred <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">audio device</a>, or null to
restore the default.</dd>
</dl>
</li>
</ul>
<a id="setSkipSilenceEnabled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSkipSilenceEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setSkipSilenceEnabled(boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets whether skipping silences in the audio stream is enabled.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>skipSilenceEnabled</code> - Whether skipping silences in the audio stream is enabled.</dd>
</dl>
</li>
</ul>
<a id="getSkipSilenceEnabled()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSkipSilenceEnabled</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getSkipSilenceEnabled()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getSkipSilenceEnabled()">ExoPlayer</a></code></span></div>
<div class="block">Returns whether skipping silences in the audio stream is enabled.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getSkipSilenceEnabled()">getSkipSilenceEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setVideoScalingMode(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoScalingMode</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoScalingMode&#8203;(int&nbsp;videoScalingMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">ExoPlayer</a></code></span></div>
<div class="block">Sets the <a href="../C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.
<p>The scaling mode only applies if a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based video <a href="../Renderer.html" title="interface in com.google.android.exoplayer2" target="_top"><code>Renderer</code></a> is
enabled and if the output surface is owned by a <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>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">setVideoScalingMode</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>videoScalingMode</code> - The <a href="../C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getVideoScalingMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoScalingMode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getVideoScalingMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getVideoScalingMode()">ExoPlayer</a></code></span></div>
<div class="block">Returns the <a href="../C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getVideoScalingMode()">getVideoScalingMode</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setVideoChangeFrameRateStrategy(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoChangeFrameRateStrategy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoChangeFrameRateStrategy&#8203;(int&nbsp;videoChangeFrameRateStrategy)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">ExoPlayer</a></code></span></div>
<div class="block">Sets a <a href="../C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a> that will be used by the player when provided
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>.
<p>The strategy only applies if a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based video <a href="../Renderer.html" title="interface in com.google.android.exoplayer2" target="_top"><code>Renderer</code></a> is enabled.
Applications wishing to use <a href="https://developer.android.com/reference/android/view/Surface.html#CHANGE_FRAME_RATE_ALWAYS" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.CHANGE_FRAME_RATE_ALWAYS</code></a> should set the mode to
<a href="../C.html#VIDEO_CHANGE_FRAME_RATE_STRATEGY_OFF"><code>C.VIDEO_CHANGE_FRAME_RATE_STRATEGY_OFF</code></a> to disable calls to <a href="https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float,int,int)" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.setFrameRate(float, int, int)</code></a>
from ExoPlayer, and should then call <a href="https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float,int,int)" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.setFrameRate(float, int, int)</code></a> directly from application
code.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">setVideoChangeFrameRateStrategy</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>videoChangeFrameRateStrategy</code> - A <a href="../C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getVideoChangeFrameRateStrategy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoChangeFrameRateStrategy</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getVideoChangeFrameRateStrategy()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getVideoChangeFrameRateStrategy()">ExoPlayer</a></code></span></div>
<div class="block">Returns the <a href="../C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getVideoChangeFrameRateStrategy()">getVideoChangeFrameRateStrategy</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVideoFrameMetadataListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setVideoFrameMetadataListener&#8203;(<a href="../video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">ExoPlayer</a></code></span></div>
<div class="block">Sets a listener to receive video frame metadata events.
<p>This method is intended to be called by the same component that sets 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 will be rendered. If using ExoPlayer's standard UI components, this method
should not be called directly from application code.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">setVideoFrameMetadataListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener.</dd>
</dl>
</li>
</ul>
<a id="clearVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearVideoFrameMetadataListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearVideoFrameMetadataListener&#8203;(<a href="../video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#clearVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">ExoPlayer</a></code></span></div>
<div class="block">Clears the listener which receives video frame metadata events if it matches the one passed.
Else does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#clearVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">clearVideoFrameMetadataListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to clear.</dd>
</dl>
</li>
</ul>
<a id="setCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCameraMotionListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setCameraMotionListener&#8203;(<a href="../video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">ExoPlayer</a></code></span></div>
<div class="block">Sets a listener of camera motion events.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">setCameraMotionListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener.</dd>
</dl>
</li>
</ul>
<a id="clearCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearCameraMotionListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clearCameraMotionListener&#8203;(<a href="../video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a>&nbsp;listener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#clearCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">ExoPlayer</a></code></span></div>
<div class="block">Clears the listener which receives camera motion events if it matches the one passed. Else does
nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#clearCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">clearCameraMotionListener</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The listener to clear.</dd>
</dl>
</li>
</ul>
<a id="setSeekParameters(com.google.android.exoplayer2.SeekParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSeekParameters</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSeekParameters&#8203;(@Nullable
<a href="../SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setSeekParameters(com.google.android.exoplayer2.SeekParameters)">ExoPlayer</a></code></span></div>
<div class="block">Sets the parameters that control how seek operations are performed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setSeekParameters(com.google.android.exoplayer2.SeekParameters)">setSeekParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekParameters</code> - The seek parameters, or <code>null</code> to use the defaults.</dd>
</dl>
</li>
</ul>
<a id="getSeekParameters()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSeekParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="../SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;getSeekParameters()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getSeekParameters()">ExoPlayer</a></code></span></div>
<div class="block">Returns the currently active <a href="../SeekParameters.html" title="class in com.google.android.exoplayer2"><code>SeekParameters</code></a> of the player.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getSeekParameters()">getSeekParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="createMessage(com.google.android.exoplayer2.PlayerMessage.Target)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMessage</h4>
<pre class="methodSignature">public&nbsp;<a href="../PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;createMessage&#8203;(<a href="../PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a>&nbsp;target)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)">ExoPlayer</a></code></span></div>
<div class="block">Creates a message that can be sent to a <a href="../PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><code>PlayerMessage.Target</code></a>. By default, the message
will be delivered immediately without blocking on the playback thread. The default <a href="../PlayerMessage.html#getType()"><code>PlayerMessage.getType()</code></a> is 0 and the default <a href="../PlayerMessage.html#getPayload()"><code>PlayerMessage.getPayload()</code></a> is null. If a
position is specified with <a href="../PlayerMessage.html#setPosition(long)"><code>PlayerMessage.setPosition(long)</code></a>, the message will be
delivered at this position in the current media item defined by <a href="../Player.html#getCurrentMediaItemIndex()"><code>Player.getCurrentMediaItemIndex()</code></a>. Alternatively, the message can be sent at a specific mediaItem
using <a href="../PlayerMessage.html#setPosition(int,long)"><code>PlayerMessage.setPosition(int, long)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)">createMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getRendererCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRendererCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getRendererCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getRendererCount()">ExoPlayer</a></code></span></div>
<div class="block">Returns the number of renderers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getRendererCount()">getRendererCount</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getRendererType(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRendererType</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getRendererType&#8203;(int&nbsp;index)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getRendererType(int)">ExoPlayer</a></code></span></div>
<div class="block">Returns the track type that the renderer at a given index handles.
<p>For example, a video renderer will return <a href="../C.html#TRACK_TYPE_VIDEO"><code>C.TRACK_TYPE_VIDEO</code></a>, an audio renderer will
return <a href="../C.html#TRACK_TYPE_AUDIO"><code>C.TRACK_TYPE_AUDIO</code></a> and a text renderer will return <a href="../C.html#TRACK_TYPE_TEXT"><code>C.TRACK_TYPE_TEXT</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getRendererType(int)">getRendererType</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index of the renderer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../C.TrackType.html" title="annotation in com.google.android.exoplayer2"><code>track type</code></a> that the renderer handles.</dd>
</dl>
</li>
</ul>
<a id="getRenderer(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRenderer</h4>
<pre class="methodSignature">public&nbsp;<a href="../Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a>&nbsp;getRenderer&#8203;(int&nbsp;index)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getRenderer(int)">ExoPlayer</a></code></span></div>
<div class="block">Returns the renderer at the given index.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getRenderer(int)">getRenderer</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index of the renderer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The renderer at this index.</dd>
</dl>
</li>
</ul>
<a id="getTrackSelector()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrackSelector</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;getTrackSelector()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getTrackSelector()">ExoPlayer</a></code></span></div>
<div class="block">Returns the track selector that this player uses, or null if track selection is not supported.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getTrackSelector()">getTrackSelector</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getCurrentTrackGroups()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTrackGroups</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;<a href="../source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&nbsp;getCurrentTrackGroups()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#getCurrentTracks()"><code>StubPlayer.getCurrentTracks()</code></a>.</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getCurrentTrackGroups()">ExoPlayer</a></code></span></div>
<div class="block">Returns the available track groups.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getCurrentTrackGroups()">getCurrentTrackGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<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>
</dl>
</li>
</ul>
<a id="getCurrentTrackSelections()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentTrackSelections</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;<a href="../trackselection/TrackSelectionArray.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionArray</a>&nbsp;getCurrentTrackSelections()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="StubPlayer.html#getCurrentTracks()"><code>StubPlayer.getCurrentTracks()</code></a>.</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getCurrentTrackSelections()">ExoPlayer</a></code></span></div>
<div class="block">Returns the current track selections for each renderer, which may include <code>null</code> elements
if some renderers do not have any selected tracks.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getCurrentTrackSelections()">getCurrentTrackSelections</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<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>
</dl>
</li>
</ul>
<a id="setForegroundMode(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setForegroundMode</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setForegroundMode&#8203;(boolean&nbsp;foregroundMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setForegroundMode(boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets whether the player is allowed to keep holding limited resources such as video decoders,
even when in the idle state. By doing so, the player may be able to reduce latency when
starting to play another piece of content for which the same resources are required.
<p>This mode should be used with caution, since holding limited resources may prevent other
players of media components from acquiring them. It should only be enabled when <em>both</em>
of the following conditions are true:
<ul>
<li>The application that owns the player is in the foreground.
<li>The player is used in a way that may benefit from foreground mode. For this to be true,
the same player instance must be used to play multiple pieces of content, and there must
be gaps between the playbacks (i.e. <a href="../Player.html#stop()"><code>Player.stop()</code></a> is called to halt one playback, and
<a href="../ExoPlayer.html#prepare(com.google.android.exoplayer2.source.MediaSource)"><code>ExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)</code></a> is called some time later to start a new one).
</ul>
<p>Note that foreground mode is <em>not</em> useful for switching between content without gaps
between the playbacks. For this use case <a href="../Player.html#stop()"><code>Player.stop()</code></a> does not need to be called, and simply
calling <a href="../ExoPlayer.html#prepare(com.google.android.exoplayer2.source.MediaSource)"><code>ExoPlayer.prepare(com.google.android.exoplayer2.source.MediaSource)</code></a> for the new media will cause limited resources to be retained even if
foreground mode is not enabled.
<p>If foreground mode is enabled, it's the application's responsibility to disable it when the
conditions described above no longer hold.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setForegroundMode(boolean)">setForegroundMode</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>foregroundMode</code> - Whether the player is allowed to keep limited resources even when in the
idle state.</dd>
</dl>
</li>
</ul>
<a id="setPauseAtEndOfMediaItems(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPauseAtEndOfMediaItems</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPauseAtEndOfMediaItems&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setPauseAtEndOfMediaItems(boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets whether to pause playback at the end of each media item.
<p>This means the player will pause at the end of each window in the current <a href="../Player.html#getCurrentTimeline()"><code>timeline</code></a>. Listeners will be informed by a call to <a href="../Player.Listener.html#onPlayWhenReadyChanged(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)"><code>Player.Listener.onPlayWhenReadyChanged(boolean, int)</code></a> with the reason <a href="../Player.html#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM"><code>Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</code></a> when this happens.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setPauseAtEndOfMediaItems(boolean)">setPauseAtEndOfMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pauseAtEndOfMediaItems</code> - Whether to pause playback at the end of each media item.</dd>
</dl>
</li>
</ul>
<a id="getPauseAtEndOfMediaItems()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPauseAtEndOfMediaItems</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getPauseAtEndOfMediaItems()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getPauseAtEndOfMediaItems()">ExoPlayer</a></code></span></div>
<div class="block">Returns whether the player pauses playback at the end of each media item.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getPauseAtEndOfMediaItems()">getPauseAtEndOfMediaItems</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../ExoPlayer.html#setPauseAtEndOfMediaItems(boolean)"><code>ExoPlayer.setPauseAtEndOfMediaItems(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="getAudioFormat()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioFormat</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;getAudioFormat()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getAudioFormat()">ExoPlayer</a></code></span></div>
<div class="block">Returns the audio format currently being played, or null if no audio is being played.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getAudioFormat()">getAudioFormat</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getVideoFormat()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoFormat</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;getVideoFormat()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getVideoFormat()">ExoPlayer</a></code></span></div>
<div class="block">Returns the video format currently being played, or null if no video is being played.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getVideoFormat()">getVideoFormat</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getAudioDecoderCounters()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioDecoderCounters</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a>&nbsp;getAudioDecoderCounters()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getAudioDecoderCounters()">ExoPlayer</a></code></span></div>
<div class="block">Returns <a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a> for audio, or null if no audio is being played.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getAudioDecoderCounters()">getAudioDecoderCounters</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="getVideoDecoderCounters()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVideoDecoderCounters</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a>&nbsp;getVideoDecoderCounters()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#getVideoDecoderCounters()">ExoPlayer</a></code></span></div>
<div class="block">Returns <a href="../decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a> for video, or null if no video is being played.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#getVideoDecoderCounters()">getVideoDecoderCounters</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setHandleAudioBecomingNoisy(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHandleAudioBecomingNoisy</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setHandleAudioBecomingNoisy&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setHandleAudioBecomingNoisy(boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets whether the player should pause automatically when audio is rerouted from a headset to
device speakers. See the <a href="https://developer.android.com/guide/topics/media-apps/volume-and-earphones#becoming-noisy">audio
becoming noisy</a> documentation for more information.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setHandleAudioBecomingNoisy(boolean)">setHandleAudioBecomingNoisy</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handleAudioBecomingNoisy</code> - Whether the player should pause automatically when audio is
rerouted from a headset to device speakers.</dd>
</dl>
</li>
</ul>
<a id="setHandleWakeLock(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHandleWakeLock</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;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setWakeMode(int)"><code>setWakeMode(int)</code></a> instead.</div>
</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setHandleWakeLock(boolean)">setHandleWakeLock</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
</dl>
</li>
</ul>
<a id="setWakeMode(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWakeMode</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setWakeMode&#8203;(int&nbsp;wakeMode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setWakeMode(@com.google.android.exoplayer2.C.WakeModeint)">ExoPlayer</a></code></span></div>
<div class="block">Sets how the player should keep the device awake for playback when the screen is off.
<p>Enabling this feature requires the <a href="https://developer.android.com/reference/android/Manifest.permission.html#WAKE_LOCK" title="class or interface in android" class="externalLink" target="_top"><code>Manifest.permission.WAKE_LOCK</code></a> permission.
It should be used together with a foreground <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 use cases where
playback occurs and the screen is off (e.g. background audio playback). It is not useful when
the screen will be kept on during playback (e.g. foreground video playback).
<p>When enabled, the locks (<a href="https://developer.android.com/reference/android/os/PowerManager.WakeLock.html" title="class or interface in android.os" class="externalLink"><code>PowerManager.WakeLock</code></a> / <a href="https://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html?is-external=true" title="class or interface in android.net.wifi" class="externalLink"><code>WifiManager.WifiLock</code></a>) will be held whenever the player is in the <a href="../Player.html#STATE_READY"><code>Player.STATE_READY</code></a> or <a href="../Player.html#STATE_BUFFERING" target="_top"><code>Player.STATE_BUFFERING</code></a> states with <code>playWhenReady = true</code>. The locks
held depends on the specified <a href="../C.WakeMode.html" title="annotation in com.google.android.exoplayer2"><code>C.WakeMode</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setWakeMode(@com.google.android.exoplayer2.C.WakeModeint)">setWakeMode</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wakeMode</code> - The <a href="../C.WakeMode.html" title="annotation in com.google.android.exoplayer2"><code>C.WakeMode</code></a> option to keep the device awake during playback.</dd>
</dl>
</li>
</ul>
<a id="setPriorityTaskManager(com.google.android.exoplayer2.util.PriorityTaskManager)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPriorityTaskManager</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setPriorityTaskManager&#8203;(@Nullable
<a href="../util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a>&nbsp;priorityTaskManager)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#setPriorityTaskManager(com.google.android.exoplayer2.util.PriorityTaskManager)">ExoPlayer</a></code></span></div>
<div class="block">Sets a <a href="../util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>, or null to clear a previously set priority task manager.
<p>The priority <a href="../C.html#PRIORITY_PLAYBACK"><code>C.PRIORITY_PLAYBACK</code></a> will be set while the player is loading.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#setPriorityTaskManager(com.google.android.exoplayer2.util.PriorityTaskManager)">setPriorityTaskManager</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>priorityTaskManager</code> - The <a href="../util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>, or null to clear a previously set
priority task manager.</dd>
</dl>
</li>
</ul>
<a id="experimentalSetOffloadSchedulingEnabled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>experimentalSetOffloadSchedulingEnabled</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;experimentalSetOffloadSchedulingEnabled&#8203;(boolean&nbsp;offloadSchedulingEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#experimentalSetOffloadSchedulingEnabled(boolean)">ExoPlayer</a></code></span></div>
<div class="block">Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will run as
rarely as possible when playing an audio stream using audio offload.
<p>Only use this scheduling mode if the player is not displaying anything to the user. For
example when the application is in the background, or the screen is off. The player state
(including position) is rarely updated (roughly between every 10 seconds and 1 minute).
<p>While offload scheduling is enabled, player events may be delivered severely delayed and
apps should not interact with the player. When returning to the foreground, disable offload
scheduling and wait for <a href="../ExoPlayer.AudioOffloadListener.html#onExperimentalOffloadSchedulingEnabledChanged(boolean)"><code>ExoPlayer.AudioOffloadListener.onExperimentalOffloadSchedulingEnabledChanged(boolean)</code></a> to be called with
<code>offloadSchedulingEnabled = false</code> before interacting with the player.
<p>This mode should save significant power when the phone is playing offload audio with the
screen off.
<p>This mode only has an effect when playing an audio track in offload mode, which requires all
the following:
<ul>
<li>Audio offload rendering is enabled in <a href="../DefaultRenderersFactory.html#setEnableAudioOffload(boolean)"><code>DefaultRenderersFactory.setEnableAudioOffload(boolean)</code></a> or the equivalent option passed to <a href="../audio/DefaultAudioSink.Builder.html#setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadModeint)"><code>DefaultAudioSink.Builder.setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int)</code></a>.
<li>An audio track is playing in a format that the device supports offloading (for example,
MP3 or AAC).
<li>The <a href="../audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioSink</code></a> is playing with an offload <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>.
</ul>
<p>The state where ExoPlayer main loop has been paused to save power during offload playback
can be queried with <a href="../ExoPlayer.html#experimentalIsSleepingForOffload()"><code>ExoPlayer.experimentalIsSleepingForOffload()</code></a>.
<p>This method is experimental, and will be renamed or removed in a future release.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#experimentalSetOffloadSchedulingEnabled(boolean)">experimentalSetOffloadSchedulingEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offloadSchedulingEnabled</code> - Whether to enable offload scheduling.</dd>
</dl>
</li>
</ul>
<a id="experimentalIsSleepingForOffload()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>experimentalIsSleepingForOffload</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;experimentalIsSleepingForOffload()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#experimentalIsSleepingForOffload()">ExoPlayer</a></code></span></div>
<div class="block">Returns whether the player has paused its main loop to save power in offload scheduling mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#experimentalIsSleepingForOffload()">experimentalIsSleepingForOffload</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../ExoPlayer.html#experimentalSetOffloadSchedulingEnabled(boolean)"><code>ExoPlayer.experimentalSetOffloadSchedulingEnabled(boolean)</code></a>,
<a href="../ExoPlayer.AudioOffloadListener.html#onExperimentalSleepingForOffloadChanged(boolean)"><code>ExoPlayer.AudioOffloadListener.onExperimentalSleepingForOffloadChanged(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="isTunnelingEnabled()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isTunnelingEnabled</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isTunnelingEnabled()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ExoPlayer.html#isTunnelingEnabled()">ExoPlayer</a></code></span></div>
<div class="block">Returns whether <a href="https://source.android.com/devices/tv/multimedia-tunneling">tunneling</a> is enabled for
the currently selected tracks.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ExoPlayer.html#isTunnelingEnabled()">isTunnelingEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<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>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>