media/docs/doc/reference-v1/com/google/android/exoplayer/util/ManifestFetcher.html
2021-04-20 17:32:19 +01:00

607 lines
36 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:29 GMT 2016 -->
<title>ManifestFetcher (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="ManifestFetcher (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};
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/util/LongArray.html" title="class in com.google.android.exoplayer.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.EventListener.html" title="interface in com.google.android.exoplayer.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/android/exoplayer/util/ManifestFetcher.html" target="_top">Frames</a></li>
<li><a href="ManifestFetcher.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>Field&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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.android.exoplayer.util</div>
<h2 title="Class ManifestFetcher" class="title">Class ManifestFetcher&lt;T&gt;</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>com.google.android.exoplayer.util.ManifestFetcher&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of manifest.</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer.upstream">Loader.Callback</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ManifestFetcher&lt;T&gt;</span>
extends <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>
implements <a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer.upstream">Loader.Callback</a></pre>
<div class="block">Performs both single and repeated loads of media manifests.
<p>
Client code is responsible for ensuring that only one load is taking place at any one time.
Typical usage of this class is as follows:
<ol>
<li>Create an instance.</li>
<li>Obtain an initial manifest by calling <a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#singleLoad-android.os.Looper-com.google.android.exoplayer.util.ManifestFetcher.ManifestCallback-"><code>singleLoad(Looper, ManifestCallback)</code></a> and
waiting for the callback to be invoked.</li>
<li>For on-demand playbacks, the loader is no longer required. For live playbacks, the loader
may be required to periodically refresh the manifest. In this case it is injected into any
components that require it. These components will call <a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#requestRefresh--"><code>requestRefresh()</code></a> on the
loader whenever a refresh is required.</li>
</ol></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/util/ManifestFetcher.EventListener.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.EventListener</a></span></code>
<div class="block">Interface definition for a callback to be notified of <a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="class in com.google.android.exoplayer.util"><code>ManifestFetcher</code></a> events.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestCallback.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.ManifestCallback</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestCallback.html" title="type parameter in ManifestFetcher.ManifestCallback">T</a>&gt;</span></code>
<div class="block">Callback for the result of a single load.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestIOException.html" title="class in com.google.android.exoplayer.util">ManifestFetcher.ManifestIOException</a></span></code>
<div class="block">Thrown when an error occurs trying to fetch a manifest.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.RedirectingManifest.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.RedirectingManifest</a></span></code>
<div class="block">Interface for manifests that are able to specify that subsequent loads should use a different
URI.</div>
</td>
</tr>
</table>
</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/util/ManifestFetcher.html#ManifestFetcher-java.lang.String-com.google.android.exoplayer.upstream.UriDataSource-com.google.android.exoplayer.upstream.UriLoadable.Parser-">ManifestFetcher</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;manifestUri,
<a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream">UriDataSource</a>&nbsp;uriDataSource,
<a href="../../../../../com/google/android/exoplayer/upstream/UriLoadable.Parser.html" title="interface in com.google.android.exoplayer.upstream">UriLoadable.Parser</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;parser)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#ManifestFetcher-java.lang.String-com.google.android.exoplayer.upstream.UriDataSource-com.google.android.exoplayer.upstream.UriLoadable.Parser-android.os.Handler-com.google.android.exoplayer.util.ManifestFetcher.EventListener-">ManifestFetcher</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;manifestUri,
<a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream">UriDataSource</a>&nbsp;uriDataSource,
<a href="../../../../../com/google/android/exoplayer/upstream/UriLoadable.Parser.html" title="interface in com.google.android.exoplayer.upstream">UriLoadable.Parser</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;parser,
<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/util/ManifestFetcher.EventListener.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#disable--">disable</a></span>()</code>
<div class="block">Disables refresh functionality.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#enable--">enable</a></span>()</code>
<div class="block">Enables refresh functionality.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#getManifest--">getManifest</a></span>()</code>
<div class="block">Gets a <a href="https://developer.android.com/reference/android/util/Pair.html?is-external=true" title="class or interface in android.util"><code>Pair</code></a> containing the most recently loaded manifest together with the timestamp
at which the load completed.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#getManifestLoadCompleteTimestamp--">getManifestLoadCompleteTimestamp</a></span>()</code>
<div class="block">Gets the value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last load completed.</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/util/ManifestFetcher.html#getManifestLoadStartTimestamp--">getManifestLoadStartTimestamp</a></span>()</code>
<div class="block">Gets the value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last completed load started.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#maybeThrowError--">maybeThrowError</a></span>()</code>
<div class="block">Throws the error that affected the most recent attempt to load the manifest.</div>
</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/util/ManifestFetcher.html#onLoadCanceled-com.google.android.exoplayer.upstream.Loader.Loadable-">onLoadCanceled</a></span>(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable)</code>
<div class="block">Invoked when loading has been canceled.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#onLoadCompleted-com.google.android.exoplayer.upstream.Loader.Loadable-">onLoadCompleted</a></span>(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable)</code>
<div class="block">Invoked when the data source has been fully loaded.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#onLoadError-com.google.android.exoplayer.upstream.Loader.Loadable-java.io.IOException-">onLoadError</a></span>(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception)</code>
<div class="block">Invoked when the data source is stopped due to an error.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#requestRefresh--">requestRefresh</a></span>()</code>
<div class="block">Should be invoked repeatedly by callers who require an updated manifest.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#singleLoad-android.os.Looper-com.google.android.exoplayer.util.ManifestFetcher.ManifestCallback-">singleLoad</a></span>(<a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os">Looper</a>&nbsp;callbackLooper,
<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestCallback.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.ManifestCallback</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;callback)</code>
<div class="block">Performs a single manifest load.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html#updateManifestUri-java.lang.String-">updateManifestUri</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;manifestUri)</code>
<div class="block">Updates the manifest location.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ManifestFetcher-java.lang.String-com.google.android.exoplayer.upstream.UriDataSource-com.google.android.exoplayer.upstream.UriLoadable.Parser-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ManifestFetcher</h4>
<pre>public&nbsp;ManifestFetcher(<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;manifestUri,
<a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream">UriDataSource</a>&nbsp;uriDataSource,
<a href="../../../../../com/google/android/exoplayer/upstream/UriLoadable.Parser.html" title="interface in com.google.android.exoplayer.upstream">UriLoadable.Parser</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;parser)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>manifestUri</code> - The manifest location.</dd>
<dd><code>uriDataSource</code> - The <a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream"><code>UriDataSource</code></a> to use when loading the manifest.</dd>
<dd><code>parser</code> - A parser to parse the loaded manifest data.</dd>
</dl>
</li>
</ul>
<a name="ManifestFetcher-java.lang.String-com.google.android.exoplayer.upstream.UriDataSource-com.google.android.exoplayer.upstream.UriLoadable.Parser-android.os.Handler-com.google.android.exoplayer.util.ManifestFetcher.EventListener-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ManifestFetcher</h4>
<pre>public&nbsp;ManifestFetcher(<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;manifestUri,
<a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream">UriDataSource</a>&nbsp;uriDataSource,
<a href="../../../../../com/google/android/exoplayer/upstream/UriLoadable.Parser.html" title="interface in com.google.android.exoplayer.upstream">UriLoadable.Parser</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;parser,
<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/util/ManifestFetcher.EventListener.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.EventListener</a>&nbsp;eventListener)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>manifestUri</code> - The manifest location.</dd>
<dd><code>uriDataSource</code> - The <a href="../../../../../com/google/android/exoplayer/upstream/UriDataSource.html" title="interface in com.google.android.exoplayer.upstream"><code>UriDataSource</code></a> to use when loading the manifest.</dd>
<dd><code>parser</code> - A parser to parse the loaded manifest data.</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>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="updateManifestUri-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateManifestUri</h4>
<pre>public&nbsp;void&nbsp;updateManifestUri(<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;manifestUri)</pre>
<div class="block">Updates the manifest location.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>manifestUri</code> - The manifest location.</dd>
</dl>
</li>
</ul>
<a name="singleLoad-android.os.Looper-com.google.android.exoplayer.util.ManifestFetcher.ManifestCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>singleLoad</h4>
<pre>public&nbsp;void&nbsp;singleLoad(<a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os">Looper</a>&nbsp;callbackLooper,
<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestCallback.html" title="interface in com.google.android.exoplayer.util">ManifestFetcher.ManifestCallback</a>&lt;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&gt;&nbsp;callback)</pre>
<div class="block">Performs a single manifest load.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callbackLooper</code> - The looper associated with the thread on which the callback should be
invoked.</dd>
<dd><code>callback</code> - The callback to receive the result.</dd>
</dl>
</li>
</ul>
<a name="getManifest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getManifest</h4>
<pre>public&nbsp;<a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.html" title="type parameter in ManifestFetcher">T</a>&nbsp;getManifest()</pre>
<div class="block">Gets a <a href="https://developer.android.com/reference/android/util/Pair.html?is-external=true" title="class or interface in android.util"><code>Pair</code></a> containing the most recently loaded manifest together with the timestamp
at which the load completed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The most recently loaded manifest and the timestamp at which the load completed, or
null if no manifest has loaded.</dd>
</dl>
</li>
</ul>
<a name="getManifestLoadStartTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getManifestLoadStartTimestamp</h4>
<pre>public&nbsp;long&nbsp;getManifestLoadStartTimestamp()</pre>
<div class="block">Gets the value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last completed load started.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last completed load
started.</dd>
</dl>
</li>
</ul>
<a name="getManifestLoadCompleteTimestamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getManifestLoadCompleteTimestamp</h4>
<pre>public&nbsp;long&nbsp;getManifestLoadCompleteTimestamp()</pre>
<div class="block">Gets the value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last load completed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The value of <a href="../../../../../com/google/android/exoplayer/util/SystemClock.html#elapsedRealtime--"><code>SystemClock.elapsedRealtime()</code></a> when the last load completed.</dd>
</dl>
</li>
</ul>
<a name="maybeThrowError--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeThrowError</h4>
<pre>public&nbsp;void&nbsp;maybeThrowError()
throws <a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestIOException.html" title="class in com.google.android.exoplayer.util">ManifestFetcher.ManifestIOException</a></pre>
<div class="block">Throws the error that affected the most recent attempt to load the manifest. Does nothing if
the most recent attempt was successful.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.ManifestIOException.html" title="class in com.google.android.exoplayer.util">ManifestFetcher.ManifestIOException</a></code> - The error that affected the most recent attempt to load the
manifest.</dd>
</dl>
</li>
</ul>
<a name="enable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enable</h4>
<pre>public&nbsp;void&nbsp;enable()</pre>
<div class="block">Enables refresh functionality.</div>
</li>
</ul>
<a name="disable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disable</h4>
<pre>public&nbsp;void&nbsp;disable()</pre>
<div class="block">Disables refresh functionality.</div>
</li>
</ul>
<a name="requestRefresh--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestRefresh</h4>
<pre>public&nbsp;void&nbsp;requestRefresh()</pre>
<div class="block">Should be invoked repeatedly by callers who require an updated manifest.</div>
</li>
</ul>
<a name="onLoadCompleted-com.google.android.exoplayer.upstream.Loader.Loadable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onLoadCompleted</h4>
<pre>public&nbsp;void&nbsp;onLoadCompleted(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadCompleted-com.google.android.exoplayer.upstream.Loader.Loadable-">Loader.Callback</a></code></span></div>
<div class="block">Invoked when the data source has been fully loaded.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadCompleted-com.google.android.exoplayer.upstream.Loader.Loadable-">onLoadCompleted</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer.upstream">Loader.Callback</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loadable</code> - The loadable whose load has completed.</dd>
</dl>
</li>
</ul>
<a name="onLoadCanceled-com.google.android.exoplayer.upstream.Loader.Loadable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onLoadCanceled</h4>
<pre>public&nbsp;void&nbsp;onLoadCanceled(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadCanceled-com.google.android.exoplayer.upstream.Loader.Loadable-">Loader.Callback</a></code></span></div>
<div class="block">Invoked when loading has been canceled.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadCanceled-com.google.android.exoplayer.upstream.Loader.Loadable-">onLoadCanceled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer.upstream">Loader.Callback</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loadable</code> - The loadable whose load has been canceled.</dd>
</dl>
</li>
</ul>
<a name="onLoadError-com.google.android.exoplayer.upstream.Loader.Loadable-java.io.IOException-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onLoadError</h4>
<pre>public&nbsp;void&nbsp;onLoadError(<a href="../../../../../com/google/android/exoplayer/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer.upstream">Loader.Loadable</a>&nbsp;loadable,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;exception)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadError-com.google.android.exoplayer.upstream.Loader.Loadable-java.io.IOException-">Loader.Callback</a></code></span></div>
<div class="block">Invoked when the data source is stopped due to an error.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html#onLoadError-com.google.android.exoplayer.upstream.Loader.Loadable-java.io.IOException-">onLoadError</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../com/google/android/exoplayer/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer.upstream">Loader.Callback</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loadable</code> - The loadable whose load has failed.</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/util/LongArray.html" title="class in com.google.android.exoplayer.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../com/google/android/exoplayer/util/ManifestFetcher.EventListener.html" title="interface in com.google.android.exoplayer.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/android/exoplayer/util/ManifestFetcher.html" target="_top">Frames</a></li>
<li><a href="ManifestFetcher.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>Field&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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>