media3/docs/doc/reference-v1/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html
2021-04-20 16:18:09 +01:00

1150 lines
93 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Wed Dec 14 17:18:31 GMT 2016 -->
<title>MediaCodecAudioTrackRenderer (ExoPlayer library)</title>
<meta name="date" content="2016-12-14">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MediaCodecAudioTrackRenderer (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html" target="_top">Frames</a></li>
<li><a href="MediaCodecAudioTrackRenderer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.android.exoplayer</div>
<h2 title="Class MediaCodecAudioTrackRenderer" class="title">Class MediaCodecAudioTrackRenderer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer">com.google.android.exoplayer.TrackRenderer</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html" title="class in com.google.android.exoplayer">com.google.android.exoplayer.SampleSourceTrackRenderer</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">com.google.android.exoplayer.MediaCodecTrackRenderer</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer.MediaCodecAudioTrackRenderer</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../com/google/android/exoplayer/ExoPlayer.ExoPlayerComponent.html" title="interface in com.google.android.exoplayer">ExoPlayer.ExoPlayerComponent</a>, <a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer">MediaClock</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">MediaCodecAudioTrackRenderer</span>
extends <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a>
implements <a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer">MediaClock</a></pre>
<div class="block">Decodes and renders audio using <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a> and <a href="https://developer.android.com/reference/android/media/AudioTrack.html?is-external=true" title="class or interface in android.media"><code>AudioTrack</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a></span></code>
<div class="block">Interface definition for a callback to be notified of <a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html" title="class in com.google.android.exoplayer"><code>MediaCodecAudioTrackRenderer</code></a>
events.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.com.google.android.exoplayer.MediaCodecTrackRenderer">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.DecoderInitializationException.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer.DecoderInitializationException</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MSG_SET_PLAYBACK_PARAMS">MSG_SET_PLAYBACK_PARAMS</a></span></code>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MSG_SET_STREAM_TYPE">MSG_SET_STREAM_TYPE</a></span></code>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a></span></code>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.com.google.android.exoplayer.MediaCodecTrackRenderer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#codecCounters">codecCounters</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#eventHandler">eventHandler</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#SOURCE_STATE_NOT_READY">SOURCE_STATE_NOT_READY</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#SOURCE_STATE_READY">SOURCE_STATE_READY</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#SOURCE_STATE_READY_READ_MAY_FAIL">SOURCE_STATE_READY_READ_MAY_FAIL</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.com.google.android.exoplayer.TrackRenderer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer">TrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#END_OF_TRACK_US">END_OF_TRACK_US</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#MATCH_LONGEST_US">MATCH_LONGEST_US</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_PREPARED">STATE_PREPARED</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_RELEASED">STATE_RELEASED</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_STARTED">STATE_STARTED</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_UNPREPARED">STATE_UNPREPARED</a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#UNKNOWN_TIME_US">UNKNOWN_TIME_US</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource:A-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-com.google.android.exoplayer.audio.AudioCapabilities-int-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>[]&nbsp;sources,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener,
<a href="../../../../com/google/android/exoplayer/audio/AudioCapabilities.html" title="class in com.google.android.exoplayer.audio">AudioCapabilities</a>&nbsp;audioCapabilities,
int&nbsp;streamType)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-com.google.android.exoplayer.audio.AudioCapabilities-int-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener,
<a href="../../../../com/google/android/exoplayer/audio/AudioCapabilities.html" title="class in com.google.android.exoplayer.audio">AudioCapabilities</a>&nbsp;audioCapabilities,
int&nbsp;streamType)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-">MediaCodecAudioTrackRenderer</a></span>(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#allowPassthrough-java.lang.String-">allowPassthrough</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;mimeType)</code>
<div class="block">Returns whether encoded audio passthrough should be used for playing back the input format.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#configureCodec-android.media.MediaCodec-boolean-android.media.MediaFormat-android.media.MediaCrypto-">configureCodec</a></span>(<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
boolean&nbsp;codecIsAdaptive,
<a href="https://developer.android.com/reference/android/media/MediaFormat.html?is-external=true" title="class or interface in android.media">MediaFormat</a>&nbsp;format,
<a href="https://developer.android.com/reference/android/media/MediaCrypto.html?is-external=true" title="class or interface in android.media">MediaCrypto</a>&nbsp;crypto)</code>
<div class="block">Configures a newly created <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../com/google/android/exoplayer/DecoderInfo.html" title="class in com.google.android.exoplayer">DecoderInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#getDecoderInfo-com.google.android.exoplayer.MediaCodecSelector-java.lang.String-boolean-">getDecoderInfo</a></span>(<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;mimeType,
boolean&nbsp;requiresSecureDecoder)</code>
<div class="block">Returns a <a href="../../../../com/google/android/exoplayer/DecoderInfo.html" title="class in com.google.android.exoplayer"><code>DecoderInfo</code></a> for a given format.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer">MediaClock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#getMediaClock--">getMediaClock</a></span>()</code>
<div class="block">If the renderer advances its own playback position then this method returns a corresponding
<a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><code>MediaClock</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#getPositionUs--">getPositionUs</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#handleAudioTrackDiscontinuity--">handleAudioTrackDiscontinuity</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#handleMessage-int-java.lang.Object-">handleMessage</a></span>(int&nbsp;messageType,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;message)</code>
<div class="block">Handles a message delivered to the component.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#handlesTrack-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.MediaFormat-">handlesTrack</a></span>(<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/MediaFormat.html" title="class in com.google.android.exoplayer">MediaFormat</a>&nbsp;mediaFormat)</code>
<div class="block">Returns whether this renderer is capable of handling the provided track.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#isEnded--">isEnded</a></span>()</code>
<div class="block">Whether the renderer is ready for the <a href="../../../../com/google/android/exoplayer/ExoPlayer.html" title="interface in com.google.android.exoplayer"><code>ExoPlayer</code></a> instance to transition to
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#STATE_ENDED"><code>ExoPlayer.STATE_ENDED</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#isReady--">isReady</a></span>()</code>
<div class="block">Whether the renderer is able to immediately render media from the current position.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onAudioSessionId-int-">onAudioSessionId</a></span>(int&nbsp;audioSessionId)</code>
<div class="block">Invoked when the audio session id becomes known.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onDisabled--">onDisabled</a></span>()</code>
<div class="block">Called when the renderer is disabled.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onDiscontinuity-long-">onDiscontinuity</a></span>(long&nbsp;positionUs)</code>
<div class="block">Invoked when a discontinuity is encountered.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onInputFormatChanged-com.google.android.exoplayer.MediaFormatHolder-">onInputFormatChanged</a></span>(<a href="../../../../com/google/android/exoplayer/MediaFormatHolder.html" title="class in com.google.android.exoplayer">MediaFormatHolder</a>&nbsp;holder)</code>
<div class="block">Invoked when a new format is read from the upstream <a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><code>SampleSource</code></a>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onOutputFormatChanged-android.media.MediaCodec-android.media.MediaFormat-">onOutputFormatChanged</a></span>(<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
<a href="https://developer.android.com/reference/android/media/MediaFormat.html?is-external=true" title="class or interface in android.media">MediaFormat</a>&nbsp;outputFormat)</code>
<div class="block">Invoked when the output format of the <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a> changes.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onOutputStreamEnded--">onOutputStreamEnded</a></span>()</code>
<div class="block">Invoked when the output stream ends, meaning that the last output buffer has been processed
and the <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true#BUFFER_FLAG_END_OF_STREAM" title="class or interface in android.media"><code>MediaCodec.BUFFER_FLAG_END_OF_STREAM</code></a> flag has been propagated through the
decoder.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onStarted--">onStarted</a></span>()</code>
<div class="block">Called when the renderer is started.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onStopped--">onStopped</a></span>()</code>
<div class="block">Called when the renderer is stopped.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#processOutputBuffer-long-long-android.media.MediaCodec-java.nio.ByteBuffer-android.media.MediaCodec.BufferInfo-int-boolean-">processOutputBuffer</a></span>(long&nbsp;positionUs,
long&nbsp;elapsedRealtimeUs,
<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
<a href="https://developer.android.com/reference/android/media/MediaCodec.BufferInfo.html?is-external=true" title="class or interface in android.media">MediaCodec.BufferInfo</a>&nbsp;bufferInfo,
int&nbsp;bufferIndex,
boolean&nbsp;shouldSkip)</code>
<div class="block">Processes the provided output buffer.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.com.google.android.exoplayer.MediaCodecTrackRenderer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#canReconfigureCodec-android.media.MediaCodec-boolean-com.google.android.exoplayer.MediaFormat-com.google.android.exoplayer.MediaFormat-">canReconfigureCodec</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#codecInitialized--">codecInitialized</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#doSomeWork-long-long-boolean-">doSomeWork</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#flushCodec--">flushCodec</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#getDequeueOutputBufferTimeoutUs--">getDequeueOutputBufferTimeoutUs</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#getSourceState--">getSourceState</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#handlesTrack-com.google.android.exoplayer.MediaFormat-">handlesTrack</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#haveFormat--">haveFormat</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#maybeInitCodec--">maybeInitCodec</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onProcessedOutputBuffer-long-">onProcessedOutputBuffer</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onQueuedInputBuffer-long-java.nio.ByteBuffer-int-boolean-">onQueuedInputBuffer</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#releaseCodec--">releaseCodec</a>, <a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#shouldInitCodec--">shouldInitCodec</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.com.google.android.exoplayer.SampleSourceTrackRenderer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html" title="class in com.google.android.exoplayer">SampleSourceTrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#doPrepare-long-">doPrepare</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#doSomeWork-long-long-">doSomeWork</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#getBufferedPositionUs--">getBufferedPositionUs</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#getDurationUs--">getDurationUs</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#getFormat-int-">getFormat</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#getTrackCount--">getTrackCount</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#maybeThrowError--">maybeThrowError</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#onEnabled-int-long-boolean-">onEnabled</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#onReleased--">onReleased</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#readSource-long-com.google.android.exoplayer.MediaFormatHolder-com.google.android.exoplayer.SampleHolder-">readSource</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#seekTo-long-">seekTo</a>, <a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#shiftInputPosition-long-">shiftInputPosition</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.com.google.android.exoplayer.TrackRenderer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer.<a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer">TrackRenderer</a></h3>
<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#getState--">getState</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="MSG_SET_VOLUME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MSG_SET_VOLUME</h4>
<pre>public static final&nbsp;int MSG_SET_VOLUME</pre>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>. The message object
should be a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang"><code>Float</code></a> with 0 being silence and 1 being unity gain.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer.MediaCodecAudioTrackRenderer.MSG_SET_VOLUME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MSG_SET_PLAYBACK_PARAMS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MSG_SET_PLAYBACK_PARAMS</h4>
<pre>public static final&nbsp;int MSG_SET_PLAYBACK_PARAMS</pre>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>. The message object
should be a <a href="https://developer.android.com/reference/android/media/PlaybackParams.html?is-external=true" title="class or interface in android.media"><code>PlaybackParams</code></a>, which will be used to configure the
underlying <a href="https://developer.android.com/reference/android/media/AudioTrack.html?is-external=true" title="class or interface in android.media"><code>AudioTrack</code></a>. The message object should not be modified by the
caller after it has been passed</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer.MediaCodecAudioTrackRenderer.MSG_SET_PLAYBACK_PARAMS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MSG_SET_STREAM_TYPE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MSG_SET_STREAM_TYPE</h4>
<pre>public static final&nbsp;int MSG_SET_STREAM_TYPE</pre>
<div class="block">A type of a message that can be passed to an instance of this class via
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#sendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.sendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a> or <a href="../../../../com/google/android/exoplayer/ExoPlayer.html#blockingSendMessage-com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent-int-java.lang.Object-"><code>ExoPlayer.blockingSendMessage(com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent, int, java.lang.Object)</code></a>. The message object
should be an integer stream type accepted by <a href="https://developer.android.com/reference/android/media/AudioTrack.html?is-external=true" title="class or interface in android.media"><code>AudioTrack</code></a>'s constructor
(see <a href="https://developer.android.com/reference/android/media/AudioTrack.html?is-external=true#AudioTrack-int-int-int-int-int-int-" title="class or interface in android.media"><code>AudioTrack.AudioTrack(int, int, int, int, int, int)</code></a>).
<p>
Note that when the stream type changes, the AudioTrack must be reinitialized, which can
introduce a brief gap in audio output. Note also that tracks in the same audio session must
share the same routing, so a new audio session id will be generated.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer.MediaCodecAudioTrackRenderer.MSG_SET_STREAM_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The upstream source from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
</dl>
</li>
</ul>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The upstream source from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
<dd><code>drmSessionManager</code> - For use with encrypted content. May be null if support for encrypted
content is not required.</dd>
<dd><code>playClearSamplesWithoutKeys</code> - Encrypted media may contain clear (un-encrypted) regions.
For example a media file may start with a short clear region so as to allow playback to
begin in parallel with key acquisition. This parameter specifies whether the renderer is
permitted to play clear regions of encrypted media files before <code>drmSessionManager</code>
has obtained the keys necessary to decrypt encrypted regions of the media.</dd>
</dl>
</li>
</ul>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The upstream source from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
<dd><code>eventHandler</code> - A handler to use when delivering events to <code>eventListener</code>. May be
null if delivery of events is not required.</dd>
<dd><code>eventListener</code> - A listener of events. May be null if delivery of events is not required.</dd>
</dl>
</li>
</ul>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The upstream source from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
<dd><code>drmSessionManager</code> - For use with encrypted content. May be null if support for encrypted
content is not required.</dd>
<dd><code>playClearSamplesWithoutKeys</code> - Encrypted media may contain clear (un-encrypted) regions.
For example a media file may start with a short clear region so as to allow playback to
begin in parallel with key acquisition. This parameter specifies whether the renderer is
permitted to play clear regions of encrypted media files before <code>drmSessionManager</code>
has obtained the keys necessary to decrypt encrypted regions of the media.</dd>
<dd><code>eventHandler</code> - A handler to use when delivering events to <code>eventListener</code>. May be
null if delivery of events is not required.</dd>
<dd><code>eventListener</code> - A listener of events. May be null if delivery of events is not required.</dd>
</dl>
</li>
</ul>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-com.google.android.exoplayer.audio.AudioCapabilities-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>&nbsp;source,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener,
<a href="../../../../com/google/android/exoplayer/audio/AudioCapabilities.html" title="class in com.google.android.exoplayer.audio">AudioCapabilities</a>&nbsp;audioCapabilities,
int&nbsp;streamType)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - The upstream source from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
<dd><code>drmSessionManager</code> - For use with encrypted content. May be null if support for encrypted
content is not required.</dd>
<dd><code>playClearSamplesWithoutKeys</code> - Encrypted media may contain clear (un-encrypted) regions.
For example a media file may start with a short clear region so as to allow playback to
begin in parallel with key acquisition. This parameter specifies whether the renderer is
permitted to play clear regions of encrypted media files before <code>drmSessionManager</code>
has obtained the keys necessary to decrypt encrypted regions of the media.</dd>
<dd><code>eventHandler</code> - A handler to use when delivering events to <code>eventListener</code>. May be
null if delivery of events is not required.</dd>
<dd><code>eventListener</code> - A listener of events. May be null if delivery of events is not required.</dd>
<dd><code>audioCapabilities</code> - The audio capabilities for playback on this device. May be null if the
default capabilities (no encoded audio passthrough support) should be assumed.</dd>
<dd><code>streamType</code> - The type of audio stream for the <a href="../../../../com/google/android/exoplayer/audio/AudioTrack.html" title="class in com.google.android.exoplayer.audio"><code>AudioTrack</code></a>.</dd>
</dl>
</li>
</ul>
<a name="MediaCodecAudioTrackRenderer-com.google.android.exoplayer.SampleSource:A-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.drm.DrmSessionManager-boolean-android.os.Handler-com.google.android.exoplayer.MediaCodecAudioTrackRenderer.EventListener-com.google.android.exoplayer.audio.AudioCapabilities-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MediaCodecAudioTrackRenderer</h4>
<pre>public&nbsp;MediaCodecAudioTrackRenderer(<a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a>[]&nbsp;sources,
<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer.drm">DrmSessionManager</a>&nbsp;drmSessionManager,
boolean&nbsp;playClearSamplesWithoutKeys,
<a href="https://developer.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a>&nbsp;eventHandler,
<a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer">MediaCodecAudioTrackRenderer.EventListener</a>&nbsp;eventListener,
<a href="../../../../com/google/android/exoplayer/audio/AudioCapabilities.html" title="class in com.google.android.exoplayer.audio">AudioCapabilities</a>&nbsp;audioCapabilities,
int&nbsp;streamType)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sources</code> - The upstream sources from which the renderer obtains samples.</dd>
<dd><code>mediaCodecSelector</code> - A decoder selector.</dd>
<dd><code>drmSessionManager</code> - For use with encrypted content. May be null if support for encrypted
content is not required.</dd>
<dd><code>playClearSamplesWithoutKeys</code> - Encrypted media may contain clear (un-encrypted) regions.
For example a media file may start with a short clear region so as to allow playback to
begin in parallel with key acquisition. This parameter specifies whether the renderer is
permitted to play clear regions of encrypted media files before <code>drmSessionManager</code>
has obtained the keys necessary to decrypt encrypted regions of the media.</dd>
<dd><code>eventHandler</code> - A handler to use when delivering events to <code>eventListener</code>. May be
null if delivery of events is not required.</dd>
<dd><code>eventListener</code> - A listener of events. May be null if delivery of events is not required.</dd>
<dd><code>audioCapabilities</code> - The audio capabilities for playback on this device. May be null if the
default capabilities (no encoded audio passthrough support) should be assumed.</dd>
<dd><code>streamType</code> - The type of audio stream for the <a href="../../../../com/google/android/exoplayer/audio/AudioTrack.html" title="class in com.google.android.exoplayer.audio"><code>AudioTrack</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="handlesTrack-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.MediaFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlesTrack</h4>
<pre>protected&nbsp;boolean&nbsp;handlesTrack(<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../../../../com/google/android/exoplayer/MediaFormat.html" title="class in com.google.android.exoplayer">MediaFormat</a>&nbsp;mediaFormat)
throws <a href="../../../../com/google/android/exoplayer/MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer">MediaCodecUtil.DecoderQueryException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#handlesTrack-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.MediaFormat-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Returns whether this renderer is capable of handling the provided track.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#handlesTrack-com.google.android.exoplayer.MediaCodecSelector-com.google.android.exoplayer.MediaFormat-">handlesTrack</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaCodecSelector</code> - The decoder selector.</dd>
<dd><code>mediaFormat</code> - The format of the track.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the renderer can handle the track, false otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer">MediaCodecUtil.DecoderQueryException</a></code> - Thrown if there was an error querying decoders.</dd>
</dl>
</li>
</ul>
<a name="getDecoderInfo-com.google.android.exoplayer.MediaCodecSelector-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDecoderInfo</h4>
<pre>protected&nbsp;<a href="../../../../com/google/android/exoplayer/DecoderInfo.html" title="class in com.google.android.exoplayer">DecoderInfo</a>&nbsp;getDecoderInfo(<a href="../../../../com/google/android/exoplayer/MediaCodecSelector.html" title="interface in com.google.android.exoplayer">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;mimeType,
boolean&nbsp;requiresSecureDecoder)
throws <a href="../../../../com/google/android/exoplayer/MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer">MediaCodecUtil.DecoderQueryException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#getDecoderInfo-com.google.android.exoplayer.MediaCodecSelector-java.lang.String-boolean-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Returns a <a href="../../../../com/google/android/exoplayer/DecoderInfo.html" title="class in com.google.android.exoplayer"><code>DecoderInfo</code></a> for a given format.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#getDecoderInfo-com.google.android.exoplayer.MediaCodecSelector-java.lang.String-boolean-">getDecoderInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaCodecSelector</code> - The decoder selector.</dd>
<dd><code>mimeType</code> - The mime type for which a decoder is required.</dd>
<dd><code>requiresSecureDecoder</code> - Whether a secure decoder is required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="../../../../com/google/android/exoplayer/DecoderInfo.html" title="class in com.google.android.exoplayer"><code>DecoderInfo</code></a> describing the decoder to instantiate, or null if no suitable
decoder exists.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer">MediaCodecUtil.DecoderQueryException</a></code> - Thrown if there was an error querying decoders.</dd>
</dl>
</li>
</ul>
<a name="allowPassthrough-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowPassthrough</h4>
<pre>protected&nbsp;boolean&nbsp;allowPassthrough(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;mimeType)</pre>
<div class="block">Returns whether encoded audio passthrough should be used for playing back the input format.
This implementation returns true if the <a href="../../../../com/google/android/exoplayer/audio/AudioTrack.html" title="class in com.google.android.exoplayer.audio"><code>AudioTrack</code></a>'s audio capabilities indicate that
passthrough is supported.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mimeType</code> - The type of input media.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if passthrough playback should be used. False otherwise.</dd>
</dl>
</li>
</ul>
<a name="configureCodec-android.media.MediaCodec-boolean-android.media.MediaFormat-android.media.MediaCrypto-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configureCodec</h4>
<pre>protected&nbsp;void&nbsp;configureCodec(<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
boolean&nbsp;codecIsAdaptive,
<a href="https://developer.android.com/reference/android/media/MediaFormat.html?is-external=true" title="class or interface in android.media">MediaFormat</a>&nbsp;format,
<a href="https://developer.android.com/reference/android/media/MediaCrypto.html?is-external=true" title="class or interface in android.media">MediaCrypto</a>&nbsp;crypto)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#configureCodec-android.media.MediaCodec-boolean-android.media.MediaFormat-android.media.MediaCrypto-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Configures a newly created <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#configureCodec-android.media.MediaCodec-boolean-android.media.MediaFormat-android.media.MediaCrypto-">configureCodec</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>codec</code> - The <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a> to configure.</dd>
<dd><code>codecIsAdaptive</code> - Whether the codec is adaptive.</dd>
<dd><code>format</code> - The format for which the codec is being configured.</dd>
<dd><code>crypto</code> - For drm protected playbacks, a <a href="https://developer.android.com/reference/android/media/MediaCrypto.html?is-external=true" title="class or interface in android.media"><code>MediaCrypto</code></a> to use for decryption.</dd>
</dl>
</li>
</ul>
<a name="getMediaClock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMediaClock</h4>
<pre>protected&nbsp;<a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer">MediaClock</a>&nbsp;getMediaClock()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#getMediaClock--">TrackRenderer</a></code></span></div>
<div class="block">If the renderer advances its own playback position then this method returns a corresponding
<a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><code>MediaClock</code></a>. If provided, the player will use the returned <a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><code>MediaClock</code></a> as its
source of time during playback. A player may have at most one renderer that returns a
<a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><code>MediaClock</code></a> from this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#getMediaClock--">getMediaClock</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer">TrackRenderer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><code>MediaClock</code></a> tracking the playback position of the renderer, or null.</dd>
</dl>
</li>
</ul>
<a name="onInputFormatChanged-com.google.android.exoplayer.MediaFormatHolder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onInputFormatChanged</h4>
<pre>protected&nbsp;void&nbsp;onInputFormatChanged(<a href="../../../../com/google/android/exoplayer/MediaFormatHolder.html" title="class in com.google.android.exoplayer">MediaFormatHolder</a>&nbsp;holder)
throws <a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onInputFormatChanged-com.google.android.exoplayer.MediaFormatHolder-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Invoked when a new format is read from the upstream <a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><code>SampleSource</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onInputFormatChanged-com.google.android.exoplayer.MediaFormatHolder-">onInputFormatChanged</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>holder</code> - Holds the new format.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></code> - If an error occurs reinitializing the <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a>.</dd>
</dl>
</li>
</ul>
<a name="onOutputFormatChanged-android.media.MediaCodec-android.media.MediaFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onOutputFormatChanged</h4>
<pre>protected&nbsp;void&nbsp;onOutputFormatChanged(<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
<a href="https://developer.android.com/reference/android/media/MediaFormat.html?is-external=true" title="class or interface in android.media">MediaFormat</a>&nbsp;outputFormat)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onOutputFormatChanged-android.media.MediaCodec-android.media.MediaFormat-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Invoked when the output format of the <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a> changes.
<p>
The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onOutputFormatChanged-android.media.MediaCodec-android.media.MediaFormat-">onOutputFormatChanged</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>codec</code> - The <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media"><code>MediaCodec</code></a> instance.</dd>
<dd><code>outputFormat</code> - The new output format.</dd>
</dl>
</li>
</ul>
<a name="onAudioSessionId-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onAudioSessionId</h4>
<pre>protected&nbsp;void&nbsp;onAudioSessionId(int&nbsp;audioSessionId)</pre>
<div class="block">Invoked when the audio session id becomes known. Once the id is known it will not change
(and hence this method will not be invoked again) unless the renderer is disabled and then
subsequently re-enabled.
<p>
The default implementation is a no-op. One reason for overriding this method would be to
instantiate and enable a <a href="https://developer.android.com/reference/android/media/audiofx/Virtualizer.html?is-external=true" title="class or interface in android.media.audiofx"><code>Virtualizer</code></a> in order to spatialize the audio channels. For
this use case, any <a href="https://developer.android.com/reference/android/media/audiofx/Virtualizer.html?is-external=true" title="class or interface in android.media.audiofx"><code>Virtualizer</code></a> instances should be released in <a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html#onDisabled--"><code>onDisabled()</code></a>
(if not before).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioSessionId</code> - The audio session id.</dd>
</dl>
</li>
</ul>
<a name="onStarted--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStarted</h4>
<pre>protected&nbsp;void&nbsp;onStarted()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#onStarted--">TrackRenderer</a></code></span></div>
<div class="block">Called when the renderer is started.
<p>
The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onStarted--">onStarted</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
</dl>
</li>
</ul>
<a name="onStopped--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStopped</h4>
<pre>protected&nbsp;void&nbsp;onStopped()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#onStopped--">TrackRenderer</a></code></span></div>
<div class="block">Called when the renderer is stopped.
<p>
The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onStopped--">onStopped</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
</dl>
</li>
</ul>
<a name="isEnded--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnded</h4>
<pre>protected&nbsp;boolean&nbsp;isEnded()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#isEnded--">TrackRenderer</a></code></span></div>
<div class="block">Whether the renderer is ready for the <a href="../../../../com/google/android/exoplayer/ExoPlayer.html" title="interface in com.google.android.exoplayer"><code>ExoPlayer</code></a> instance to transition to
<a href="../../../../com/google/android/exoplayer/ExoPlayer.html#STATE_ENDED"><code>ExoPlayer.STATE_ENDED</code></a>. The player will make this transition as soon as <code>true</code> is
returned by all of its <a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer"><code>TrackRenderer</code></a>s.
<p>
This method may be called when the renderer is in the following states:
<a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_ENABLED"><code>TrackRenderer.STATE_ENABLED</code></a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_STARTED"><code>TrackRenderer.STATE_STARTED</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#isEnded--">isEnded</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the renderer is ready for the player to transition to the ended state.</dd>
</dl>
</li>
</ul>
<a name="isReady--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReady</h4>
<pre>protected&nbsp;boolean&nbsp;isReady()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#isReady--">TrackRenderer</a></code></span></div>
<div class="block">Whether the renderer is able to immediately render media from the current position.
<p>
If the renderer is in the <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_STARTED"><code>TrackRenderer.STATE_STARTED</code></a> state then returning true indicates that the
renderer has everything that it needs to continue playback. Returning false indicates that
the player should pause until the renderer is ready.
<p>
If the renderer is in the <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_ENABLED"><code>TrackRenderer.STATE_ENABLED</code></a> state then returning true indicates that the
renderer is ready for playback to be started. Returning false indicates that it is not.
<p>
This method may be called when the renderer is in the following states:
<a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_ENABLED"><code>TrackRenderer.STATE_ENABLED</code></a>, <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#STATE_STARTED"><code>TrackRenderer.STATE_STARTED</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#isReady--">isReady</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the renderer is ready to render media. False otherwise.</dd>
</dl>
</li>
</ul>
<a name="getPositionUs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPositionUs</h4>
<pre>public&nbsp;long&nbsp;getPositionUs()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaClock.html#getPositionUs--">getPositionUs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer">MediaClock</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current media position in microseconds.</dd>
</dl>
</li>
</ul>
<a name="onDisabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDisabled</h4>
<pre>protected&nbsp;void&nbsp;onDisabled()
throws <a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#onDisabled--">TrackRenderer</a></code></span></div>
<div class="block">Called when the renderer is disabled.
<p>
The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onDisabled--">onDisabled</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></code> - If an error occurs.</dd>
</dl>
</li>
</ul>
<a name="onDiscontinuity-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onDiscontinuity</h4>
<pre>protected&nbsp;void&nbsp;onDiscontinuity(long&nbsp;positionUs)
throws <a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html#onDiscontinuity-long-">SampleSourceTrackRenderer</a></code></span></div>
<div class="block">Invoked when a discontinuity is encountered. Also invoked when the renderer is enabled, for
convenience.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onDiscontinuity-long-">onDiscontinuity</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionUs</code> - The playback position after the discontinuity, or the position at which
the renderer is being enabled.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></code> - If an error occurs handling the discontinuity.</dd>
</dl>
</li>
</ul>
<a name="processOutputBuffer-long-long-android.media.MediaCodec-java.nio.ByteBuffer-android.media.MediaCodec.BufferInfo-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processOutputBuffer</h4>
<pre>protected&nbsp;boolean&nbsp;processOutputBuffer(long&nbsp;positionUs,
long&nbsp;elapsedRealtimeUs,
<a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true" title="class or interface in android.media">MediaCodec</a>&nbsp;codec,
<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer,
<a href="https://developer.android.com/reference/android/media/MediaCodec.BufferInfo.html?is-external=true" title="class or interface in android.media">MediaCodec.BufferInfo</a>&nbsp;bufferInfo,
int&nbsp;bufferIndex,
boolean&nbsp;shouldSkip)
throws <a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#processOutputBuffer-long-long-android.media.MediaCodec-java.nio.ByteBuffer-android.media.MediaCodec.BufferInfo-int-boolean-">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Processes the provided output buffer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#processOutputBuffer-long-long-android.media.MediaCodec-java.nio.ByteBuffer-android.media.MediaCodec.BufferInfo-int-boolean-">processOutputBuffer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the output buffer was processed (e.g. rendered or discarded) and hence is no
longer required. False otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></code> - If an error occurs processing the output buffer.</dd>
</dl>
</li>
</ul>
<a name="onOutputStreamEnded--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onOutputStreamEnded</h4>
<pre>protected&nbsp;void&nbsp;onOutputStreamEnded()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onOutputStreamEnded--">MediaCodecTrackRenderer</a></code></span></div>
<div class="block">Invoked when the output stream ends, meaning that the last output buffer has been processed
and the <a href="https://developer.android.com/reference/android/media/MediaCodec.html?is-external=true#BUFFER_FLAG_END_OF_STREAM" title="class or interface in android.media"><code>MediaCodec.BUFFER_FLAG_END_OF_STREAM</code></a> flag has been propagated through the
decoder.
<p>
The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html#onOutputStreamEnded--">onOutputStreamEnded</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/MediaCodecTrackRenderer.html" title="class in com.google.android.exoplayer">MediaCodecTrackRenderer</a></code></dd>
</dl>
</li>
</ul>
<a name="handleAudioTrackDiscontinuity--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleAudioTrackDiscontinuity</h4>
<pre>protected&nbsp;void&nbsp;handleAudioTrackDiscontinuity()</pre>
</li>
</ul>
<a name="handleMessage-int-java.lang.Object-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>handleMessage</h4>
<pre>public&nbsp;void&nbsp;handleMessage(int&nbsp;messageType,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;message)
throws <a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../com/google/android/exoplayer/ExoPlayer.ExoPlayerComponent.html#handleMessage-int-java.lang.Object-">ExoPlayer.ExoPlayerComponent</a></code></span></div>
<div class="block">Handles a message delivered to the component. Invoked on the playback thread.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlayer.ExoPlayerComponent.html#handleMessage-int-java.lang.Object-">handleMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../com/google/android/exoplayer/ExoPlayer.ExoPlayerComponent.html" title="interface in com.google.android.exoplayer">ExoPlayer.ExoPlayerComponent</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html#handleMessage-int-java.lang.Object-">handleMessage</a></code>&nbsp;in class&nbsp;<code><a href="../../../../com/google/android/exoplayer/TrackRenderer.html" title="class in com.google.android.exoplayer">TrackRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>messageType</code> - An integer identifying the type of message.</dd>
<dd><code>message</code> - The message object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/google/android/exoplayer/ExoPlaybackException.html" title="class in com.google.android.exoplayer">ExoPlaybackException</a></code> - If an error occurred whilst handling the message.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/android/exoplayer/MediaClock.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer/MediaCodecAudioTrackRenderer.EventListener.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer/MediaCodecAudioTrackRenderer.html" target="_top">Frames</a></li>
<li><a href="MediaCodecAudioTrackRenderer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>