Merge branch 'dev-v2' into subrip_utf_16

This commit is contained in:
Lev 2022-11-26 02:44:17 +03:00 committed by GitHub
commit 184761f79e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
908 changed files with 59642 additions and 13909 deletions

View File

@ -18,6 +18,7 @@ body:
label: ExoPlayer Version
description: What version of ExoPlayer are you using?
options:
- 2.18.2
- 2.18.1
- 2.18.0
- 2.17.1

3
.gitignore vendored
View File

@ -76,3 +76,6 @@ extensions/cronet/jniLibs/*
!extensions/cronet/jniLibs/README.md
extensions/cronet/libs/*
!extensions/cronet/libs/README.md
# MIDI extension
extensions/midi/lib

View File

@ -15,7 +15,7 @@ all of the information requested in the issue template.
## Pull requests ##
We will also consider high quality pull requests. These should normally merge
We will also consider high quality pull requests. These should merge
into the `dev-v2` branch. Before a pull request can be accepted you must submit
a Contributor License Agreement, as described below.

View File

@ -1,5 +1,113 @@
# Release notes
### 2.18.2 (2022-11-22)
This release corresponds to the
[AndroidX Media3 1.0.0-beta03 release](https://github.com/androidx/media/releases/tag/1.0.0-beta03).
* Core library:
* Add `ExoPlayer.isTunnelingEnabled` to check if tunneling is enabled for
the currently selected tracks
([#2518](https://github.com/google/ExoPlayer/issues/2518)).
* Add `WrappingMediaSource` to simplify wrapping a single `MediaSource`
([#7279](https://github.com/google/ExoPlayer/issues/7279)).
* Discard back buffer before playback gets stuck due to insufficient
available memory.
* Close the Tracing "doSomeWork" block when offload is enabled.
* Fix session tracking problem with fast seeks in `PlaybackStatsListener`
([#180](https://github.com/androidx/media/issues/180)).
* Send missing `onMediaItemTransition` callback when calling `seekToNext`
or `seekToPrevious` in a single-item playlist
([#10667](https://github.com/google/ExoPlayer/issues/10667)).
* Add `Player.getSurfaceSize` that returns the size of the surface on
which the video is rendered.
* Fix bug where removing listeners during the player release can cause an
`IllegalStateException`
([#10758](https://github.com/google/ExoPlayer/issues/10758)).
* Build:
* Enforce minimum `compileSdkVersion` to avoid compilation errors
([#10684](https://github.com/google/ExoPlayer/issues/10684)).
* Track selection:
* Prefer other tracks to Dolby Vision if display does not support it.
([#8944](https://github.com/google/ExoPlayer/issues/8944)).
* Downloads:
* Fix potential infinite loop in `ProgressiveDownloader` caused by
simultaneous download and playback with the same `PriorityTaskManager`
([#10570](https://github.com/google/ExoPlayer/pull/10570)).
* Make download notification appear immediately
([#183](https://github.com/androidx/media/pull/183)).
* Limit parallel download removals to 1 to avoid excessive thread creation
([#10458](https://github.com/google/ExoPlayer/issues/10458)).
* Video:
* Try alternative decoder for Dolby Vision if display does not support it.
([#9794](https://github.com/google/ExoPlayer/issues/9794)).
* Audio:
* Use `SingleThreadExecutor` for releasing `AudioTrack` instances to avoid
OutOfMemory errors when releasing multiple players at the same time
([#10057](https://github.com/google/ExoPlayer/issues/10057)).
* Adds `AudioOffloadListener.onExperimentalOffloadedPlayback` for the
AudioTrack offload state.
([#134](https://github.com/androidx/media/issues/134)).
* Make `AudioTrackBufferSizeProvider` a public interface.
* Add `ExoPlayer.setPreferredAudioDevice` to set the preferred audio
output device ([#135](https://github.com/androidx/media/issues/135)).
* Map 8-channel and 12-channel audio to the 7.1 and 7.1.4 channel masks
respectively on all Android versions
([#10701](https://github.com/google/ExoPlayer/issues/10701)).
* Metadata:
* `MetadataRenderer` can now be configured to render metadata as soon as
they are available. Create an instance with
`MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory,
boolean)` to specify whether the renderer will output metadata early or
in sync with the player position.
* DRM:
* Work around a bug in the Android 13 ClearKey implementation that returns
a non-empty but invalid license URL.
* Fix `setMediaDrmSession failed: session not opened` error when switching
between DRM schemes in a playlist (e.g. Widevine to ClearKey).
* Text:
* CEA-608: Ensure service switch commands on field 2 are handled correctly
([#10666](https://github.com/google/ExoPlayer/issues/10666)).
* DASH:
* Parse `EventStream.presentationTimeOffset` from manifests
([#10460](https://github.com/google/ExoPlayer/issues/10460)).
* UI:
* Use current overrides of the player as preset in
`TrackSelectionDialogBuilder`
([#10429](https://github.com/google/ExoPlayer/issues/10429)).
* RTSP:
* Add H263 fragmented packet handling
([#119](https://github.com/androidx/media/pull/119)).
* Add support for MP4A-LATM
([#162](https://github.com/androidx/media/pull/162)).
* IMA:
* Add timeout for loading ad information to handle cases where the IMA SDK
gets stuck loading an ad
([#10510](https://github.com/google/ExoPlayer/issues/10510)).
* Prevent skipping mid-roll ads when seeking to the end of the content
([#10685](https://github.com/google/ExoPlayer/issues/10685)).
* Correctly calculate window duration for live streams with server-side
inserted ads, for example IMA DAI
([#10764](https://github.com/google/ExoPlayer/issues/10764)).
* FFmpeg extension:
* Add newly required flags to link FFmpeg libraries with NDK 23.1.7779620
and above ([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* AV1 extension:
* Update CMake version to avoid incompatibilities with the latest Android
Studio releases
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* Cast extension:
* Implement `getDeviceInfo()` to be able to identify `CastPlayer` when
controlling playback with a `MediaController`
([#142](https://github.com/androidx/media/issues/142)).
* Transformer:
* Add muxer watchdog timer to detect when generating an output sample is
too slow.
* Remove deprecated symbols:
* Remove `Transformer.Builder.setOutputMimeType(String)`. This feature has
been removed. The MIME type will always be MP4 when the default muxer is
used.
### 2.18.1 (2022-07-21)
This release corresponds to the

View File

@ -22,6 +22,9 @@ android {
targetSdkVersion project.ext.targetSdkVersion
consumerProguardFiles 'proguard-rules.txt'
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
aarMetadata {
minCompileSdk = project.ext.compileSdkVersion
}
}
compileOptions {

View File

@ -13,15 +13,18 @@
// limitations under the License.
project.ext {
// ExoPlayer version and version code.
releaseVersion = '2.18.1'
releaseVersionCode = 2_018_001
releaseVersion = '2.18.2'
releaseVersionCode = 2_018_002
minSdkVersion = 16
appTargetSdkVersion = 29
appTargetSdkVersion = 33
// API version before restricting local file access.
// https://developer.android.com/training/data-storage/app-specific
mainDemoAppTargetSdkVersion = 29
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
// additional robolectric config.
targetSdkVersion = 30
compileSdkVersion = 32
dexmakerVersion = '2.28.1'
compileSdkVersion = 33
dexmakerVersion = '2.28.3'
junitVersion = '4.13.2'
// Use the same Guava version as the Android repo:
// https://cs.android.com/android/platform/superproject/+/master:external/guava/METADATA
@ -40,7 +43,7 @@ project.ext {
androidxConstraintLayoutVersion = '2.0.4'
androidxCoreVersion = '1.7.0'
androidxFuturesVersion = '1.1.0'
androidxMediaVersion = '1.4.3'
androidxMediaVersion = '1.6.0'
androidxMedia2Version = '1.2.0'
androidxMultidexVersion = '2.0.1'
androidxRecyclerViewVersion = '1.2.1'

View File

@ -82,6 +82,9 @@ project(modulePrefix + 'library-extractor').projectDir = new File(rootDir, 'libr
include modulePrefix + 'extension-cast'
project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast')
include modulePrefix + 'library-effect'
project(modulePrefix + 'library-effect').projectDir = new File(rootDir, 'library/effect')
include modulePrefix + 'library-transformer'
project(modulePrefix + 'library-transformer').projectDir = new File(rootDir, 'library/transformer')

View File

@ -22,8 +22,13 @@
<uses-sdk/>
<application android:label="@string/application_name" android:icon="@mipmap/ic_launcher"
android:largeHeap="true" android:allowBackup="false">
<application
android:name="androidx.multidex.MultiDexApplication"
android:label="@string/application_name"
android:icon="@mipmap/ic_launcher"
android:largeHeap="true"
android:allowBackup="false"
android:taskAffinity="">
<meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="com.google.android.exoplayer2.ext.cast.DefaultCastOptionsProvider"/>

View File

@ -52,6 +52,7 @@ dependencies {
implementation project(modulePrefix + 'library-smoothstreaming')
implementation project(modulePrefix + 'library-ui')
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
}

View File

@ -22,6 +22,7 @@
<uses-sdk/>
<application
android:name="androidx.multidex.MultiDexApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name">

View File

@ -29,6 +29,7 @@ import android.opengl.GLUtils;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.GlProgram;
import com.google.android.exoplayer2.util.GlUtil;
import com.google.android.exoplayer2.util.Log;
import java.io.IOException;
import java.util.Locale;
import javax.microedition.khronos.opengles.GL10;
@ -41,6 +42,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/* package */ final class BitmapOverlayVideoProcessor
implements VideoProcessingGLSurfaceView.VideoProcessor {
private static final String TAG = "BitmapOverlayVP";
private static final int OVERLAY_WIDTH = 512;
private static final int OVERLAY_HEIGHT = 256;
@ -85,6 +87,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/* fragmentShaderFilePath= */ "bitmap_overlay_video_processor_fragment.glsl");
} catch (IOException e) {
throw new IllegalStateException(e);
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to initialize the shader program", e);
return;
}
program.setBufferAttribute(
"aFramePosition",
@ -119,7 +124,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
GLUtils.texSubImage2D(
GL10.GL_TEXTURE_2D, /* level= */ 0, /* xoffset= */ 0, /* yoffset= */ 0, overlayBitmap);
GlUtil.checkGlError();
try {
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to populate the texture", e);
}
// Run the shader program.
GlProgram program = checkNotNull(this.program);
@ -128,16 +137,28 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
program.setFloatUniform("uScaleX", bitmapScaleX);
program.setFloatUniform("uScaleY", bitmapScaleY);
program.setFloatsUniform("uTexTransform", transformMatrix);
program.bindAttributesAndUniforms();
try {
program.bindAttributesAndUniforms();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to update the shader program", e);
}
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
GlUtil.checkGlError();
try {
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to draw a frame", e);
}
}
@Override
public void release() {
if (program != null) {
program.delete();
try {
program.delete();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to delete the shader program", e);
}
}
}
}

View File

@ -15,6 +15,8 @@
*/
package com.google.android.exoplayer2.gldemo;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@ -83,7 +85,8 @@ public final class MainActivity extends Activity {
VideoProcessingGLSurfaceView videoProcessingGLSurfaceView =
new VideoProcessingGLSurfaceView(
context, requestSecureSurface, new BitmapOverlayVideoProcessor(context));
FrameLayout contentFrame = findViewById(R.id.exo_content_frame);
checkNotNull(playerView);
FrameLayout contentFrame = playerView.findViewById(R.id.exo_content_frame);
contentFrame.addView(videoProcessingGLSurfaceView);
this.videoProcessingGLSurfaceView = videoProcessingGLSurfaceView;
}

View File

@ -29,6 +29,7 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.GlUtil;
import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.TimedValueQueue;
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
import java.util.concurrent.atomic.AtomicBoolean;
@ -70,6 +71,7 @@ public final class VideoProcessingGLSurfaceView extends GLSurfaceView {
}
private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0;
private static final String TAG = "VPGlSurfaceView";
private final VideoRenderer renderer;
private final Handler mainHandler;
@ -239,7 +241,11 @@ public final class VideoProcessingGLSurfaceView extends GLSurfaceView {
@Override
public synchronized void onSurfaceCreated(GL10 gl, EGLConfig config) {
texture = GlUtil.createExternalTexture();
try {
texture = GlUtil.createExternalTexture();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to create an external texture", e);
}
surfaceTexture = new SurfaceTexture(texture);
surfaceTexture.setOnFrameAvailableListener(
surfaceTexture -> {

View File

@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
apply from: '../../constants.gradle'
apply plugin: 'com.android.application'
@ -26,7 +27,9 @@ android {
versionName project.ext.releaseVersion
versionCode project.ext.releaseVersionCode
minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.appTargetSdkVersion
// Not using appTargetSDKVersion to allow local file access on API 29
// and higher [Internal ref: b/191644662]
targetSdkVersion project.ext.mainDemoAppTargetSdkVersion
multiDexEnabled true
}

View File

@ -399,7 +399,7 @@
"uri": "ssai://dai.google.com/?contentSourceId=2528370&videoId=tears-of-steel&format=2&adsId=1"
},
{
"name": "HLS Live: Big Buck Bunny (mid), 3 ads each [10 s]",
"name": "HLS Live: Big Buck Bunny (mid), 3 ads [10/10/10s]",
"uri": "ssai://dai.google.com/?assetKey=sN_IYUG8STe1ZzhIIE_ksA&format=2&adsId=3"
},
{

View File

@ -20,6 +20,7 @@ android {
compileSdkVersion project.ext.compileSdkVersion
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@ -76,11 +77,14 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:' + androidxConstraintLayoutVersion
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
implementation 'com.google.android.material:material:' + androidxMaterialVersion
implementation project(modulePrefix + 'library-effect')
implementation project(modulePrefix + 'library-core')
implementation project(modulePrefix + 'library-dash')
implementation project(modulePrefix + 'library-transformer')
implementation project(modulePrefix + 'library-ui')
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
// For MediaPipe and its dependencies:
withMediaPipeImplementation fileTree(dir: 'libs', include: ['*.aar'])
withMediaPipeImplementation 'com.google.flogger:flogger:latest.release'

View File

@ -29,6 +29,7 @@
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat"
android:taskAffinity=""
android:requestLegacyExternalStorage="true"
tools:targetApi="29">
<activity android:name=".ConfigurationActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"

View File

@ -15,6 +15,7 @@
*/
package com.google.android.exoplayer2.transformerdemo;
import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import android.content.Context;
@ -27,15 +28,14 @@ import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.opengl.GLES20;
import android.opengl.GLUtils;
import android.util.Size;
import android.util.Pair;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.transformer.FrameProcessingException;
import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor;
import com.google.android.exoplayer2.effect.SingleFrameGlTextureProcessor;
import com.google.android.exoplayer2.util.FrameProcessingException;
import com.google.android.exoplayer2.util.GlProgram;
import com.google.android.exoplayer2.util.GlUtil;
import java.io.IOException;
import java.util.Locale;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/**
* A {@link SingleFrameGlTextureProcessor} that overlays a bitmap with a logo and timer on each
@ -45,10 +45,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
*/
// TODO(b/227625365): Delete this class and use a texture processor from the Transformer library,
// once overlaying a bitmap and text is supported in Transformer.
/* package */ final class BitmapOverlayProcessor implements SingleFrameGlTextureProcessor {
static {
GlUtil.glAssertionsEnabled = true;
}
/* package */ final class BitmapOverlayProcessor extends SingleFrameGlTextureProcessor {
private static final String VERTEX_SHADER_PATH = "vertex_shader_copy_es2.glsl";
private static final String FRAGMENT_SHADER_PATH = "fragment_shader_bitmap_overlay_es2.glsl";
@ -57,16 +54,25 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private final Paint paint;
private final Bitmap overlayBitmap;
private final Bitmap logoBitmap;
private final Canvas overlayCanvas;
private final GlProgram glProgram;
private float bitmapScaleX;
private float bitmapScaleY;
private int bitmapTexId;
private @MonotonicNonNull Size outputSize;
private @MonotonicNonNull Bitmap logoBitmap;
private @MonotonicNonNull GlProgram glProgram;
public BitmapOverlayProcessor() {
/**
* Creates a new instance.
*
* @param context The {@link Context}.
* @param useHdr Whether input textures come from an HDR source. If {@code true}, colors will be
* in linear RGB BT.2020. If {@code false}, colors will be in linear RGB BT.709.
* @throws FrameProcessingException If a problem occurs while reading shader files.
*/
public BitmapOverlayProcessor(Context context, boolean useHdr) throws FrameProcessingException {
super(useHdr);
checkArgument(!useHdr, "BitmapOverlayProcessor does not support HDR colors.");
paint = new Paint();
paint.setTextSize(64);
paint.setAntiAlias(true);
@ -75,19 +81,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
overlayBitmap =
Bitmap.createBitmap(BITMAP_WIDTH_HEIGHT, BITMAP_WIDTH_HEIGHT, Bitmap.Config.ARGB_8888);
overlayCanvas = new Canvas(overlayBitmap);
}
@Override
public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight)
throws IOException {
if (inputWidth > inputHeight) {
bitmapScaleX = inputWidth / (float) inputHeight;
bitmapScaleY = 1f;
} else {
bitmapScaleX = 1f;
bitmapScaleY = inputHeight / (float) inputWidth;
}
outputSize = new Size(inputWidth, inputHeight);
try {
logoBitmap =
@ -97,30 +90,46 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
} catch (PackageManager.NameNotFoundException e) {
throw new IllegalStateException(e);
}
bitmapTexId = GlUtil.createTexture(BITMAP_WIDTH_HEIGHT, BITMAP_WIDTH_HEIGHT);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, /* level= */ 0, overlayBitmap, /* border= */ 0);
try {
bitmapTexId =
GlUtil.createTexture(
BITMAP_WIDTH_HEIGHT,
BITMAP_WIDTH_HEIGHT,
/* useHighPrecisionColorComponents= */ false);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, /* level= */ 0, overlayBitmap, /* border= */ 0);
glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH);
glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH);
} catch (GlUtil.GlException | IOException e) {
throw new FrameProcessingException(e);
}
// Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y.
glProgram.setBufferAttribute(
"aFramePosition",
GlUtil.getNormalizedCoordinateBounds(),
GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE);
glProgram.setSamplerTexIdUniform("uTexSampler0", inputTexId, /* texUnitIndex= */ 0);
glProgram.setSamplerTexIdUniform("uTexSampler1", bitmapTexId, /* texUnitIndex= */ 1);
}
@Override
public Pair<Integer, Integer> configure(int inputWidth, int inputHeight) {
if (inputWidth > inputHeight) {
bitmapScaleX = inputWidth / (float) inputHeight;
bitmapScaleY = 1f;
} else {
bitmapScaleX = 1f;
bitmapScaleY = inputHeight / (float) inputWidth;
}
glProgram.setFloatUniform("uScaleX", bitmapScaleX);
glProgram.setFloatUniform("uScaleY", bitmapScaleY);
return Pair.create(inputWidth, inputHeight);
}
@Override
public Size getOutputSize() {
return checkStateNotNull(outputSize);
}
@Override
public void drawFrame(long presentationTimeUs) throws FrameProcessingException {
public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProcessingException {
try {
checkStateNotNull(glProgram).use();
glProgram.use();
// Draw to the canvas and store it in a texture.
String text =
@ -137,19 +146,23 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
flipBitmapVertically(overlayBitmap));
GlUtil.checkGlError();
glProgram.setSamplerTexIdUniform("uTexSampler0", inputTexId, /* texUnitIndex= */ 0);
glProgram.bindAttributesAndUniforms();
// The four-vertex triangle strip forms a quad.
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
throw new FrameProcessingException(e);
throw new FrameProcessingException(e, presentationTimeUs);
}
}
@Override
public void release() {
if (glProgram != null) {
public void release() throws FrameProcessingException {
super.release();
try {
glProgram.delete();
} catch (GlUtil.GlException e) {
throw new FrameProcessingException(e);
}
}

View File

@ -18,9 +18,11 @@ package com.google.android.exoplayer2.transformerdemo;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.Assertions.checkState;
import android.Manifest;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
@ -29,14 +31,21 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.transformer.TransformationRequest;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util;
import com.google.android.material.slider.RangeSlider;
import com.google.android.material.slider.Slider;
import com.google.common.collect.ImmutableMap;
import java.util.Arrays;
import java.util.List;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@ -59,14 +68,26 @@ public final class ConfigurationActivity extends AppCompatActivity {
public static final String TRIM_START_MS = "trim_start_ms";
public static final String TRIM_END_MS = "trim_end_ms";
public static final String ENABLE_FALLBACK = "enable_fallback";
public static final String ENABLE_REQUEST_SDR_TONE_MAPPING = "enable_request_sdr_tone_mapping";
public static final String ENABLE_HDR_EDITING = "enable_hdr_editing";
public static final String ENABLE_DEBUG_PREVIEW = "enable_debug_preview";
public static final String HDR_MODE = "hdr_mode";
public static final String DEMO_EFFECTS_SELECTIONS = "demo_effects_selections";
public static final String PERIODIC_VIGNETTE_CENTER_X = "periodic_vignette_center_x";
public static final String PERIODIC_VIGNETTE_CENTER_Y = "periodic_vignette_center_y";
public static final String PERIODIC_VIGNETTE_INNER_RADIUS = "periodic_vignette_inner_radius";
public static final String PERIODIC_VIGNETTE_OUTER_RADIUS = "periodic_vignette_outer_radius";
private static final String[] INPUT_URIS = {
public static final String COLOR_FILTER_SELECTION = "color_filter_selection";
public static final String CONTRAST_VALUE = "contrast_value";
public static final String RGB_ADJUSTMENT_RED_SCALE = "rgb_adjustment_red_scale";
public static final String RGB_ADJUSTMENT_GREEN_SCALE = "rgb_adjustment_green_scale";
public static final String RGB_ADJUSTMENT_BLUE_SCALE = "rgb_adjustment_blue_scale";
public static final String HSL_ADJUSTMENTS_HUE = "hsl_adjustments_hue";
public static final String HSL_ADJUSTMENTS_SATURATION = "hsl_adjustments_saturation";
public static final String HSL_ADJUSTMENTS_LIGHTNESS = "hsl_adjustments_lightness";
public static final int COLOR_FILTER_GRAYSCALE = 0;
public static final int COLOR_FILTER_INVERTED = 1;
public static final int COLOR_FILTER_SEPIA = 2;
public static final int FILE_PERMISSION_REQUEST_CODE = 1;
private static final String[] PRESET_FILE_URIS = {
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/android-screens-10s.mp4",
"https://storage.googleapis.com/exoplayer-test-media-0/android-block-1080-hevc.mp4",
"https://html5demos.com/assets/dizzy.mp4",
@ -79,9 +100,10 @@ public final class ConfigurationActivity extends AppCompatActivity {
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/portrait_rotated_avc_aac.mp4",
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/slow-motion/slowMotion_stopwatch_240fps_long.mp4",
"https://storage.googleapis.com/exoplayer-test-media-1/gen/screens/dash-vod-single-segment/manifest-baseline.mpd",
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/samsung-hdr-hdr10.mp4",
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/samsung-s21-hdr-hdr10.mp4",
"https://storage.googleapis.com/exoplayer-test-media-1/mp4/Pixel7Pro_HLG_1080P.mp4",
};
private static final String[] URI_DESCRIPTIONS = { // same order as INPUT_URIS
private static final String[] PRESET_FILE_URI_DESCRIPTIONS = { // same order as PRESET_FILE_URIS
"720p H264 video and AAC audio",
"1080p H265 video and AAC audio",
"360p H264 video and AAC audio",
@ -94,21 +116,42 @@ public final class ConfigurationActivity extends AppCompatActivity {
"H264 video and AAC audio (portrait, H < W, 90\u00B0)",
"SEF slow motion with 240 fps",
"480p DASH (non-square pixels)",
"HDR (HDR10) H265 video (encoding may fail)",
"HDR (HDR10) H265 limited range video (encoding may fail)",
"HDR (HLG) H265 limited range video (encoding may fail)",
};
private static final String[] DEMO_EFFECTS = {
"Dizzy crop",
"Edge detector (Media Pipe)",
"Color filters",
"Map White to Green Color Lookup Table",
"RGB Adjustments",
"HSL Adjustments",
"Contrast",
"Periodic vignette",
"3D spin",
"Overlay logo & timer",
"Zoom in start",
};
private static final int PERIODIC_VIGNETTE_INDEX = 2;
private static final ImmutableMap<String, @TransformationRequest.HdrMode Integer>
HDR_MODE_DESCRIPTIONS =
new ImmutableMap.Builder<String, @TransformationRequest.HdrMode Integer>()
.put("Keep HDR", TransformationRequest.HDR_MODE_KEEP_HDR)
.put("Tone-map HDR to SDR", TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR)
.put(
"Force Interpret HDR as SDR",
TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR)
.build();
private static final String SAME_AS_INPUT_OPTION = "same as input";
private static final int COLOR_FILTERS_INDEX = 2;
private static final int RGB_ADJUSTMENTS_INDEX = 4;
private static final int HSL_ADJUSTMENT_INDEX = 5;
private static final int CONTRAST_INDEX = 6;
private static final int PERIODIC_VIGNETTE_INDEX = 7;
private static final float HALF_DIAGONAL = 1f / (float) Math.sqrt(2);
private @MonotonicNonNull Button selectFileButton;
private @MonotonicNonNull ActivityResultLauncher<Intent> localFilePickerLauncher;
private @MonotonicNonNull Button selectPresetFileButton;
private @MonotonicNonNull Button selectLocalFileButton;
private @MonotonicNonNull TextView selectedFileTextView;
private @MonotonicNonNull CheckBox removeAudioCheckbox;
private @MonotonicNonNull CheckBox removeVideoCheckbox;
@ -120,13 +163,22 @@ public final class ConfigurationActivity extends AppCompatActivity {
private @MonotonicNonNull Spinner rotateSpinner;
private @MonotonicNonNull CheckBox trimCheckBox;
private @MonotonicNonNull CheckBox enableFallbackCheckBox;
private @MonotonicNonNull CheckBox enableRequestSdrToneMappingCheckBox;
private @MonotonicNonNull CheckBox enableHdrEditingCheckBox;
private @MonotonicNonNull CheckBox enableDebugPreviewCheckBox;
private @MonotonicNonNull Spinner hdrModeSpinner;
private @MonotonicNonNull Button selectDemoEffectsButton;
private boolean @MonotonicNonNull [] demoEffectsSelections;
private @Nullable Uri localFileUri;
private int inputUriPosition;
private long trimStartMs;
private long trimEndMs;
private int colorFilterSelection;
private float rgbAdjustmentRedScale;
private float rgbAdjustmentGreenScale;
private float rgbAdjustmentBlueScale;
private float contrastValue;
private float hueAdjustment;
private float saturationAdjustment;
private float lightnessAdjustment;
private float periodicVignetteCenterX;
private float periodicVignetteCenterY;
private float periodicVignetteInnerRadius;
@ -139,11 +191,10 @@ public final class ConfigurationActivity extends AppCompatActivity {
findViewById(R.id.transform_button).setOnClickListener(this::startTransformation);
selectFileButton = findViewById(R.id.select_file_button);
selectFileButton.setOnClickListener(this::selectFile);
flattenForSlowMotionCheckbox = findViewById(R.id.flatten_for_slow_motion_checkbox);
selectedFileTextView = findViewById(R.id.selected_file_text_view);
selectedFileTextView.setText(URI_DESCRIPTIONS[inputUriPosition]);
selectedFileTextView.setText(PRESET_FILE_URI_DESCRIPTIONS[inputUriPosition]);
removeAudioCheckbox = findViewById(R.id.remove_audio_checkbox);
removeAudioCheckbox.setOnClickListener(this::onRemoveAudio);
@ -151,7 +202,11 @@ public final class ConfigurationActivity extends AppCompatActivity {
removeVideoCheckbox = findViewById(R.id.remove_video_checkbox);
removeVideoCheckbox.setOnClickListener(this::onRemoveVideo);
flattenForSlowMotionCheckbox = findViewById(R.id.flatten_for_slow_motion_checkbox);
selectPresetFileButton = findViewById(R.id.select_preset_file_button);
selectPresetFileButton.setOnClickListener(this::selectPresetFile);
selectLocalFileButton = findViewById(R.id.select_local_file_button);
selectLocalFileButton.setOnClickListener(this::selectLocalFile);
ArrayAdapter<String> audioMimeAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
@ -200,14 +255,39 @@ public final class ConfigurationActivity extends AppCompatActivity {
trimEndMs = C.TIME_UNSET;
enableFallbackCheckBox = findViewById(R.id.enable_fallback_checkbox);
enableRequestSdrToneMappingCheckBox = findViewById(R.id.request_sdr_tone_mapping_checkbox);
enableRequestSdrToneMappingCheckBox.setEnabled(isRequestSdrToneMappingSupported());
findViewById(R.id.request_sdr_tone_mapping).setEnabled(isRequestSdrToneMappingSupported());
enableHdrEditingCheckBox = findViewById(R.id.hdr_editing_checkbox);
enableDebugPreviewCheckBox = findViewById(R.id.enable_debug_preview_checkbox);
ArrayAdapter<String> hdrModeAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
hdrModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
hdrModeSpinner = findViewById(R.id.hdr_mode_spinner);
hdrModeSpinner.setAdapter(hdrModeAdapter);
hdrModeAdapter.addAll(HDR_MODE_DESCRIPTIONS.keySet());
demoEffectsSelections = new boolean[DEMO_EFFECTS.length];
selectDemoEffectsButton = findViewById(R.id.select_demo_effects_button);
selectDemoEffectsButton.setOnClickListener(this::selectDemoEffects);
localFilePickerLauncher =
registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
this::localFilePickerLauncherResult);
}
@Override
public void onRequestPermissionsResult(
int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == FILE_PERMISSION_REQUEST_CODE
&& grantResults.length == 1
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
launchLocalFilePicker();
} else {
Toast.makeText(
getApplicationContext(), getString(R.string.permission_denied), Toast.LENGTH_LONG)
.show();
}
}
@Override
@ -215,7 +295,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
super.onResume();
@Nullable Uri intentUri = getIntent().getData();
if (intentUri != null) {
checkNotNull(selectFileButton).setEnabled(false);
checkNotNull(selectPresetFileButton).setEnabled(false);
checkNotNull(selectLocalFileButton).setEnabled(false);
checkNotNull(selectedFileTextView).setText(intentUri.toString());
}
}
@ -237,8 +318,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
"rotateSpinner",
"trimCheckBox",
"enableFallbackCheckBox",
"enableRequestSdrToneMappingCheckBox",
"enableHdrEditingCheckBox",
"enableDebugPreviewCheckBox",
"hdrModeSpinner",
"demoEffectsSelections"
})
private void startTransformation(View view) {
@ -275,32 +356,82 @@ public final class ConfigurationActivity extends AppCompatActivity {
bundle.putLong(TRIM_END_MS, trimEndMs);
}
bundle.putBoolean(ENABLE_FALLBACK, enableFallbackCheckBox.isChecked());
bundle.putBoolean(
ENABLE_REQUEST_SDR_TONE_MAPPING, enableRequestSdrToneMappingCheckBox.isChecked());
bundle.putBoolean(ENABLE_HDR_EDITING, enableHdrEditingCheckBox.isChecked());
bundle.putBoolean(ENABLE_DEBUG_PREVIEW, enableDebugPreviewCheckBox.isChecked());
String selectedhdrMode = String.valueOf(hdrModeSpinner.getSelectedItem());
bundle.putInt(HDR_MODE, checkNotNull(HDR_MODE_DESCRIPTIONS.get(selectedhdrMode)));
bundle.putBooleanArray(DEMO_EFFECTS_SELECTIONS, demoEffectsSelections);
bundle.putInt(COLOR_FILTER_SELECTION, colorFilterSelection);
bundle.putFloat(CONTRAST_VALUE, contrastValue);
bundle.putFloat(RGB_ADJUSTMENT_RED_SCALE, rgbAdjustmentRedScale);
bundle.putFloat(RGB_ADJUSTMENT_GREEN_SCALE, rgbAdjustmentGreenScale);
bundle.putFloat(RGB_ADJUSTMENT_BLUE_SCALE, rgbAdjustmentBlueScale);
bundle.putFloat(HSL_ADJUSTMENTS_HUE, hueAdjustment);
bundle.putFloat(HSL_ADJUSTMENTS_SATURATION, saturationAdjustment);
bundle.putFloat(HSL_ADJUSTMENTS_LIGHTNESS, lightnessAdjustment);
bundle.putFloat(PERIODIC_VIGNETTE_CENTER_X, periodicVignetteCenterX);
bundle.putFloat(PERIODIC_VIGNETTE_CENTER_Y, periodicVignetteCenterY);
bundle.putFloat(PERIODIC_VIGNETTE_INNER_RADIUS, periodicVignetteInnerRadius);
bundle.putFloat(PERIODIC_VIGNETTE_OUTER_RADIUS, periodicVignetteOuterRadius);
transformerIntent.putExtras(bundle);
@Nullable Uri intentUri = getIntent().getData();
transformerIntent.setData(
intentUri != null ? intentUri : Uri.parse(INPUT_URIS[inputUriPosition]));
@Nullable Uri intentUri;
if (getIntent().getData() != null) {
intentUri = getIntent().getData();
} else if (localFileUri != null) {
intentUri = localFileUri;
} else {
intentUri = Uri.parse(PRESET_FILE_URIS[inputUriPosition]);
}
transformerIntent.setData(intentUri);
startActivity(transformerIntent);
}
private void selectFile(View view) {
private void selectPresetFile(View view) {
new AlertDialog.Builder(/* context= */ this)
.setTitle(R.string.select_file_title)
.setSingleChoiceItems(URI_DESCRIPTIONS, inputUriPosition, this::selectFileInDialog)
.setTitle(R.string.select_preset_file_title)
.setSingleChoiceItems(
PRESET_FILE_URI_DESCRIPTIONS, inputUriPosition, this::selectPresetFileInDialog)
.setPositiveButton(android.R.string.ok, /* listener= */ null)
.create()
.show();
}
@RequiresNonNull("selectedFileTextView")
private void selectPresetFileInDialog(DialogInterface dialog, int which) {
inputUriPosition = which;
localFileUri = null;
selectedFileTextView.setText(PRESET_FILE_URI_DESCRIPTIONS[inputUriPosition]);
}
private void selectLocalFile(View view) {
int permissionStatus =
ActivityCompat.checkSelfPermission(
ConfigurationActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE);
if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
String[] neededPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE};
ActivityCompat.requestPermissions(
ConfigurationActivity.this, neededPermissions, FILE_PERMISSION_REQUEST_CODE);
} else {
launchLocalFilePicker();
}
}
private void launchLocalFilePicker() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("video/*");
checkNotNull(localFilePickerLauncher).launch(intent);
}
@RequiresNonNull("selectedFileTextView")
private void localFilePickerLauncherResult(ActivityResult result) {
Intent data = result.getData();
if (data != null) {
localFileUri = checkNotNull(data.getData());
selectedFileTextView.setText(localFileUri.toString());
}
}
private void selectDemoEffects(View view) {
new AlertDialog.Builder(/* context= */ this)
.setTitle(R.string.select_demo_effects)
@ -316,35 +447,122 @@ public final class ConfigurationActivity extends AppCompatActivity {
return;
}
View dialogView = getLayoutInflater().inflate(R.layout.trim_options, /* root= */ null);
RangeSlider radiusRangeSlider =
RangeSlider trimRangeSlider =
checkNotNull(dialogView.findViewById(R.id.trim_bounds_range_slider));
radiusRangeSlider.setValues(0f, 60f); // seconds
trimRangeSlider.setValues(0f, 10f); // seconds
new AlertDialog.Builder(/* context= */ this)
.setView(dialogView)
.setPositiveButton(
android.R.string.ok,
(DialogInterface dialogInterface, int i) -> {
List<Float> radiusRange = radiusRangeSlider.getValues();
trimStartMs = 1000 * radiusRange.get(0).longValue();
trimEndMs = 1000 * radiusRange.get(1).longValue();
List<Float> trimRange = trimRangeSlider.getValues();
trimStartMs = Math.round(1000 * trimRange.get(0));
trimEndMs = Math.round(1000 * trimRange.get(1));
})
.create()
.show();
}
@RequiresNonNull("selectedFileTextView")
private void selectFileInDialog(DialogInterface dialog, int which) {
inputUriPosition = which;
selectedFileTextView.setText(URI_DESCRIPTIONS[inputUriPosition]);
}
@RequiresNonNull("demoEffectsSelections")
private void selectDemoEffect(DialogInterface dialog, int which, boolean isChecked) {
demoEffectsSelections[which] = isChecked;
if (!isChecked || which != PERIODIC_VIGNETTE_INDEX) {
if (!isChecked) {
return;
}
switch (which) {
case COLOR_FILTERS_INDEX:
controlColorFiltersSettings();
break;
case RGB_ADJUSTMENTS_INDEX:
controlRgbAdjustmentsScale();
break;
case CONTRAST_INDEX:
controlContrastSettings();
break;
case HSL_ADJUSTMENT_INDEX:
controlHslAdjustmentSettings();
break;
case PERIODIC_VIGNETTE_INDEX:
controlPeriodicVignetteSettings();
break;
}
}
private void controlColorFiltersSettings() {
new AlertDialog.Builder(/* context= */ this)
.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> dialogInterface.dismiss())
.setSingleChoiceItems(
this.getResources().getStringArray(R.array.color_filter_options),
colorFilterSelection,
(DialogInterface dialogInterface, int i) -> {
checkState(
i == COLOR_FILTER_GRAYSCALE
|| i == COLOR_FILTER_INVERTED
|| i == COLOR_FILTER_SEPIA);
colorFilterSelection = i;
dialogInterface.dismiss();
})
.create()
.show();
}
private void controlRgbAdjustmentsScale() {
View dialogView =
getLayoutInflater().inflate(R.layout.rgb_adjustment_options, /* root= */ null);
Slider redScaleSlider = checkNotNull(dialogView.findViewById(R.id.rgb_adjustment_red_scale));
Slider greenScaleSlider =
checkNotNull(dialogView.findViewById(R.id.rgb_adjustment_green_scale));
Slider blueScaleSlider = checkNotNull(dialogView.findViewById(R.id.rgb_adjustment_blue_scale));
new AlertDialog.Builder(/* context= */ this)
.setTitle(R.string.rgb_adjustment_options)
.setView(dialogView)
.setPositiveButton(
android.R.string.ok,
(DialogInterface dialogInterface, int i) -> {
rgbAdjustmentRedScale = redScaleSlider.getValue();
rgbAdjustmentGreenScale = greenScaleSlider.getValue();
rgbAdjustmentBlueScale = blueScaleSlider.getValue();
})
.create()
.show();
}
private void controlContrastSettings() {
View dialogView = getLayoutInflater().inflate(R.layout.contrast_options, /* root= */ null);
Slider contrastSlider = checkNotNull(dialogView.findViewById(R.id.contrast_slider));
new AlertDialog.Builder(/* context= */ this)
.setView(dialogView)
.setPositiveButton(
android.R.string.ok,
(DialogInterface dialogInterface, int i) -> contrastValue = contrastSlider.getValue())
.create()
.show();
}
private void controlHslAdjustmentSettings() {
View dialogView =
getLayoutInflater().inflate(R.layout.hsl_adjustment_options, /* root= */ null);
Slider hueAdjustmentSlider = checkNotNull(dialogView.findViewById(R.id.hsl_adjustments_hue));
Slider saturationAdjustmentSlider =
checkNotNull(dialogView.findViewById(R.id.hsl_adjustments_saturation));
Slider lightnessAdjustmentSlider =
checkNotNull(dialogView.findViewById(R.id.hsl_adjustment_lightness));
new AlertDialog.Builder(/* context= */ this)
.setTitle(R.string.hsl_adjustment_options)
.setView(dialogView)
.setPositiveButton(
android.R.string.ok,
(DialogInterface dialogInterface, int i) -> {
hueAdjustment = hueAdjustmentSlider.getValue();
saturationAdjustment = saturationAdjustmentSlider.getValue();
lightnessAdjustment = lightnessAdjustmentSlider.getValue();
})
.create()
.show();
}
private void controlPeriodicVignetteSettings() {
View dialogView =
getLayoutInflater().inflate(R.layout.periodic_vignette_options, /* root= */ null);
Slider centerXSlider =
@ -377,8 +595,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
"resolutionHeightSpinner",
"scaleSpinner",
"rotateSpinner",
"enableRequestSdrToneMappingCheckBox",
"enableHdrEditingCheckBox",
"enableDebugPreviewCheckBox",
"hdrModeSpinner",
"selectDemoEffectsButton"
})
private void onRemoveAudio(View view) {
@ -397,8 +615,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
"resolutionHeightSpinner",
"scaleSpinner",
"rotateSpinner",
"enableRequestSdrToneMappingCheckBox",
"enableHdrEditingCheckBox",
"enableDebugPreviewCheckBox",
"hdrModeSpinner",
"selectDemoEffectsButton"
})
private void onRemoveVideo(View view) {
@ -416,8 +634,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
"resolutionHeightSpinner",
"scaleSpinner",
"rotateSpinner",
"enableRequestSdrToneMappingCheckBox",
"enableHdrEditingCheckBox",
"enableDebugPreviewCheckBox",
"hdrModeSpinner",
"selectDemoEffectsButton"
})
private void enableTrackSpecificOptions(boolean isAudioEnabled, boolean isVideoEnabled) {
@ -426,9 +644,8 @@ public final class ConfigurationActivity extends AppCompatActivity {
resolutionHeightSpinner.setEnabled(isVideoEnabled);
scaleSpinner.setEnabled(isVideoEnabled);
rotateSpinner.setEnabled(isVideoEnabled);
enableRequestSdrToneMappingCheckBox.setEnabled(
isRequestSdrToneMappingSupported() && isVideoEnabled);
enableHdrEditingCheckBox.setEnabled(isVideoEnabled);
enableDebugPreviewCheckBox.setEnabled(isVideoEnabled);
hdrModeSpinner.setEnabled(isVideoEnabled);
selectDemoEffectsButton.setEnabled(isVideoEnabled);
findViewById(R.id.audio_mime_text_view).setEnabled(isAudioEnabled);
@ -436,12 +653,6 @@ public final class ConfigurationActivity extends AppCompatActivity {
findViewById(R.id.resolution_height_text_view).setEnabled(isVideoEnabled);
findViewById(R.id.scale).setEnabled(isVideoEnabled);
findViewById(R.id.rotate).setEnabled(isVideoEnabled);
findViewById(R.id.request_sdr_tone_mapping)
.setEnabled(isRequestSdrToneMappingSupported() && isVideoEnabled);
findViewById(R.id.hdr_editing).setEnabled(isVideoEnabled);
}
private static boolean isRequestSdrToneMappingSupported() {
return Util.SDK_INT >= 31;
findViewById(R.id.hdr_mode).setEnabled(isVideoEnabled);
}
}

View File

@ -17,8 +17,8 @@ package com.google.android.exoplayer2.transformerdemo;
import android.graphics.Matrix;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.transformer.GlMatrixTransformation;
import com.google.android.exoplayer2.transformer.MatrixTransformation;
import com.google.android.exoplayer2.effect.GlMatrixTransformation;
import com.google.android.exoplayer2.effect.MatrixTransformation;
import com.google.android.exoplayer2.util.Util;
/**

View File

@ -16,39 +16,29 @@
package com.google.android.exoplayer2.transformerdemo;
import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import android.content.Context;
import android.opengl.GLES20;
import android.util.Size;
import com.google.android.exoplayer2.transformer.FrameProcessingException;
import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor;
import android.util.Pair;
import com.google.android.exoplayer2.effect.SingleFrameGlTextureProcessor;
import com.google.android.exoplayer2.util.FrameProcessingException;
import com.google.android.exoplayer2.util.GlProgram;
import com.google.android.exoplayer2.util.GlUtil;
import java.io.IOException;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/**
* A {@link SingleFrameGlTextureProcessor} that periodically dims the frames such that pixels are
* darker the further they are away from the frame center.
*/
/* package */ final class PeriodicVignetteProcessor implements SingleFrameGlTextureProcessor {
static {
GlUtil.glAssertionsEnabled = true;
}
/* package */ final class PeriodicVignetteProcessor extends SingleFrameGlTextureProcessor {
private static final String VERTEX_SHADER_PATH = "vertex_shader_copy_es2.glsl";
private static final String FRAGMENT_SHADER_PATH = "fragment_shader_vignette_es2.glsl";
private static final float DIMMING_PERIOD_US = 5_600_000f;
private float centerX;
private float centerY;
private float minInnerRadius;
private float deltaInnerRadius;
private float outerRadius;
private @MonotonicNonNull Size outputSize;
private @MonotonicNonNull GlProgram glProgram;
private final GlProgram glProgram;
private final float minInnerRadius;
private final float deltaInnerRadius;
/**
* Creates a new instance.
@ -61,29 +51,35 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
*
* <p>The parameters are given in normalized texture coordinates from 0 to 1.
*
* @param context The {@link Context}.
* @param useHdr Whether input textures come from an HDR source. If {@code true}, colors will be
* in linear RGB BT.2020. If {@code false}, colors will be in linear RGB BT.709.
* @param centerX The x-coordinate of the center of the effect.
* @param centerY The y-coordinate of the center of the effect.
* @param minInnerRadius The lower bound of the radius that is unaffected by the effect.
* @param maxInnerRadius The upper bound of the radius that is unaffected by the effect.
* @param outerRadius The radius after which all pixels are black.
* @throws FrameProcessingException If a problem occurs while reading shader files.
*/
public PeriodicVignetteProcessor(
float centerX, float centerY, float minInnerRadius, float maxInnerRadius, float outerRadius) {
Context context,
boolean useHdr,
float centerX,
float centerY,
float minInnerRadius,
float maxInnerRadius,
float outerRadius)
throws FrameProcessingException {
super(useHdr);
checkArgument(minInnerRadius <= maxInnerRadius);
checkArgument(maxInnerRadius <= outerRadius);
this.centerX = centerX;
this.centerY = centerY;
this.minInnerRadius = minInnerRadius;
this.deltaInnerRadius = maxInnerRadius - minInnerRadius;
this.outerRadius = outerRadius;
}
@Override
public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight)
throws IOException {
outputSize = new Size(inputWidth, inputHeight);
glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH);
glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0);
try {
glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH);
} catch (IOException | GlUtil.GlException e) {
throw new FrameProcessingException(e);
}
glProgram.setFloatsUniform("uCenter", new float[] {centerX, centerY});
glProgram.setFloatsUniform("uOuterRadius", new float[] {outerRadius});
// Draw the frame on the entire normalized device coordinate space, from -1 to 1, for x and y.
@ -94,14 +90,15 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
@Override
public Size getOutputSize() {
return checkStateNotNull(outputSize);
public Pair<Integer, Integer> configure(int inputWidth, int inputHeight) {
return Pair.create(inputWidth, inputHeight);
}
@Override
public void drawFrame(long presentationTimeUs) throws FrameProcessingException {
public void drawFrame(int inputTexId, long presentationTimeUs) throws FrameProcessingException {
try {
checkStateNotNull(glProgram).use();
glProgram.use();
glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0);
double theta = presentationTimeUs * 2 * Math.PI / DIMMING_PERIOD_US;
float innerRadius =
minInnerRadius + deltaInnerRadius * (0.5f - 0.5f * (float) Math.cos(theta));
@ -110,14 +107,17 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
// The four-vertex triangle strip forms a quad.
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
} catch (GlUtil.GlException e) {
throw new FrameProcessingException(e);
throw new FrameProcessingException(e, presentationTimeUs);
}
}
@Override
public void release() {
if (glProgram != null) {
public void release() throws FrameProcessingException {
super.release();
try {
glProgram.delete();
} catch (GlUtil.GlException e) {
throw new FrameProcessingException(e);
}
}
}

View File

@ -17,10 +17,13 @@ package com.google.android.exoplayer2.transformerdemo;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.Assertions.checkState;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@ -28,6 +31,7 @@ import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
@ -36,11 +40,16 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.effect.Contrast;
import com.google.android.exoplayer2.effect.GlEffect;
import com.google.android.exoplayer2.effect.GlTextureProcessor;
import com.google.android.exoplayer2.effect.HslAdjustment;
import com.google.android.exoplayer2.effect.RgbAdjustment;
import com.google.android.exoplayer2.effect.RgbFilter;
import com.google.android.exoplayer2.effect.RgbMatrix;
import com.google.android.exoplayer2.effect.SingleColorLut;
import com.google.android.exoplayer2.transformer.DefaultEncoderFactory;
import com.google.android.exoplayer2.transformer.EncoderSelector;
import com.google.android.exoplayer2.transformer.GlEffect;
import com.google.android.exoplayer2.transformer.ProgressHolder;
import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor;
import com.google.android.exoplayer2.transformer.TransformationException;
import com.google.android.exoplayer2.transformer.TransformationRequest;
import com.google.android.exoplayer2.transformer.TransformationResult;
@ -48,8 +57,11 @@ import com.google.android.exoplayer2.transformer.Transformer;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.util.DebugTextViewHelper;
import com.google.android.exoplayer2.util.DebugViewProvider;
import com.google.android.exoplayer2.util.Effect;
import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.Util;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.google.common.base.Stopwatch;
import com.google.common.base.Ticker;
@ -66,7 +78,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
public final class TransformerActivity extends AppCompatActivity {
private static final String TAG = "TransformerActivity";
private @MonotonicNonNull StyledPlayerView playerView;
private @MonotonicNonNull Button displayInputButton;
private @MonotonicNonNull MaterialCardView inputCardView;
private @MonotonicNonNull StyledPlayerView inputPlayerView;
private @MonotonicNonNull StyledPlayerView outputPlayerView;
private @MonotonicNonNull TextView debugTextView;
private @MonotonicNonNull TextView informationTextView;
private @MonotonicNonNull ViewGroup progressViewGroup;
@ -75,7 +90,8 @@ public final class TransformerActivity extends AppCompatActivity {
private @MonotonicNonNull AspectRatioFrameLayout debugFrame;
@Nullable private DebugTextViewHelper debugTextViewHelper;
@Nullable private ExoPlayer player;
@Nullable private ExoPlayer inputPlayer;
@Nullable private ExoPlayer outputPlayer;
@Nullable private Transformer transformer;
@Nullable private File externalCacheFile;
@ -84,16 +100,21 @@ public final class TransformerActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.transformer_activity);
playerView = findViewById(R.id.player_view);
inputCardView = findViewById(R.id.input_card_view);
inputPlayerView = findViewById(R.id.input_player_view);
outputPlayerView = findViewById(R.id.output_player_view);
debugTextView = findViewById(R.id.debug_text_view);
informationTextView = findViewById(R.id.information_text_view);
progressViewGroup = findViewById(R.id.progress_view_group);
progressIndicator = findViewById(R.id.progress_indicator);
debugFrame = findViewById(R.id.debug_aspect_ratio_frame_layout);
displayInputButton = findViewById(R.id.display_input_button);
displayInputButton.setOnClickListener(this::toggleInputVideoDisplay);
transformationStopwatch =
Stopwatch.createUnstarted(
new Ticker() {
@Override
public long read() {
return android.os.SystemClock.elapsedRealtimeNanos();
}
@ -107,13 +128,17 @@ public final class TransformerActivity extends AppCompatActivity {
checkNotNull(progressIndicator);
checkNotNull(informationTextView);
checkNotNull(transformationStopwatch);
checkNotNull(playerView);
checkNotNull(inputCardView);
checkNotNull(inputPlayerView);
checkNotNull(outputPlayerView);
checkNotNull(debugTextView);
checkNotNull(progressViewGroup);
checkNotNull(debugFrame);
checkNotNull(displayInputButton);
startTransformation();
playerView.onResume();
inputPlayerView.onResume();
outputPlayerView.onResume();
}
@Override
@ -127,7 +152,8 @@ public final class TransformerActivity extends AppCompatActivity {
// stop watch to be stopped in a transformer callback.
checkNotNull(transformationStopwatch).reset();
checkNotNull(playerView).onPause();
checkNotNull(inputPlayerView).onPause();
checkNotNull(outputPlayerView).onPause();
releasePlayer();
checkNotNull(externalCacheFile).delete();
@ -135,7 +161,10 @@ public final class TransformerActivity extends AppCompatActivity {
}
@RequiresNonNull({
"playerView",
"inputCardView",
"inputPlayerView",
"outputPlayerView",
"displayInputButton",
"debugTextView",
"informationTextView",
"progressIndicator",
@ -160,8 +189,10 @@ public final class TransformerActivity extends AppCompatActivity {
} catch (IOException e) {
throw new IllegalStateException(e);
}
inputCardView.setVisibility(View.GONE);
outputPlayerView.setVisibility(View.GONE);
informationTextView.setText(R.string.transformation_started);
playerView.setVisibility(View.GONE);
progressViewGroup.setVisibility(View.VISIBLE);
Handler mainHandler = new Handler(getMainLooper());
ProgressHolder progressHolder = new ProgressHolder();
mainHandler.post(
@ -200,20 +231,11 @@ public final class TransformerActivity extends AppCompatActivity {
return mediaItemBuilder.build();
}
// Create a cache file, resetting it if it already exists.
private File createExternalCacheFile(String fileName) throws IOException {
File file = new File(getExternalCacheDir(), fileName);
if (file.exists() && !file.delete()) {
throw new IllegalStateException("Could not delete the previous transformer output file");
}
if (!file.createNewFile()) {
throw new IllegalStateException("Could not create the transformer output file");
}
return file;
}
@RequiresNonNull({
"playerView",
"inputCardView",
"inputPlayerView",
"outputPlayerView",
"displayInputButton",
"debugTextView",
"informationTextView",
"transformationStopwatch",
@ -248,73 +270,20 @@ public final class TransformerActivity extends AppCompatActivity {
float rotateDegrees =
bundle.getFloat(ConfigurationActivity.ROTATE_DEGREES, /* defaultValue= */ 0);
requestBuilder.setRotationDegrees(rotateDegrees);
requestBuilder.setEnableRequestSdrToneMapping(
bundle.getBoolean(ConfigurationActivity.ENABLE_REQUEST_SDR_TONE_MAPPING));
requestBuilder.experimental_setEnableHdrEditing(
bundle.getBoolean(ConfigurationActivity.ENABLE_HDR_EDITING));
requestBuilder.setHdrMode(bundle.getInt(ConfigurationActivity.HDR_MODE));
transformerBuilder
.setTransformationRequest(requestBuilder.build())
.setRemoveAudio(bundle.getBoolean(ConfigurationActivity.SHOULD_REMOVE_AUDIO))
.setRemoveVideo(bundle.getBoolean(ConfigurationActivity.SHOULD_REMOVE_VIDEO))
.setEncoderFactory(
new DefaultEncoderFactory(
EncoderSelector.DEFAULT,
/* enableFallback= */ bundle.getBoolean(ConfigurationActivity.ENABLE_FALLBACK)));
new DefaultEncoderFactory.Builder(this.getApplicationContext())
.setEnableFallback(bundle.getBoolean(ConfigurationActivity.ENABLE_FALLBACK))
.build());
ImmutableList.Builder<GlEffect> effects = new ImmutableList.Builder<>();
@Nullable
boolean[] selectedEffects =
bundle.getBooleanArray(ConfigurationActivity.DEMO_EFFECTS_SELECTIONS);
if (selectedEffects != null) {
if (selectedEffects[0]) {
effects.add(MatrixTransformationFactory.createDizzyCropEffect());
}
if (selectedEffects[1]) {
try {
Class<?> clazz =
Class.forName("com.google.android.exoplayer2.transformerdemo.MediaPipeProcessor");
Constructor<?> constructor =
clazz.getConstructor(String.class, String.class, String.class);
effects.add(
() -> {
try {
return (SingleFrameGlTextureProcessor)
constructor.newInstance(
/* graphName= */ "edge_detector_mediapipe_graph.binarypb",
/* inputStreamName= */ "input_video",
/* outputStreamName= */ "output_video");
} catch (Exception e) {
runOnUiThread(() -> showToast(R.string.no_media_pipe_error));
throw new RuntimeException("Failed to load MediaPipe processor", e);
}
});
} catch (Exception e) {
showToast(R.string.no_media_pipe_error);
}
}
if (selectedEffects[2]) {
effects.add(
() ->
new PeriodicVignetteProcessor(
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_CENTER_X),
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_CENTER_Y),
/* minInnerRadius= */ bundle.getFloat(
ConfigurationActivity.PERIODIC_VIGNETTE_INNER_RADIUS),
/* maxInnerRadius= */ bundle.getFloat(
ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS),
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS)));
}
if (selectedEffects[3]) {
effects.add(MatrixTransformationFactory.createSpin3dEffect());
}
if (selectedEffects[4]) {
effects.add(BitmapOverlayProcessor::new);
}
if (selectedEffects[5]) {
effects.add(MatrixTransformationFactory.createZoomInTransition());
}
transformerBuilder.setVideoFrameEffects(effects.build());
transformerBuilder.setVideoEffects(createVideoEffectsListFromBundle(bundle));
if (bundle.getBoolean(ConfigurationActivity.ENABLE_DEBUG_PREVIEW)) {
transformerBuilder.setDebugViewProvider(new DemoDebugViewProvider());
}
}
return transformerBuilder
@ -323,7 +292,7 @@ public final class TransformerActivity extends AppCompatActivity {
@Override
public void onTransformationCompleted(
MediaItem mediaItem, TransformationResult transformationResult) {
TransformerActivity.this.onTransformationCompleted(filePath);
TransformerActivity.this.onTransformationCompleted(filePath, mediaItem);
}
@Override
@ -332,10 +301,152 @@ public final class TransformerActivity extends AppCompatActivity {
TransformerActivity.this.onTransformationError(exception);
}
})
.setDebugViewProvider(new DemoDebugViewProvider())
.build();
}
/** Creates a cache file, resetting it if it already exists. */
private File createExternalCacheFile(String fileName) throws IOException {
File file = new File(getExternalCacheDir(), fileName);
if (file.exists() && !file.delete()) {
throw new IllegalStateException("Could not delete the previous transformer output file");
}
if (!file.createNewFile()) {
throw new IllegalStateException("Could not create the transformer output file");
}
return file;
}
private ImmutableList<Effect> createVideoEffectsListFromBundle(Bundle bundle) {
@Nullable
boolean[] selectedEffects =
bundle.getBooleanArray(ConfigurationActivity.DEMO_EFFECTS_SELECTIONS);
if (selectedEffects == null) {
return ImmutableList.of();
}
ImmutableList.Builder<Effect> effects = new ImmutableList.Builder<>();
if (selectedEffects[0]) {
effects.add(MatrixTransformationFactory.createDizzyCropEffect());
}
if (selectedEffects[1]) {
try {
Class<?> clazz =
Class.forName("com.google.android.exoplayer2.transformerdemo.MediaPipeProcessor");
Constructor<?> constructor =
clazz.getConstructor(
Context.class,
boolean.class,
String.class,
boolean.class,
String.class,
String.class);
effects.add(
(GlEffect)
(Context context, boolean useHdr) -> {
try {
return (GlTextureProcessor)
constructor.newInstance(
context,
useHdr,
/* graphName= */ "edge_detector_mediapipe_graph.binarypb",
/* isSingleFrameGraph= */ true,
/* inputStreamName= */ "input_video",
/* outputStreamName= */ "output_video");
} catch (Exception e) {
runOnUiThread(() -> showToast(R.string.no_media_pipe_error));
throw new RuntimeException("Failed to load MediaPipe processor", e);
}
});
} catch (Exception e) {
showToast(R.string.no_media_pipe_error);
}
}
if (selectedEffects[2]) {
switch (bundle.getInt(ConfigurationActivity.COLOR_FILTER_SELECTION)) {
case ConfigurationActivity.COLOR_FILTER_GRAYSCALE:
effects.add(RgbFilter.createGrayscaleFilter());
break;
case ConfigurationActivity.COLOR_FILTER_INVERTED:
effects.add(RgbFilter.createInvertedFilter());
break;
case ConfigurationActivity.COLOR_FILTER_SEPIA:
// W3C Sepia RGBA matrix with sRGB as a target color space:
// https://www.w3.org/TR/filter-effects-1/#sepiaEquivalent
// The matrix is defined for the sRGB color space and the Transformer library
// uses a linear RGB color space internally. Meaning this is only for demonstration
// purposes and it does not display a correct sepia frame.
float[] sepiaMatrix = {
0.393f, 0.349f, 0.272f, 0, 0.769f, 0.686f, 0.534f, 0, 0.189f, 0.168f, 0.131f, 0, 0, 0,
0, 1
};
effects.add((RgbMatrix) (presentationTimeUs, useHdr) -> sepiaMatrix);
break;
default:
throw new IllegalStateException(
"Unexpected color filter "
+ bundle.getInt(ConfigurationActivity.COLOR_FILTER_SELECTION));
}
}
if (selectedEffects[3]) {
int length = 3;
int[][][] mapWhiteToGreenLut = new int[length][length][length];
int scale = 255 / (length - 1);
for (int r = 0; r < length; r++) {
for (int g = 0; g < length; g++) {
for (int b = 0; b < length; b++) {
mapWhiteToGreenLut[r][g][b] =
Color.rgb(/* red= */ r * scale, /* green= */ g * scale, /* blue= */ b * scale);
}
}
}
mapWhiteToGreenLut[length - 1][length - 1][length - 1] = Color.GREEN;
effects.add(SingleColorLut.createFromCube(mapWhiteToGreenLut));
}
if (selectedEffects[4]) {
effects.add(
new RgbAdjustment.Builder()
.setRedScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_RED_SCALE))
.setGreenScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_GREEN_SCALE))
.setBlueScale(bundle.getFloat(ConfigurationActivity.RGB_ADJUSTMENT_BLUE_SCALE))
.build());
}
if (selectedEffects[5]) {
effects.add(
new HslAdjustment.Builder()
.adjustHue(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_HUE))
.adjustSaturation(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_SATURATION))
.adjustLightness(bundle.getFloat(ConfigurationActivity.HSL_ADJUSTMENTS_LIGHTNESS))
.build());
}
if (selectedEffects[6]) {
effects.add(new Contrast(bundle.getFloat(ConfigurationActivity.CONTRAST_VALUE)));
}
if (selectedEffects[7]) {
effects.add(
(GlEffect)
(Context context, boolean useHdr) ->
new PeriodicVignetteProcessor(
context,
useHdr,
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_CENTER_X),
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_CENTER_Y),
/* minInnerRadius= */ bundle.getFloat(
ConfigurationActivity.PERIODIC_VIGNETTE_INNER_RADIUS),
/* maxInnerRadius= */ bundle.getFloat(
ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS),
bundle.getFloat(ConfigurationActivity.PERIODIC_VIGNETTE_OUTER_RADIUS)));
}
if (selectedEffects[8]) {
effects.add(MatrixTransformationFactory.createSpin3dEffect());
}
if (selectedEffects[9]) {
effects.add((GlEffect) BitmapOverlayProcessor::new);
}
if (selectedEffects[10]) {
effects.add(MatrixTransformationFactory.createZoomInTransition());
}
return effects.build();
}
@RequiresNonNull({
"informationTextView",
"progressViewGroup",
@ -343,48 +454,72 @@ public final class TransformerActivity extends AppCompatActivity {
"transformationStopwatch",
})
private void onTransformationError(TransformationException exception) {
transformationStopwatch.stop();
if (transformationStopwatch.isRunning()) {
transformationStopwatch.stop();
}
informationTextView.setText(R.string.transformation_error);
progressViewGroup.setVisibility(View.GONE);
debugFrame.removeAllViews();
Toast.makeText(
TransformerActivity.this, "Transformation error: " + exception, Toast.LENGTH_LONG)
Toast.makeText(getApplicationContext(), "Transformation error: " + exception, Toast.LENGTH_LONG)
.show();
Log.e(TAG, "Transformation error", exception);
}
@RequiresNonNull({
"playerView",
"inputCardView",
"inputPlayerView",
"outputPlayerView",
"displayInputButton",
"debugTextView",
"informationTextView",
"progressViewGroup",
"debugFrame",
"transformationStopwatch",
})
private void onTransformationCompleted(String filePath) {
private void onTransformationCompleted(String filePath, MediaItem inputMediaItem) {
transformationStopwatch.stop();
informationTextView.setText(
getString(
R.string.transformation_completed, transformationStopwatch.elapsed(TimeUnit.SECONDS)));
progressViewGroup.setVisibility(View.GONE);
debugFrame.removeAllViews();
playerView.setVisibility(View.VISIBLE);
playMediaItem(MediaItem.fromUri("file://" + filePath));
inputCardView.setVisibility(View.VISIBLE);
outputPlayerView.setVisibility(View.VISIBLE);
displayInputButton.setVisibility(View.VISIBLE);
playMediaItems(inputMediaItem, MediaItem.fromUri("file://" + filePath));
Log.d(TAG, "Output file path: file://" + filePath);
}
@RequiresNonNull({"playerView", "debugTextView"})
private void playMediaItem(MediaItem mediaItem) {
playerView.setPlayer(null);
@RequiresNonNull({
"inputCardView",
"inputPlayerView",
"outputPlayerView",
"debugTextView",
})
private void playMediaItems(MediaItem inputMediaItem, MediaItem outputMediaItem) {
inputPlayerView.setPlayer(null);
outputPlayerView.setPlayer(null);
releasePlayer();
ExoPlayer player = new ExoPlayer.Builder(/* context= */ this).build();
playerView.setPlayer(player);
player.setMediaItem(mediaItem);
player.play();
player.prepare();
this.player = player;
debugTextViewHelper = new DebugTextViewHelper(player, debugTextView);
ExoPlayer inputPlayer = new ExoPlayer.Builder(/* context= */ this).build();
inputPlayerView.setPlayer(inputPlayer);
inputPlayerView.setControllerAutoShow(false);
inputPlayer.setMediaItem(inputMediaItem);
inputPlayer.prepare();
this.inputPlayer = inputPlayer;
inputPlayer.setVolume(0f);
ExoPlayer outputPlayer = new ExoPlayer.Builder(/* context= */ this).build();
outputPlayerView.setPlayer(outputPlayer);
outputPlayerView.setControllerAutoShow(false);
outputPlayer.setMediaItem(outputMediaItem);
outputPlayer.prepare();
this.outputPlayer = outputPlayer;
inputPlayer.play();
outputPlayer.play();
debugTextViewHelper = new DebugTextViewHelper(outputPlayer, debugTextView);
debugTextViewHelper.start();
}
@ -393,9 +528,13 @@ public final class TransformerActivity extends AppCompatActivity {
debugTextViewHelper.stop();
debugTextViewHelper = null;
}
if (player != null) {
player.release();
player = null;
if (inputPlayer != null) {
inputPlayer.release();
inputPlayer = null;
}
if (outputPlayer != null) {
outputPlayer.release();
outputPlayer = null;
}
}
@ -412,11 +551,45 @@ public final class TransformerActivity extends AppCompatActivity {
Toast.makeText(getApplicationContext(), getString(messageResource), Toast.LENGTH_LONG).show();
}
private final class DemoDebugViewProvider implements Transformer.DebugViewProvider {
@RequiresNonNull({
"inputCardView",
"displayInputButton",
})
private void toggleInputVideoDisplay(View view) {
if (inputCardView.getVisibility() == View.GONE) {
inputCardView.setVisibility(View.VISIBLE);
displayInputButton.setText(getString(R.string.hide_input_video));
} else if (inputCardView.getVisibility() == View.VISIBLE) {
checkNotNull(inputPlayer).pause();
inputCardView.setVisibility(View.GONE);
displayInputButton.setText(getString(R.string.show_input_video));
}
}
private final class DemoDebugViewProvider implements DebugViewProvider {
private @MonotonicNonNull SurfaceView surfaceView;
private int width;
private int height;
public DemoDebugViewProvider() {
width = C.LENGTH_UNSET;
height = C.LENGTH_UNSET;
}
@Nullable
@Override
public SurfaceView getDebugPreviewSurfaceView(int width, int height) {
checkState(
surfaceView == null || (this.width == width && this.height == height),
"Transformer should not change the output size mid-transformation.");
if (surfaceView != null) {
return surfaceView;
}
this.width = width;
this.height = height;
// Update the UI on the main thread and wait for the output surface to be available.
CountDownLatch surfaceCreatedCountDownLatch = new CountDownLatch(1);
SurfaceView surfaceView = new SurfaceView(/* context= */ TransformerActivity.this);
@ -453,6 +626,7 @@ public final class TransformerActivity extends AppCompatActivity {
Thread.currentThread().interrupt();
return null;
}
this.surfaceView = surfaceView;
return surfaceView;
}
}

View File

@ -34,16 +34,26 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/select_file_button"
android:id="@+id/select_preset_file_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:text="@string/select_file_title"
app:layout_constraintTop_toBottomOf="@+id/configuration_text_view"
android:layout_marginStart="8dp"
android:text="@string/select_preset_file_title"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/configuration_text_view" />
<Button
android:id="@+id/select_local_file_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginEnd="8dp"
android:text="@string/select_local_file_title"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/configuration_text_view" />
<TextView
android:id="@+id/selected_file_text_view"
android:layout_width="0dp"
@ -57,52 +67,50 @@
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/select_file_button" />
app:layout_constraintTop_toBottomOf="@+id/select_preset_file_button" />
<androidx.core.widget.NestedScrollView
android:layout_width="fill_parent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/selected_file_text_view"
app:layout_constraintBottom_toTopOf="@+id/select_demo_effects_button">
<TableLayout
android:layout_width="fill_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:stretchColumns="0"
android:layout_marginTop="32dp"
android:measureWithLargestChild="true"
android:paddingLeft="24dp"
android:paddingRight="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:text="@string/remove_audio" />
<CheckBox
android:id="@+id/remove_audio_checkbox"
android:layout_gravity="right"/>
android:layout_gravity="end"
android:id="@+id/remove_audio_checkbox"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TableRow android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:text="@string/remove_video"/>
<CheckBox
android:id="@+id/remove_video_checkbox"
android:layout_gravity="right" />
android:layout_gravity="end" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:text="@string/flatten_for_slow_motion"/>
<CheckBox
android:id="@+id/flatten_for_slow_motion_checkbox"
android:layout_gravity="right" />
android:layout_gravity="end" />
</TableRow>
<TableRow
android:layout_weight="1"
@ -160,44 +168,45 @@
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:id="@+id/trim"
android:text="@string/trim" />
<CheckBox
android:id="@+id/trim_checkbox"
android:layout_gravity="right" />
android:layout_gravity="end" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:text="@string/enable_fallback" />
<CheckBox
android:id="@+id/enable_fallback_checkbox"
android:layout_gravity="right"
android:layout_gravity="end"
android:checked="true"/>
</TableRow>
<TableRow
android:layout_weight="1">
<TextView
android:layout_gravity="center_vertical"
android:text="@string/enable_debug_preview" />
<CheckBox
android:id="@+id/enable_debug_preview_checkbox"
android:layout_gravity="end"
android:checked="true"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/request_sdr_tone_mapping"
android:text="@string/request_sdr_tone_mapping" />
<CheckBox
android:id="@+id/request_sdr_tone_mapping_checkbox"
android:layout_gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/hdr_editing"
android:text="@string/hdr_editing" />
<CheckBox
android:id="@+id/hdr_editing_checkbox"
android:layout_gravity="right" />
android:id="@+id/hdr_mode"
android:text="@string/hdr_mode"/>
<Spinner
android:id="@+id/hdr_mode_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
</TableLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".ConfigurationActivity">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:layout_marginTop="32dp"
android:measureWithLargestChild="true"
android:paddingLeft="24dp"
android:paddingRight="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/contrast_value" />
<com.google.android.material.slider.Slider
android:id="@+id/contrast_slider"
android:valueFrom="-1.0"
android:value="0.0"
android:valueTo="1.0"
android:layout_gravity="right"/>
</TableRow>
</TableLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".ConfigurationActivity">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:layout_marginTop="32dp"
android:measureWithLargestChild="true"
android:paddingLeft="24dp"
android:paddingRight="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/hue_adjustment" />
<com.google.android.material.slider.Slider
android:id="@+id/hsl_adjustments_hue"
android:valueFrom="-360"
android:value="0"
android:valueTo="360"
android:layout_gravity="right"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/saturation_adjustment" />
<com.google.android.material.slider.Slider
android:id="@+id/hsl_adjustments_saturation"
android:valueFrom="-100"
android:value="0"
android:valueTo="100"
android:layout_gravity="right"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/lightness_adjustment" />
<com.google.android.material.slider.Slider
android:id="@+id/hsl_adjustment_lightness"
android:valueFrom="-100"
android:value="0"
android:valueTo="100"
android:layout_gravity="right"/>
</TableRow>
</TableLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".ConfigurationActivity">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:layout_marginTop="32dp"
android:measureWithLargestChild="true"
android:paddingLeft="24dp"
android:paddingRight="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/rgb_adjustment_scale_red" />
<com.google.android.material.slider.Slider
android:id="@+id/rgb_adjustment_red_scale"
android:valueFrom="0"
android:value="1"
android:valueTo="2"
android:layout_gravity="right"
app:labelBehavior="gone"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/rgb_adjustment_scale_green" />
<com.google.android.material.slider.Slider
android:id="@+id/rgb_adjustment_green_scale"
android:valueFrom="0"
android:value="1"
android:valueTo="2"
android:layout_gravity="right"
app:labelBehavior="gone"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/rgb_adjustment_scale_blue" />
<com.google.android.material.slider.Slider
android:id="@+id/rgb_adjustment_blue_scale"
android:valueFrom="0"
android:value="1"
android:valueTo="2"
android:layout_gravity="right"
app:labelBehavior="gone"/>
</TableRow>
</TableLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -29,42 +29,113 @@
app:cardElevation="2dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/information_text_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:padding="8dp" />
android:layout_height="wrap_content">
<TextView
android:id="@+id/information_text_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="8dp" />
<Button
android:id="@+id/display_input_button"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hide_input_video"
android:layout_margin="8dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/input_card_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_margin="16dp"
app:cardCornerRadius="4dp"
app:cardElevation="2dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.exoplayer2.ui.StyledPlayerView
android:id="@+id/player_view"
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:padding="8dp"
android:text="@string/input_video" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<com.google.android.exoplayer2.ui.StyledPlayerView
android:id="@+id/input_player_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
android:id="@+id/input_debug_aspect_ratio_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</LinearLayout>
<TextView
android:id="@+id/debug_text_view"
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/output_card_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_margin="16dp"
app:cardCornerRadius="4dp"
app:cardElevation="2dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="@string/output_video" />
<TextView
android:id="@+id/debug_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:textSize="10sp"
tools:ignore="SmallSp"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_gravity="center"
android:layout_height="wrap_content">
<com.google.android.exoplayer2.ui.StyledPlayerView
android:id="@+id/output_player_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp"
tools:ignore="SmallSp"/>
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/progress_view_group"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:padding="8dp"
android:orientation="vertical">
@ -96,5 +167,9 @@
</LinearLayout>
</FrameLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>

View File

@ -17,7 +17,8 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" translatable="false">Transformer Demo</string>
<string name="configuration" translatable="false">Configuration</string>
<string name="select_file_title" translatable="false">Choose file</string>
<string name="select_preset_file_title" translatable="false">Choose preset file</string>
<string name="select_local_file_title">Choose local file</string>
<string name="remove_audio" translatable="false">Remove audio</string>
<string name="remove_video" translatable="false">Remove video</string>
<string name="flatten_for_slow_motion" translatable="false">Flatten for slow motion</string>
@ -27,9 +28,9 @@
<string name="scale" translatable="false">Scale video</string>
<string name="rotate" translatable="false">Rotate video (degrees)</string>
<string name="enable_fallback" translatable="false">Enable fallback</string>
<string name="enable_debug_preview" translatable="false">Enable debug preview</string>
<string name="trim" translatable="false">Trim</string>
<string name="request_sdr_tone_mapping" translatable="false">Request SDR tone-mapping (API 31+)</string>
<string name="hdr_editing" translatable="false">[Experimental] HDR editing</string>
<string name="hdr_mode" translatable="false">HDR mode</string>
<string name="select_demo_effects" translatable="false">Add demo effects</string>
<string name="periodic_vignette_options" translatable="false">Periodic vignette options</string>
<string name="no_media_pipe_error" translatable="false">Failed to load MediaPipe processor. Check the README for instructions.</string>
@ -40,8 +41,27 @@
<string name="transformation_timer" translatable="false">Transformation started %d seconds ago.</string>
<string name="transformation_completed" translatable="false">Transformation completed in %d seconds.</string>
<string name="transformation_error" translatable="false">Transformation error</string>
<string name="trim_range">Bounds in seconds</string>
<string-array name="color_filter_options">
<item>Grayscale</item>
<item>Inverted</item>
<item>Sepia</item>
</string-array>
<string name="contrast_value" translatable="false">Contrast value</string>
<string name="rgb_adjustment_options" translatable="false">Scale RGB Channels individually</string>
<string name="rgb_adjustment_scale_red" translatable="false">Scale red</string>
<string name="rgb_adjustment_scale_green" translatable="false">Scale green</string>
<string name="rgb_adjustment_scale_blue" translatable="false">Scale blue</string>
<string name="center_x">Center X</string>
<string name="center_y">Center Y</string>
<string name="radius_range">Radius range</string>
<string name="trim_range">Bounds in seconds</string>
<string name="hsl_adjustment_options" translatable="false">HSL adjustment options</string>
<string name="hue_adjustment">Hue adjustment</string>
<string name="saturation_adjustment">Saturation adjustment</string>
<string name="lightness_adjustment">Lightness adjustment</string>
<string name="input_video">Input video:</string>
<string name="output_video">Output video:</string>
<string name="permission_denied">Permission Denied</string>
<string name="hide_input_video">Hide input video</string>
<string name="show_input_video">Show input video</string>
</resources>

View File

@ -15,32 +15,37 @@
*/
package com.google.android.exoplayer2.transformerdemo;
import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkState;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import android.content.Context;
import android.opengl.EGL14;
import android.opengl.GLES20;
import android.util.Size;
import com.google.android.exoplayer2.transformer.FrameProcessingException;
import com.google.android.exoplayer2.transformer.SingleFrameGlTextureProcessor;
import com.google.android.exoplayer2.util.ConditionVariable;
import com.google.android.exoplayer2.util.GlProgram;
import com.google.android.exoplayer2.util.GlUtil;
import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.effect.GlTextureProcessor;
import com.google.android.exoplayer2.effect.TextureInfo;
import com.google.android.exoplayer2.util.FrameProcessingException;
import com.google.android.exoplayer2.util.LibraryLoader;
import com.google.android.exoplayer2.util.Util;
import com.google.mediapipe.components.FrameProcessor;
import com.google.mediapipe.framework.AndroidAssetUtil;
import com.google.mediapipe.framework.AppTextureFrame;
import com.google.mediapipe.framework.TextureFrame;
import com.google.mediapipe.glutil.EglManager;
import java.io.IOException;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
/**
* Runs a MediaPipe graph on input frames. The implementation is currently limited to graphs that
* can immediately produce one output frame per input frame.
*/
/* package */ final class MediaPipeProcessor implements SingleFrameGlTextureProcessor {
/** Runs a MediaPipe graph on input frames. */
/* package */ final class MediaPipeProcessor implements GlTextureProcessor {
private static final String THREAD_NAME = "Demo:MediaPipeProcessor";
private static final long RELEASE_WAIT_TIME_MS = 100;
private static final long RETRY_WAIT_TIME_MS = 1;
private static final LibraryLoader LOADER =
new LibraryLoader("mediapipe_jni") {
@ -60,116 +65,218 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
}
private static final String COPY_VERTEX_SHADER_NAME = "vertex_shader_copy_es2.glsl";
private static final String COPY_FRAGMENT_SHADER_NAME = "shaders/fragment_shader_copy_es2.glsl";
private final FrameProcessor frameProcessor;
private final ConcurrentHashMap<TextureInfo, TextureFrame> outputFrames;
private final boolean isSingleFrameGraph;
@Nullable private final ExecutorService singleThreadExecutorService;
private final Queue<Future<?>> futures;
private final String graphName;
private final String inputStreamName;
private final String outputStreamName;
private final ConditionVariable frameProcessorConditionVariable;
private @MonotonicNonNull FrameProcessor frameProcessor;
private int inputWidth;
private int inputHeight;
private int inputTexId;
private @MonotonicNonNull GlProgram glProgram;
private @MonotonicNonNull TextureFrame outputFrame;
private @MonotonicNonNull RuntimeException frameProcessorPendingError;
private InputListener inputListener;
private OutputListener outputListener;
private ErrorListener errorListener;
private boolean acceptedFrame;
/**
* Creates a new texture processor that wraps a MediaPipe graph.
*
* <p>If {@code isSingleFrameGraph} is {@code false}, the {@code MediaPipeProcessor} may waste CPU
* time by continuously attempting to queue input frames to MediaPipe until they are accepted or
* waste memory if MediaPipe accepts and stores many frames internally.
*
* @param context The {@link Context}.
* @param useHdr Whether input textures come from an HDR source. If {@code true}, colors will be
* in linear RGB BT.2020. If {@code false}, colors will be in linear RGB BT.709.
* @param graphName Name of a MediaPipe graph asset to load.
* @param isSingleFrameGraph Whether the MediaPipe graph will eventually produce one output frame
* each time an input frame (and no other input) has been queued.
* @param inputStreamName Name of the input video stream in the graph.
* @param outputStreamName Name of the input video stream in the graph.
*/
public MediaPipeProcessor(String graphName, String inputStreamName, String outputStreamName) {
public MediaPipeProcessor(
Context context,
boolean useHdr,
String graphName,
boolean isSingleFrameGraph,
String inputStreamName,
String outputStreamName) {
checkState(LOADER.isAvailable());
this.graphName = graphName;
this.inputStreamName = inputStreamName;
this.outputStreamName = outputStreamName;
frameProcessorConditionVariable = new ConditionVariable();
}
@Override
public void initialize(Context context, int inputTexId, int inputWidth, int inputHeight)
throws IOException {
this.inputTexId = inputTexId;
this.inputWidth = inputWidth;
this.inputHeight = inputHeight;
glProgram = new GlProgram(context, COPY_VERTEX_SHADER_NAME, COPY_FRAGMENT_SHADER_NAME);
AndroidAssetUtil.initializeNativeAssetManager(context);
// TODO(b/227624622): Confirm whether MediaPipeProcessor could support HDR colors.
checkArgument(!useHdr, "MediaPipeProcessor does not support HDR colors.");
this.isSingleFrameGraph = isSingleFrameGraph;
singleThreadExecutorService =
isSingleFrameGraph ? null : Util.newSingleThreadExecutor(THREAD_NAME);
futures = new ArrayDeque<>();
inputListener = new InputListener() {};
outputListener = new OutputListener() {};
errorListener = (frameProcessingException) -> {};
EglManager eglManager = new EglManager(EGL14.eglGetCurrentContext());
frameProcessor =
new FrameProcessor(
context, eglManager.getNativeContext(), graphName, inputStreamName, outputStreamName);
outputFrames = new ConcurrentHashMap<>();
// OnWillAddFrameListener is called on the same thread as frameProcessor.onNewFrame(...), so no
// synchronization is needed for acceptedFrame.
frameProcessor.setOnWillAddFrameListener((long timestamp) -> acceptedFrame = true);
}
// Unblock drawFrame when there is an output frame or an error.
@Override
public void setInputListener(InputListener inputListener) {
this.inputListener = inputListener;
if (!isSingleFrameGraph || outputFrames.isEmpty()) {
inputListener.onReadyToAcceptInputFrame();
}
}
@Override
public void setOutputListener(OutputListener outputListener) {
this.outputListener = outputListener;
frameProcessor.setConsumer(
frame -> {
outputFrame = frame;
frameProcessorConditionVariable.open();
TextureInfo texture =
new TextureInfo(
frame.getTextureName(),
/* fboId= */ C.INDEX_UNSET,
frame.getWidth(),
frame.getHeight());
outputFrames.put(texture, frame);
outputListener.onOutputFrameAvailable(texture, frame.getTimestamp());
});
}
@Override
public void setErrorListener(ErrorListener errorListener) {
this.errorListener = errorListener;
frameProcessor.setAsynchronousErrorListener(
error -> {
frameProcessorPendingError = error;
frameProcessorConditionVariable.open();
});
error -> errorListener.onFrameProcessingError(new FrameProcessingException(error)));
}
@Override
public Size getOutputSize() {
return new Size(inputWidth, inputHeight);
}
@Override
public void drawFrame(long presentationTimeUs) throws FrameProcessingException {
frameProcessorConditionVariable.close();
// Pass the input frame to MediaPipe.
AppTextureFrame appTextureFrame = new AppTextureFrame(inputTexId, inputWidth, inputHeight);
public void queueInputFrame(TextureInfo inputTexture, long presentationTimeUs) {
AppTextureFrame appTextureFrame =
new AppTextureFrame(inputTexture.texId, inputTexture.width, inputTexture.height);
// TODO(b/238302213): Handle timestamps restarting from 0 when applying effects to a playlist.
// MediaPipe will fail if the timestamps are not monotonically increasing.
// Also make sure that a MediaPipe graph producing additional frames only starts producing
// frames for the next MediaItem after receiving the first frame of that MediaItem as input
// to avoid MediaPipe producing extra frames after the last MediaItem has ended.
appTextureFrame.setTimestamp(presentationTimeUs);
checkStateNotNull(frameProcessor).onNewFrame(appTextureFrame);
// Wait for output to be passed to the consumer.
try {
frameProcessorConditionVariable.block();
} catch (InterruptedException e) {
// Propagate the interrupted flag so the next blocking operation will throw.
// TODO(b/230469581): The next processor that runs will not have valid input due to returning
// early here. This could be fixed by checking for interruption in the outer loop that runs
// through the texture processors.
Thread.currentThread().interrupt();
if (isSingleFrameGraph) {
boolean acceptedFrame = maybeQueueInputFrameSynchronous(appTextureFrame, inputTexture);
checkState(
acceptedFrame,
"queueInputFrame must only be called when a new input frame can be accepted");
return;
}
if (frameProcessorPendingError != null) {
throw new FrameProcessingException(frameProcessorPendingError);
}
// TODO(b/241782273): Avoid retrying continuously until the frame is accepted by using a
// currently non-existent MediaPipe API to be notified when MediaPipe has capacity to accept a
// new frame.
queueInputFrameAsynchronous(appTextureFrame, inputTexture);
}
// Copy from MediaPipe's output texture to the current output.
private boolean maybeQueueInputFrameSynchronous(
AppTextureFrame appTextureFrame, TextureInfo inputTexture) {
acceptedFrame = false;
frameProcessor.onNewFrame(appTextureFrame);
try {
checkStateNotNull(glProgram).use();
glProgram.setSamplerTexIdUniform(
"uTexSampler", checkStateNotNull(outputFrame).getTextureName(), /* texUnitIndex= */ 0);
glProgram.setBufferAttribute(
"aFramePosition",
GlUtil.getNormalizedCoordinateBounds(),
GlUtil.HOMOGENEOUS_COORDINATE_VECTOR_SIZE);
glProgram.bindAttributesAndUniforms();
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
throw new FrameProcessingException(e);
} finally {
checkStateNotNull(outputFrame).release();
appTextureFrame.waitUntilReleasedWithGpuSync();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
errorListener.onFrameProcessingError(new FrameProcessingException(e));
}
if (acceptedFrame) {
inputListener.onInputFrameProcessed(inputTexture);
}
return acceptedFrame;
}
private void queueInputFrameAsynchronous(
AppTextureFrame appTextureFrame, TextureInfo inputTexture) {
removeFinishedFutures();
futures.add(
checkStateNotNull(singleThreadExecutorService)
.submit(
() -> {
while (!maybeQueueInputFrameSynchronous(appTextureFrame, inputTexture)) {
try {
Thread.sleep(RETRY_WAIT_TIME_MS);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
if (errorListener != null) {
errorListener.onFrameProcessingError(new FrameProcessingException(e));
}
}
}
inputListener.onReadyToAcceptInputFrame();
}));
}
@Override
public void releaseOutputFrame(TextureInfo outputTexture) {
checkStateNotNull(outputFrames.get(outputTexture)).release();
if (isSingleFrameGraph) {
inputListener.onReadyToAcceptInputFrame();
}
}
@Override
public void release() {
checkStateNotNull(frameProcessor).close();
if (isSingleFrameGraph) {
frameProcessor.close();
return;
}
Queue<Future<?>> futures = checkStateNotNull(this.futures);
while (!futures.isEmpty()) {
futures.remove().cancel(/* mayInterruptIfRunning= */ false);
}
ExecutorService singleThreadExecutorService =
checkStateNotNull(this.singleThreadExecutorService);
singleThreadExecutorService.shutdown();
try {
if (!singleThreadExecutorService.awaitTermination(RELEASE_WAIT_TIME_MS, MILLISECONDS)) {
errorListener.onFrameProcessingError(new FrameProcessingException("Release timed out"));
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
errorListener.onFrameProcessingError(new FrameProcessingException(e));
}
frameProcessor.close();
}
@Override
public final void signalEndOfCurrentInputStream() {
if (isSingleFrameGraph) {
frameProcessor.waitUntilIdle();
outputListener.onCurrentOutputStreamEnded();
return;
}
removeFinishedFutures();
futures.add(
checkStateNotNull(singleThreadExecutorService)
.submit(
() -> {
frameProcessor.waitUntilIdle();
outputListener.onCurrentOutputStreamEnded();
}));
}
private void removeFinishedFutures() {
while (!futures.isEmpty()) {
if (!futures.element().isDone()) {
return;
}
try {
futures.remove().get();
} catch (ExecutionException e) {
errorListener.onFrameProcessingError(new FrameProcessingException(e));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
errorListener.onFrameProcessingError(new FrameProcessingException(e));
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -123,6 +123,7 @@
<li><a href="com/google/android/exoplayer2/audio/AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">AudioProcessor</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">AudioProcessorChain</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">AudioRendererEventListener</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioRendererEventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.audio">AudioRendererEventListener.EventDispatcher</a></li>
<li><a href="com/google/android/exoplayer2/audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">AudioSink</span></a></li>
@ -248,6 +249,7 @@
<li><a href="com/google/android/exoplayer2/transformer/Codec.EncoderFactory.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Codec.EncoderFactory</span></a></li>
<li><a href="com/google/android/exoplayer2/util/CodecSpecificDataUtil.html" title="class in com.google.android.exoplayer2.util">CodecSpecificDataUtil</a></li>
<li><a href="com/google/android/exoplayer2/video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</a></li>
<li><a href="com/google/android/exoplayer2/effect/ColorLut.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">ColorLut</span></a></li>
<li><a href="com/google/android/exoplayer2/util/ColorParser.html" title="class in com.google.android.exoplayer2.util">ColorParser</a></li>
<li><a href="com/google/android/exoplayer2/metadata/id3/CommentFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">CommentFrame</a></li>
<li><a href="com/google/android/exoplayer2/source/CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source">CompositeMediaSource</a></li>
@ -262,6 +264,7 @@
<li><a href="com/google/android/exoplayer2/upstream/ContentDataSource.ContentDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">ContentDataSource.ContentDataSourceException</a></li>
<li><a href="com/google/android/exoplayer2/upstream/cache/ContentMetadata.html" title="interface in com.google.android.exoplayer2.upstream.cache"><span class="interfaceName">ContentMetadata</span></a></li>
<li><a href="com/google/android/exoplayer2/upstream/cache/ContentMetadataMutations.html" title="class in com.google.android.exoplayer2.upstream.cache">ContentMetadataMutations</a></li>
<li><a href="com/google/android/exoplayer2/effect/Contrast.html" title="class in com.google.android.exoplayer2.effect">Contrast</a></li>
<li><a href="com/google/android/exoplayer2/util/CopyOnWriteMultiset.html" title="class in com.google.android.exoplayer2.util">CopyOnWriteMultiset</a></li>
<li><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSource</a></li>
<li><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSource.Factory</a></li>
@ -269,6 +272,7 @@
<li><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSourceFactory.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSourceFactory</a></li>
<li><a href="com/google/android/exoplayer2/ext/cronet/CronetEngineWrapper.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetEngineWrapper</a></li>
<li><a href="com/google/android/exoplayer2/ext/cronet/CronetUtil.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetUtil</a></li>
<li><a href="com/google/android/exoplayer2/effect/Crop.html" title="class in com.google.android.exoplayer2.effect">Crop</a></li>
<li><a href="com/google/android/exoplayer2/decoder/CryptoConfig.html" title="interface in com.google.android.exoplayer2.decoder"><span class="interfaceName">CryptoConfig</span></a></li>
<li><a href="com/google/android/exoplayer2/decoder/CryptoException.html" title="class in com.google.android.exoplayer2.decoder">CryptoException</a></li>
<li><a href="com/google/android/exoplayer2/decoder/CryptoInfo.html" title="class in com.google.android.exoplayer2.decoder">CryptoInfo</a></li>
@ -314,6 +318,9 @@
<li><a href="com/google/android/exoplayer2/upstream/DataSpec.Flags.html" title="annotation in com.google.android.exoplayer2.upstream">DataSpec.Flags</a></li>
<li><a href="com/google/android/exoplayer2/upstream/DataSpec.HttpMethod.html" title="annotation in com.google.android.exoplayer2.upstream">DataSpec.HttpMethod</a></li>
<li><a href="com/google/android/exoplayer2/util/DebugTextViewHelper.html" title="class in com.google.android.exoplayer2.util">DebugTextViewHelper</a></li>
<li><a href="com/google/android/exoplayer2/util/DebugViewProvider.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">DebugViewProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/testutil/DecodeOneFrameUtil.html" title="class in com.google.android.exoplayer2.testutil">DecodeOneFrameUtil</a></li>
<li><a href="com/google/android/exoplayer2/testutil/DecodeOneFrameUtil.Listener.html" title="interface in com.google.android.exoplayer2.testutil"><span class="interfaceName">DecodeOneFrameUtil.Listener</span></a></li>
<li><a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><span class="interfaceName">Decoder</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/DecoderAudioRenderer.html" title="class in com.google.android.exoplayer2.audio">DecoderAudioRenderer</a></li>
<li><a href="com/google/android/exoplayer2/decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a></li>
@ -332,6 +339,7 @@
<li><a href="com/google/android/exoplayer2/analytics/DefaultAnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">DefaultAnalyticsCollector</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">DefaultAudioSink.AudioProcessorChain</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio"><span class="interfaceName">DefaultAudioSink.AudioTrackBufferSizeProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.DefaultAudioProcessorChain</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.InvalidAudioTrackTimestampException.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.InvalidAudioTrackTimestampException</a></li>
@ -361,6 +369,7 @@
<li><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.Mode.html" title="annotation in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Mode</a></li>
<li><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManagerProvider</a></li>
<li><a href="com/google/android/exoplayer2/transformer/DefaultEncoderFactory.html" title="class in com.google.android.exoplayer2.transformer">DefaultEncoderFactory</a></li>
<li><a href="com/google/android/exoplayer2/transformer/DefaultEncoderFactory.Builder.html" title="class in com.google.android.exoplayer2.transformer">DefaultEncoderFactory.Builder</a></li>
<li><a href="com/google/android/exoplayer2/extractor/DefaultExtractorInput.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorInput</a></li>
<li><a href="com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorsFactory</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/DefaultHlsDataSourceFactory.html" title="class in com.google.android.exoplayer2.source.hls">DefaultHlsDataSourceFactory</a></li>
@ -380,6 +389,8 @@
<li><a href="com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.html" title="class in com.google.android.exoplayer2.ext.media2">DefaultMediaItemConverter</a></li>
<li><a href="com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source">DefaultMediaSourceFactory</a></li>
<li><a href="com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">DefaultMediaSourceFactory.AdsLoaderProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/DefaultMuxer.html" title="class in com.google.android.exoplayer2.transformer">DefaultMuxer</a></li>
<li><a href="com/google/android/exoplayer2/transformer/DefaultMuxer.Factory.html" title="class in com.google.android.exoplayer2.transformer">DefaultMuxer.Factory</a></li>
<li><a href="com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.html" title="class in com.google.android.exoplayer2.analytics">DefaultPlaybackSessionManager</a></li>
<li><a href="com/google/android/exoplayer2/DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a></li>
<li><a href="com/google/android/exoplayer2/DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">DefaultRenderersFactory.ExtensionRendererMode</a></li>
@ -400,6 +411,7 @@
<li><a href="com/google/android/exoplayer2/source/dash/manifest/Descriptor.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Descriptor</a></li>
<li><a href="com/google/android/exoplayer2/DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a></li>
<li><a href="com/google/android/exoplayer2/DeviceInfo.PlaybackType.html" title="annotation in com.google.android.exoplayer2">DeviceInfo.PlaybackType</a></li>
<li><a href="com/google/android/exoplayer2/transformer/DeviceMappedEncoderBitrateProvider.html" title="class in com.google.android.exoplayer2.transformer">DeviceMappedEncoderBitrateProvider</a></li>
<li><a href="com/google/android/exoplayer2/video/DolbyVisionConfig.html" title="class in com.google.android.exoplayer2.video">DolbyVisionConfig</a></li>
<li><a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline">Download</a></li>
<li><a href="com/google/android/exoplayer2/offline/Download.FailureReason.html" title="annotation in com.google.android.exoplayer2.offline">Download.FailureReason</a></li>
@ -449,12 +461,13 @@
<li><a href="com/google/android/exoplayer2/extractor/ts/DvbSubtitleReader.html" title="class in com.google.android.exoplayer2.extractor.ts">DvbSubtitleReader</a></li>
<li><a href="com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.html" title="interface in com.google.android.exoplayer2.extractor.mkv"><span class="interfaceName">EbmlProcessor</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.ElementType.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">EbmlProcessor.ElementType</a></li>
<li><a href="com/google/android/exoplayer2/util/Effect.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">Effect</span></a></li>
<li><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.html" title="class in com.google.android.exoplayer2.util">EGLSurfaceTexture</a></li>
<li><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.GlException.html" title="class in com.google.android.exoplayer2.util">EGLSurfaceTexture.GlException</a></li>
<li><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.SecureMode.html" title="annotation in com.google.android.exoplayer2.util">EGLSurfaceTexture.SecureMode</a></li>
<li><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.TextureImageListener.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">EGLSurfaceTexture.TextureImageListener</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/ElementaryStreamReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><span class="interfaceName">ElementaryStreamReader</span></a></li>
<li><a href="com/google/android/exoplayer2/source/EmptySampleStream.html" title="class in com.google.android.exoplayer2.source">EmptySampleStream</a></li>
<li><a href="com/google/android/exoplayer2/transformer/EncoderBitrateProvider.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">EncoderBitrateProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/EncoderSelector.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">EncoderSelector</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/EncoderUtil.html" title="class in com.google.android.exoplayer2.transformer">EncoderUtil</a></li>
<li><a href="com/google/android/exoplayer2/util/ErrorMessageProvider.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">ErrorMessageProvider</span></a></li>
@ -588,7 +601,11 @@
<li><a href="com/google/android/exoplayer2/source/ForwardingTimeline.html" title="class in com.google.android.exoplayer2.source">ForwardingTimeline</a></li>
<li><a href="com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp4">FragmentedMp4Extractor</a></li>
<li><a href="com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mp4">FragmentedMp4Extractor.Flags</a></li>
<li><a href="com/google/android/exoplayer2/transformer/FrameProcessingException.html" title="class in com.google.android.exoplayer2.transformer">FrameProcessingException</a></li>
<li><a href="com/google/android/exoplayer2/util/FrameInfo.html" title="class in com.google.android.exoplayer2.util">FrameInfo</a></li>
<li><a href="com/google/android/exoplayer2/util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></li>
<li><a href="com/google/android/exoplayer2/util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">FrameProcessor</span></a></li>
<li><a href="com/google/android/exoplayer2/util/FrameProcessor.Factory.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">FrameProcessor.Factory</span></a></li>
<li><a href="com/google/android/exoplayer2/util/FrameProcessor.Listener.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">FrameProcessor.Listener</span></a></li>
<li><a href="com/google/android/exoplayer2/drm/FrameworkCryptoConfig.html" title="class in com.google.android.exoplayer2.drm">FrameworkCryptoConfig</a></li>
<li><a href="com/google/android/exoplayer2/drm/FrameworkMediaDrm.html" title="class in com.google.android.exoplayer2.drm">FrameworkMediaDrm</a></li>
<li><a href="com/google/android/exoplayer2/extractor/GaplessInfoHolder.html" title="class in com.google.android.exoplayer2.extractor">GaplessInfoHolder</a></li>
@ -596,9 +613,15 @@
<li><a href="com/google/android/exoplayer2/ext/av1/Gav1DecoderException.html" title="class in com.google.android.exoplayer2.ext.av1">Gav1DecoderException</a></li>
<li><a href="com/google/android/exoplayer2/ext/av1/Gav1Library.html" title="class in com.google.android.exoplayer2.ext.av1">Gav1Library</a></li>
<li><a href="com/google/android/exoplayer2/metadata/id3/GeobFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">GeobFrame</a></li>
<li><a href="com/google/android/exoplayer2/transformer/GlEffect.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">GlEffect</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">GlMatrixTransformation</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/GlEffect.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlEffect</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor</a></li>
<li><a href="com/google/android/exoplayer2/effect/GlEffectsFrameProcessor.Factory.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor.Factory</a></li>
<li><a href="com/google/android/exoplayer2/effect/GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlMatrixTransformation</span></a></li>
<li><a href="com/google/android/exoplayer2/util/GlProgram.html" title="class in com.google.android.exoplayer2.util">GlProgram</a></li>
<li><a href="com/google/android/exoplayer2/effect/GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlTextureProcessor</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/GlTextureProcessor.ErrorListener.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlTextureProcessor.ErrorListener</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/GlTextureProcessor.InputListener.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlTextureProcessor.InputListener</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/GlTextureProcessor.OutputListener.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">GlTextureProcessor.OutputListener</span></a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.html" title="class in com.google.android.exoplayer2.util">GlUtil</a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.GlException.html" title="class in com.google.android.exoplayer2.util">GlUtil.GlException</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/H262Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H262Reader</a></li>
@ -644,6 +667,8 @@
<li><a href="com/google/android/exoplayer2/text/span/HorizontalTextInVerticalContextSpan.html" title="class in com.google.android.exoplayer2.text.span">HorizontalTextInVerticalContextSpan</a></li>
<li><a href="com/google/android/exoplayer2/testutil/HostActivity.html" title="class in com.google.android.exoplayer2.testutil">HostActivity</a></li>
<li><a href="com/google/android/exoplayer2/testutil/HostActivity.HostedTest.html" title="interface in com.google.android.exoplayer2.testutil"><span class="interfaceName">HostActivity.HostedTest</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/HslAdjustment.html" title="class in com.google.android.exoplayer2.effect">HslAdjustment</a></li>
<li><a href="com/google/android/exoplayer2/effect/HslAdjustment.Builder.html" title="class in com.google.android.exoplayer2.effect">HslAdjustment.Builder</a></li>
<li><a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">HttpDataSource</span></a></li>
<li><a href="com/google/android/exoplayer2/upstream/HttpDataSource.BaseFactory.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.BaseFactory</a></li>
<li><a href="com/google/android/exoplayer2/upstream/HttpDataSource.CleartextNotPermittedException.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.CleartextNotPermittedException</a></li>
@ -683,6 +708,7 @@
<li><a href="com/google/android/exoplayer2/extractor/ts/LatmReader.html" title="class in com.google.android.exoplayer2.extractor.ts">LatmReader</a></li>
<li><a href="com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.html" title="class in com.google.android.exoplayer2.ext.leanback">LeanbackPlayerAdapter</a></li>
<li><a href="com/google/android/exoplayer2/upstream/cache/LeastRecentlyUsedCacheEvictor.html" title="class in com.google.android.exoplayer2.upstream.cache">LeastRecentlyUsedCacheEvictor</a></li>
<li><a href="com/google/android/exoplayer2/LegacyMediaPlayerWrapper.html" title="class in com.google.android.exoplayer2">LegacyMediaPlayerWrapper</a></li>
<li><a href="com/google/android/exoplayer2/ext/flac/LibflacAudioRenderer.html" title="class in com.google.android.exoplayer2.ext.flac">LibflacAudioRenderer</a></li>
<li><a href="com/google/android/exoplayer2/ext/av1/Libgav1VideoRenderer.html" title="class in com.google.android.exoplayer2.ext.av1">Libgav1VideoRenderer</a></li>
<li><a href="com/google/android/exoplayer2/ext/opus/LibopusAudioRenderer.html" title="class in com.google.android.exoplayer2.ext.opus">LibopusAudioRenderer</a></li>
@ -720,7 +746,7 @@
<li><a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.PrepareListener.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MaskingMediaPeriod.PrepareListener</span></a></li>
<li><a href="com/google/android/exoplayer2/source/MaskingMediaSource.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/MaskingMediaSource.PlaceholderTimeline.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource.PlaceholderTimeline</a></li>
<li><a href="com/google/android/exoplayer2/transformer/MatrixTransformation.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">MatrixTransformation</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">MatrixTransformation</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.html" title="class in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor</a></li>
<li><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor.Flags</a></li>
<li><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.Track.html" title="class in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor.Track</a></li>
@ -823,6 +849,9 @@
<li><a href="com/google/android/exoplayer2/extractor/ts/MpegAudioReader.html" title="class in com.google.android.exoplayer2.extractor.ts">MpegAudioReader</a></li>
<li><a href="com/google/android/exoplayer2/audio/MpegAudioUtil.html" title="class in com.google.android.exoplayer2.audio">MpegAudioUtil</a></li>
<li><a href="com/google/android/exoplayer2/audio/MpegAudioUtil.Header.html" title="class in com.google.android.exoplayer2.audio">MpegAudioUtil.Header</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Muxer.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Muxer</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/Muxer.Factory.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Muxer.Factory</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/Muxer.MuxerException.html" title="class in com.google.android.exoplayer2.transformer">Muxer.MuxerException</a></li>
<li><a href="com/google/android/exoplayer2/util/NalUnitUtil.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil</a></li>
<li><a href="com/google/android/exoplayer2/util/NalUnitUtil.H265SpsData.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil.H265SpsData</a></li>
<li><a href="com/google/android/exoplayer2/util/NalUnitUtil.PpsData.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil.PpsData</a></li>
@ -906,9 +935,8 @@
<li><a href="com/google/android/exoplayer2/ui/PlayerView.html" title="class in com.google.android.exoplayer2.ui">PlayerView</a></li>
<li><a href="com/google/android/exoplayer2/ui/PlayerView.ShowBuffering.html" title="annotation in com.google.android.exoplayer2.ui">PlayerView.ShowBuffering</a></li>
<li><a href="com/google/android/exoplayer2/extractor/PositionHolder.html" title="class in com.google.android.exoplayer2.extractor">PositionHolder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Presentation.Layout.html" title="annotation in com.google.android.exoplayer2.transformer">Presentation.Layout</a></li>
<li><a href="com/google/android/exoplayer2/effect/Presentation.html" title="class in com.google.android.exoplayer2.effect">Presentation</a></li>
<li><a href="com/google/android/exoplayer2/effect/Presentation.Layout.html" title="annotation in com.google.android.exoplayer2.effect">Presentation.Layout</a></li>
<li><a href="com/google/android/exoplayer2/upstream/PriorityDataSource.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSource</a></li>
<li><a href="com/google/android/exoplayer2/upstream/PriorityDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSourceFactory</a></li>
@ -958,6 +986,10 @@
<li><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.html" title="class in com.google.android.exoplayer2.upstream">ResolvingDataSource</a></li>
<li><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">ResolvingDataSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.Resolver.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">ResolvingDataSource.Resolver</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/RgbAdjustment.html" title="class in com.google.android.exoplayer2.effect">RgbAdjustment</a></li>
<li><a href="com/google/android/exoplayer2/effect/RgbAdjustment.Builder.html" title="class in com.google.android.exoplayer2.effect">RgbAdjustment.Builder</a></li>
<li><a href="com/google/android/exoplayer2/effect/RgbFilter.html" title="class in com.google.android.exoplayer2.effect">RgbFilter</a></li>
<li><a href="com/google/android/exoplayer2/effect/RgbMatrix.html" title="interface in com.google.android.exoplayer2.effect"><span class="interfaceName">RgbMatrix</span></a></li>
<li><a href="com/google/android/exoplayer2/robolectric/RobolectricUtil.html" title="class in com.google.android.exoplayer2.robolectric">RobolectricUtil</a></li>
<li><a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.html" title="class in com.google.android.exoplayer2.ext.rtmp">RtmpDataSource</a></li>
<li><a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.rtmp">RtmpDataSource.Factory</a></li>
@ -981,8 +1013,8 @@
<li><a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">SampleStream</span></a></li>
<li><a href="com/google/android/exoplayer2/source/SampleStream.ReadDataResult.html" title="annotation in com.google.android.exoplayer2.source">SampleStream.ReadDataResult</a></li>
<li><a href="com/google/android/exoplayer2/source/SampleStream.ReadFlags.html" title="annotation in com.google.android.exoplayer2.source">SampleStream.ReadFlags</a></li>
<li><a href="com/google/android/exoplayer2/transformer/ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.transformer">ScaleToFitTransformation</a></li>
<li><a href="com/google/android/exoplayer2/transformer/ScaleToFitTransformation.Builder.html" title="class in com.google.android.exoplayer2.transformer">ScaleToFitTransformation.Builder</a></li>
<li><a href="com/google/android/exoplayer2/effect/ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.effect">ScaleToFitTransformation</a></li>
<li><a href="com/google/android/exoplayer2/effect/ScaleToFitTransformation.Builder.html" title="class in com.google.android.exoplayer2.effect">ScaleToFitTransformation.Builder</a></li>
<li><a href="com/google/android/exoplayer2/scheduler/Scheduler.html" title="interface in com.google.android.exoplayer2.scheduler"><span class="interfaceName">Scheduler</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/SectionPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><span class="interfaceName">SectionPayloadReader</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/SectionReader.html" title="class in com.google.android.exoplayer2.extractor.ts">SectionReader</a></li>
@ -1025,6 +1057,9 @@
<li><a href="com/google/android/exoplayer2/source/SilenceMediaSource.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/SilenceMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">SilenceSkippingAudioProcessor</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a></li>
<li><a href="com/google/android/exoplayer2/SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></li>
<li><a href="com/google/android/exoplayer2/upstream/cache/SimpleCache.html" title="class in com.google.android.exoplayer2.upstream.cache">SimpleCache</a></li>
<li><a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="class in com.google.android.exoplayer2.decoder">SimpleDecoder</a></li>
<li><a href="com/google/android/exoplayer2/decoder/SimpleDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">SimpleDecoderOutputBuffer</a></li>
@ -1032,12 +1067,14 @@
<li><a href="com/google/android/exoplayer2/SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></li>
<li><a href="com/google/android/exoplayer2/metadata/SimpleMetadataDecoder.html" title="class in com.google.android.exoplayer2.metadata">SimpleMetadataDecoder</a></li>
<li><a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text">SimpleSubtitleDecoder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">SingleFrameGlTextureProcessor</span></a></li>
<li><a href="com/google/android/exoplayer2/effect/SingleColorLut.html" title="class in com.google.android.exoplayer2.effect">SingleColorLut</a></li>
<li><a href="com/google/android/exoplayer2/effect/SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html" title="class in com.google.android.exoplayer2.source.ads">SinglePeriodAdTimeline</a></li>
<li><a href="com/google/android/exoplayer2/source/SinglePeriodTimeline.html" title="class in com.google.android.exoplayer2.source">SinglePeriodTimeline</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">SingleSampleMediaChunk</a></li>
<li><a href="com/google/android/exoplayer2/source/SingleSampleMediaSource.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a></li>
<li><a href="com/google/android/exoplayer2/upstream/SlidingPercentile.html" title="class in com.google.android.exoplayer2.upstream">SlidingPercentile</a></li>
<li><a href="com/google/android/exoplayer2/metadata/mp4/SlowMotionData.html" title="class in com.google.android.exoplayer2.metadata.mp4">SlowMotionData</a></li>
<li><a href="com/google/android/exoplayer2/metadata/mp4/SlowMotionData.Segment.html" title="class in com.google.android.exoplayer2.metadata.mp4">SlowMotionData.Segment</a></li>
@ -1103,6 +1140,7 @@
<li><a href="com/google/android/exoplayer2/text/SubtitleOutputBuffer.html" title="class in com.google.android.exoplayer2.text">SubtitleOutputBuffer</a></li>
<li><a href="com/google/android/exoplayer2/ui/SubtitleView.html" title="class in com.google.android.exoplayer2.ui">SubtitleView</a></li>
<li><a href="com/google/android/exoplayer2/ui/SubtitleView.ViewType.html" title="annotation in com.google.android.exoplayer2.ui">SubtitleView.ViewType</a></li>
<li><a href="com/google/android/exoplayer2/util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util">SurfaceInfo</a></li>
<li><a href="com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html" title="class in com.google.android.exoplayer2.mediacodec">SynchronousMediaCodecAdapter</a></li>
<li><a href="com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.Factory.html" title="class in com.google.android.exoplayer2.mediacodec">SynchronousMediaCodecAdapter.Factory</a></li>
<li><a href="com/google/android/exoplayer2/util/SystemClock.html" title="class in com.google.android.exoplayer2.util">SystemClock</a></li>
@ -1122,6 +1160,7 @@
<li><a href="com/google/android/exoplayer2/metadata/id3/TextInformationFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">TextInformationFrame</a></li>
<li><a href="com/google/android/exoplayer2/text/TextOutput.html" title="interface in com.google.android.exoplayer2.text"><span class="interfaceName">TextOutput</span></a></li>
<li><a href="com/google/android/exoplayer2/text/TextRenderer.html" title="class in com.google.android.exoplayer2.text">TextRenderer</a></li>
<li><a href="com/google/android/exoplayer2/effect/TextureInfo.html" title="class in com.google.android.exoplayer2.effect">TextureInfo</a></li>
<li><a href="com/google/android/exoplayer2/ThumbRating.html" title="class in com.google.android.exoplayer2">ThumbRating</a></li>
<li><a href="com/google/android/exoplayer2/ui/TimeBar.html" title="interface in com.google.android.exoplayer2.ui"><span class="interfaceName">TimeBar</span></a></li>
<li><a href="com/google/android/exoplayer2/ui/TimeBar.OnScrubListener.html" title="interface in com.google.android.exoplayer2.ui"><span class="interfaceName">TimeBar.OnScrubListener</span></a></li>
@ -1176,7 +1215,6 @@
<li><a href="com/google/android/exoplayer2/transformer/TransformationResult.Builder.html" title="class in com.google.android.exoplayer2.transformer">TransformationResult.Builder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Transformer.html" title="class in com.google.android.exoplayer2.transformer">Transformer</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Transformer.Builder.html" title="class in com.google.android.exoplayer2.transformer">Transformer.Builder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Transformer.DebugViewProvider.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Transformer.DebugViewProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/Transformer.Listener.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Transformer.Listener</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/Transformer.ProgressState.html" title="annotation in com.google.android.exoplayer2.transformer">Transformer.ProgressState</a></li>
<li><a href="com/google/android/exoplayer2/extractor/TrueHdSampleRechunker.html" title="class in com.google.android.exoplayer2.extractor">TrueHdSampleRechunker</a></li>
@ -1240,6 +1278,7 @@
<li><a href="com/google/android/exoplayer2/drm/WidevineUtil.html" title="class in com.google.android.exoplayer2.drm">WidevineUtil</a></li>
<li><a href="com/google/android/exoplayer2/ext/workmanager/WorkManagerScheduler.html" title="class in com.google.android.exoplayer2.ext.workmanager">WorkManagerScheduler</a></li>
<li><a href="com/google/android/exoplayer2/ext/workmanager/WorkManagerScheduler.SchedulerWorker.html" title="class in com.google.android.exoplayer2.ext.workmanager">WorkManagerScheduler.SchedulerWorker</a></li>
<li><a href="com/google/android/exoplayer2/source/WrappingMediaSource.html" title="class in com.google.android.exoplayer2.source">WrappingMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/offline/WritableDownloadIndex.html" title="interface in com.google.android.exoplayer2.offline"><span class="interfaceName">WritableDownloadIndex</span></a></li>
<li><a href="com/google/android/exoplayer2/util/XmlPullParserUtil.html" title="class in com.google.android.exoplayer2.util">XmlPullParserUtil</a></li>
</ul>

View File

@ -128,302 +128,306 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/effect/package-summary.html">com.google.android.exoplayer2.effect</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/av1/package-summary.html">com.google.android.exoplayer2.ext.av1</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/cast/package-summary.html">com.google.android.exoplayer2.ext.cast</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/cronet/package-summary.html">com.google.android.exoplayer2.ext.cronet</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/ffmpeg/package-summary.html">com.google.android.exoplayer2.ext.ffmpeg</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/flac/package-summary.html">com.google.android.exoplayer2.ext.flac</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/ima/package-summary.html">com.google.android.exoplayer2.ext.ima</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/leanback/package-summary.html">com.google.android.exoplayer2.ext.leanback</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/media2/package-summary.html">com.google.android.exoplayer2.ext.media2</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/mediasession/package-summary.html">com.google.android.exoplayer2.ext.mediasession</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/okhttp/package-summary.html">com.google.android.exoplayer2.ext.okhttp</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/opus/package-summary.html">com.google.android.exoplayer2.ext.opus</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/rtmp/package-summary.html">com.google.android.exoplayer2.ext.rtmp</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/vp9/package-summary.html">com.google.android.exoplayer2.ext.vp9</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ext/workmanager/package-summary.html">com.google.android.exoplayer2.ext.workmanager</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/package-summary.html">com.google.android.exoplayer2.extractor</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/amr/package-summary.html">com.google.android.exoplayer2.extractor.amr</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/avi/package-summary.html">com.google.android.exoplayer2.extractor.avi</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/flac/package-summary.html">com.google.android.exoplayer2.extractor.flac</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/flv/package-summary.html">com.google.android.exoplayer2.extractor.flv</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/jpeg/package-summary.html">com.google.android.exoplayer2.extractor.jpeg</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/mkv/package-summary.html">com.google.android.exoplayer2.extractor.mkv</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/mp3/package-summary.html">com.google.android.exoplayer2.extractor.mp3</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/mp4/package-summary.html">com.google.android.exoplayer2.extractor.mp4</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/ogg/package-summary.html">com.google.android.exoplayer2.extractor.ogg</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/ts/package-summary.html">com.google.android.exoplayer2.extractor.ts</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/extractor/wav/package-summary.html">com.google.android.exoplayer2.extractor.wav</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/mediacodec/package-summary.html">com.google.android.exoplayer2.mediacodec</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/package-summary.html">com.google.android.exoplayer2.metadata</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/dvbsi/package-summary.html">com.google.android.exoplayer2.metadata.dvbsi</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/emsg/package-summary.html">com.google.android.exoplayer2.metadata.emsg</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/flac/package-summary.html">com.google.android.exoplayer2.metadata.flac</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/icy/package-summary.html">com.google.android.exoplayer2.metadata.icy</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/id3/package-summary.html">com.google.android.exoplayer2.metadata.id3</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/mp4/package-summary.html">com.google.android.exoplayer2.metadata.mp4</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/scte35/package-summary.html">com.google.android.exoplayer2.metadata.scte35</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/metadata/vorbis/package-summary.html">com.google.android.exoplayer2.metadata.vorbis</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/offline/package-summary.html">com.google.android.exoplayer2.offline</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/robolectric/package-summary.html">com.google.android.exoplayer2.robolectric</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/scheduler/package-summary.html">com.google.android.exoplayer2.scheduler</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/package-summary.html">com.google.android.exoplayer2.source</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/ads/package-summary.html">com.google.android.exoplayer2.source.ads</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/chunk/package-summary.html">com.google.android.exoplayer2.source.chunk</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/dash/package-summary.html">com.google.android.exoplayer2.source.dash</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/dash/manifest/package-summary.html">com.google.android.exoplayer2.source.dash.manifest</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/dash/offline/package-summary.html">com.google.android.exoplayer2.source.dash.offline</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/hls/package-summary.html">com.google.android.exoplayer2.source.hls</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/hls/offline/package-summary.html">com.google.android.exoplayer2.source.hls.offline</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/hls/playlist/package-summary.html">com.google.android.exoplayer2.source.hls.playlist</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/mediaparser/package-summary.html">com.google.android.exoplayer2.source.mediaparser</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/rtsp/package-summary.html">com.google.android.exoplayer2.source.rtsp</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/rtsp/reader/package-summary.html">com.google.android.exoplayer2.source.rtsp.reader</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/smoothstreaming/package-summary.html">com.google.android.exoplayer2.source.smoothstreaming</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/package-summary.html">com.google.android.exoplayer2.source.smoothstreaming.manifest</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/smoothstreaming/offline/package-summary.html">com.google.android.exoplayer2.source.smoothstreaming.offline</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/testutil/package-summary.html">com.google.android.exoplayer2.testutil</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/testutil/truth/package-summary.html">com.google.android.exoplayer2.testutil.truth</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/package-summary.html">com.google.android.exoplayer2.text</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/cea/package-summary.html">com.google.android.exoplayer2.text.cea</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/dvb/package-summary.html">com.google.android.exoplayer2.text.dvb</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/pgs/package-summary.html">com.google.android.exoplayer2.text.pgs</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/span/package-summary.html">com.google.android.exoplayer2.text.span</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/ssa/package-summary.html">com.google.android.exoplayer2.text.ssa</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/subrip/package-summary.html">com.google.android.exoplayer2.text.subrip</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/ttml/package-summary.html">com.google.android.exoplayer2.text.ttml</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/tx3g/package-summary.html">com.google.android.exoplayer2.text.tx3g</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/webvtt/package-summary.html">com.google.android.exoplayer2.text.webvtt</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/trackselection/package-summary.html">com.google.android.exoplayer2.trackselection</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/transformer/package-summary.html">com.google.android.exoplayer2.transformer</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ui/package-summary.html">com.google.android.exoplayer2.ui</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/package-summary.html">com.google.android.exoplayer2.upstream</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/cache/package-summary.html">com.google.android.exoplayer2.upstream.cache</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/crypto/package-summary.html">com.google.android.exoplayer2.upstream.crypto</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/util/package-summary.html">com.google.android.exoplayer2.util</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/video/package-summary.html">com.google.android.exoplayer2.video</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/video/spherical/package-summary.html">com.google.android.exoplayer2.video.spherical</a></th>
<td class="colLast">&nbsp;</td>
</tr>

File diff suppressed because one or more lines are too long

View File

@ -183,14 +183,14 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></h3>
<code><a href="Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
<code><a href="Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="Renderer.html#MSG_SET_PREFERRED_AUDIO_DEVICE">MSG_SET_PREFERRED_AUDIO_DEVICE</a>, <a href="Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.RendererCapabilities">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3>
<code><a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
<code><a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
</ul>
</li>
</ul>

View File

@ -117,7 +117,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<a href="https://developer.android.com/reference/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>)
public static @interface <span class="memberNameLabel">C.ColorSpace</span></pre>
<div class="block">Video colorspaces. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_SPACE_BT709"><code>C.COLOR_SPACE_BT709</code></a>, <a href="C.html#COLOR_SPACE_BT601"><code>C.COLOR_SPACE_BT601</code></a> or <a href="C.html#COLOR_SPACE_BT2020"><code>C.COLOR_SPACE_BT2020</code></a>.</div>
<div class="block">Video colorspaces. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_SPACE_BT601"><code>C.COLOR_SPACE_BT601</code></a>, <a href="C.html#COLOR_SPACE_BT709"><code>C.COLOR_SPACE_BT709</code></a> or <a href="C.html#COLOR_SPACE_BT2020"><code>C.COLOR_SPACE_BT2020</code></a>.</div>
</li>
</ul>
</div>

View File

@ -4262,20 +4262,6 @@ public static final&nbsp;int TYPE_OTHER</pre>
</dl>
</li>
</ul>
<a id="COLOR_SPACE_BT709">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COLOR_SPACE_BT709</h4>
<pre>public static final&nbsp;int COLOR_SPACE_BT709</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/android/media/MediaFormat.html#COLOR_STANDARD_BT709" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaFormat.COLOR_STANDARD_BT709</code></a>,
<a href="../../../../constant-values.html#com.google.android.exoplayer2.C.COLOR_SPACE_BT709">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="COLOR_SPACE_BT601">
<!-- -->
</a>
@ -4290,6 +4276,20 @@ public static final&nbsp;int TYPE_OTHER</pre>
</dl>
</li>
</ul>
<a id="COLOR_SPACE_BT709">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COLOR_SPACE_BT709</h4>
<pre>public static final&nbsp;int COLOR_SPACE_BT709</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/android/media/MediaFormat.html#COLOR_STANDARD_BT709" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaFormat.COLOR_STANDARD_BT709</code></a>,
<a href="../../../../constant-values.html#com.google.android.exoplayer2.C.COLOR_SPACE_BT709">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="COLOR_SPACE_BT2020">
<!-- -->
</a>

View File

@ -290,7 +290,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setFallbackMinPlaybackSpeed</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setFallbackMinPlaybackSpeed&#8203;(float&nbsp;fallbackMinPlaybackSpeed)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setFallbackMinPlaybackSpeed&#8203;(float&nbsp;fallbackMinPlaybackSpeed)</pre>
<div class="block">Sets the minimum playback speed that should be used if no minimum playback speed is defined
by the media.
@ -309,7 +310,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setFallbackMaxPlaybackSpeed</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setFallbackMaxPlaybackSpeed&#8203;(float&nbsp;fallbackMaxPlaybackSpeed)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setFallbackMaxPlaybackSpeed&#8203;(float&nbsp;fallbackMaxPlaybackSpeed)</pre>
<div class="block">Sets the maximum playback speed that should be used if no maximum playback speed is defined
by the media.
@ -328,7 +330,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMinUpdateIntervalMs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMinUpdateIntervalMs&#8203;(long&nbsp;minUpdateIntervalMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMinUpdateIntervalMs&#8203;(long&nbsp;minUpdateIntervalMs)</pre>
<div class="block">Sets the minimum interval between playback speed changes, in milliseconds.
<p>The default is <a href="DefaultLivePlaybackSpeedControl.html#DEFAULT_MIN_UPDATE_INTERVAL_MS"><code>DefaultLivePlaybackSpeedControl.DEFAULT_MIN_UPDATE_INTERVAL_MS</code></a>.</div>
@ -347,7 +350,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setProportionalControlFactor</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setProportionalControlFactor&#8203;(float&nbsp;proportionalControlFactor)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setProportionalControlFactor&#8203;(float&nbsp;proportionalControlFactor)</pre>
<div class="block">Sets the proportional control factor used to adjust the playback speed.
<p>The factor by which playback will be sped up is calculated as <code>1.0 +
@ -369,7 +373,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMaxLiveOffsetErrorMsForUnitSpeed</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMaxLiveOffsetErrorMsForUnitSpeed&#8203;(long&nbsp;maxLiveOffsetErrorMsForUnitSpeed)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMaxLiveOffsetErrorMsForUnitSpeed&#8203;(long&nbsp;maxLiveOffsetErrorMsForUnitSpeed)</pre>
<div class="block">Sets the maximum difference between the current live offset and the target live offset, in
milliseconds, for which unit speed (1.0f) is used.
@ -389,7 +394,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setTargetLiveOffsetIncrementOnRebufferMs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setTargetLiveOffsetIncrementOnRebufferMs&#8203;(long&nbsp;targetLiveOffsetIncrementOnRebufferMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setTargetLiveOffsetIncrementOnRebufferMs&#8203;(long&nbsp;targetLiveOffsetIncrementOnRebufferMs)</pre>
<div class="block">Sets the increment applied to the target live offset each time the player is rebuffering, in
milliseconds.</div>
<dl>
@ -407,7 +413,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMinPossibleLiveOffsetSmoothingFactor</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMinPossibleLiveOffsetSmoothingFactor&#8203;(float&nbsp;minPossibleLiveOffsetSmoothingFactor)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a>&nbsp;setMinPossibleLiveOffsetSmoothingFactor&#8203;(float&nbsp;minPossibleLiveOffsetSmoothingFactor)</pre>
<div class="block">Sets the smoothing factor when smoothing the minimum possible live offset that can be
achieved during playback.

View File

@ -286,7 +286,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAllocator</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setAllocator&#8203;(<a href="upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream">DefaultAllocator</a>&nbsp;allocator)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setAllocator&#8203;(<a href="upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream">DefaultAllocator</a>&nbsp;allocator)</pre>
<div class="block">Sets the <a href="upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream"><code>DefaultAllocator</code></a> used by the loader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -304,7 +305,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setBufferDurationsMs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setBufferDurationsMs&#8203;(int&nbsp;minBufferMs,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setBufferDurationsMs&#8203;(int&nbsp;minBufferMs,
int&nbsp;maxBufferMs,
int&nbsp;bufferForPlaybackMs,
int&nbsp;bufferForPlaybackAfterRebufferMs)</pre>
@ -333,7 +335,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setTargetBufferBytes</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setTargetBufferBytes&#8203;(int&nbsp;targetBufferBytes)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setTargetBufferBytes&#8203;(int&nbsp;targetBufferBytes)</pre>
<div class="block">Sets the target buffer size in bytes. If set to <a href="C.html#LENGTH_UNSET"><code>C.LENGTH_UNSET</code></a>, the target buffer
size will be calculated based on the selected tracks.</div>
<dl>
@ -352,7 +355,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPrioritizeTimeOverSizeThresholds</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setPrioritizeTimeOverSizeThresholds&#8203;(boolean&nbsp;prioritizeTimeOverSizeThresholds)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setPrioritizeTimeOverSizeThresholds&#8203;(boolean&nbsp;prioritizeTimeOverSizeThresholds)</pre>
<div class="block">Sets whether the load control prioritizes buffer time constraints over buffer size
constraints.</div>
<dl>
@ -372,7 +376,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setBackBuffer</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setBackBuffer&#8203;(int&nbsp;backBufferDurationMs,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a>&nbsp;setBackBuffer&#8203;(int&nbsp;backBufferDurationMs,
boolean&nbsp;retainBackBufferFromKeyframe)</pre>
<div class="block">Sets the back buffer duration, and whether the back buffer is retained from the previous
keyframe.</div>

View File

@ -569,7 +569,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setExtensionRendererMode</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setExtensionRendererMode&#8203;(@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setExtensionRendererMode&#8203;(@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode)</pre>
<div class="block">Sets the extension renderer mode, which determines if and how available extension renderers are
used. Note that extensions must be included in the application build for them to be considered
available.
@ -589,7 +590,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>forceEnableMediaCodecAsynchronousQueueing</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;forceEnableMediaCodecAsynchronousQueueing()</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;forceEnableMediaCodecAsynchronousQueueing()</pre>
<div class="block">Enables <a href="mediacodec/MediaCodecRenderer.html" title="class in com.google.android.exoplayer2.mediacodec"><code>MediaCodecRenderer</code></a> instances to
operate their <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> in asynchronous mode and perform asynchronous queueing.
@ -607,7 +609,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>forceDisableMediaCodecAsynchronousQueueing</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;forceDisableMediaCodecAsynchronousQueueing()</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;forceDisableMediaCodecAsynchronousQueueing()</pre>
<div class="block">Disables <a href="mediacodec/MediaCodecRenderer.html" title="class in com.google.android.exoplayer2.mediacodec"><code>MediaCodecRenderer</code></a> instances from
operating their <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> in asynchronous mode and perform asynchronous queueing.
<a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> instances will be operated synchronous mode.</div>
@ -623,7 +626,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled&#8203;(boolean&nbsp;enabled)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled&#8203;(boolean&nbsp;enabled)</pre>
<div class="block">Enable synchronizing codec interactions with asynchronous buffer queueing.
<p>This method is experimental, and will be renamed or removed in a future release.</div>
@ -642,7 +646,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setEnableDecoderFallback</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableDecoderFallback&#8203;(boolean&nbsp;enableDecoderFallback)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableDecoderFallback&#8203;(boolean&nbsp;enableDecoderFallback)</pre>
<div class="block">Sets whether to enable fallback to lower-priority decoders if decoder initialization fails.
This may result in using a decoder that is less efficient or slower than the primary decoder.</div>
<dl>
@ -660,7 +665,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setMediaCodecSelector</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setMediaCodecSelector&#8203;(<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setMediaCodecSelector&#8203;(<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector)</pre>
<div class="block">Sets a <a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecSelector</code></a> for use by <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> based renderers.
<p>The default value is <a href="mediacodec/MediaCodecSelector.html#DEFAULT"><code>MediaCodecSelector.DEFAULT</code></a>.</div>
@ -678,7 +684,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setEnableAudioFloatOutput</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioFloatOutput&#8203;(boolean&nbsp;enableFloatOutput)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioFloatOutput&#8203;(boolean&nbsp;enableFloatOutput)</pre>
<div class="block">Sets whether floating point audio should be output when possible.
<p>Enabling floating point output disables audio processing, but may allow for higher quality
@ -699,7 +706,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setEnableAudioOffload</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioOffload&#8203;(boolean&nbsp;enableOffload)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioOffload&#8203;(boolean&nbsp;enableOffload)</pre>
<div class="block">Sets whether audio should be played using the offload path.
<p>Audio offload disables ExoPlayer audio processing, but significantly reduces the energy
@ -725,7 +733,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setEnableAudioTrackPlaybackParams</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioTrackPlaybackParams&#8203;(boolean&nbsp;enableAudioTrackPlaybackParams)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setEnableAudioTrackPlaybackParams&#8203;(boolean&nbsp;enableAudioTrackPlaybackParams)</pre>
<div class="block">Sets whether to enable setting playback speed using <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(PlaybackParams)</code></a>, which is supported from API level
23, rather than using application-level audio speed adjustment. This setting has no effect on
builds before API level 23 (application-level speed adjustment will be used in all cases).
@ -751,7 +760,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<ul class="blockList">
<li class="blockList">
<h4>setAllowedVideoJoiningTimeMs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setAllowedVideoJoiningTimeMs&#8203;(long&nbsp;allowedVideoJoiningTimeMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setAllowedVideoJoiningTimeMs&#8203;(long&nbsp;allowedVideoJoiningTimeMs)</pre>
<div class="block">Sets the maximum duration for which video renderers can attempt to seamlessly join an ongoing
playback.

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":18,"i1":18};
var data = {"i0":18,"i1":18,"i2":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -151,12 +151,19 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onExperimentalOffloadedPlayback(boolean)">onExperimentalOffloadedPlayback</a></span>&#8203;(boolean&nbsp;offloadedPlayback)</code></th>
<td class="colLast">
<div class="block">Called when the value of <a href="https://developer.android.com/reference/android/media/AudioTrack.html#isOffloadedPlayback()" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.isOffloadedPlayback()</code></a> changes.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onExperimentalOffloadSchedulingEnabledChanged(boolean)">onExperimentalOffloadSchedulingEnabledChanged</a></span>&#8203;(boolean&nbsp;offloadSchedulingEnabled)</code></th>
<td class="colLast">
<div class="block">Called when the player has started or stopped offload scheduling using <a href="ExoPlayer.html#experimentalSetOffloadSchedulingEnabled(boolean)"><code>ExoPlayer.experimentalSetOffloadSchedulingEnabled(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<tr id="i2" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onExperimentalSleepingForOffloadChanged(boolean)">onExperimentalSleepingForOffloadChanged</a></span>&#8203;(boolean&nbsp;sleepingForOffload)</code></th>
<td class="colLast">
@ -195,7 +202,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<a id="onExperimentalSleepingForOffloadChanged(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>onExperimentalSleepingForOffloadChanged</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onExperimentalSleepingForOffloadChanged&#8203;(boolean&nbsp;sleepingForOffload)</pre>
@ -204,6 +211,21 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<p>This method is experimental, and will be renamed or removed in a future release.</div>
</li>
</ul>
<a id="onExperimentalOffloadedPlayback(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onExperimentalOffloadedPlayback</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onExperimentalOffloadedPlayback&#8203;(boolean&nbsp;offloadedPlayback)</pre>
<div class="block">Called when the value of <a href="https://developer.android.com/reference/android/media/AudioTrack.html#isOffloadedPlayback()" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.isOffloadedPlayback()</code></a> changes.
<p>This should not be generally required to be acted upon. But when offload is critical for
efficiency, or audio features (gapless, playback speed), this will let the app know.
<p>This method is experimental, and will be renamed or removed in a future release.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -587,7 +587,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>experimentalSetForegroundModeTimeoutMs</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;experimentalSetForegroundModeTimeoutMs&#8203;(long&nbsp;timeoutMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;experimentalSetForegroundModeTimeoutMs&#8203;(long&nbsp;timeoutMs)</pre>
<div class="block">Sets a limit on the time a call to <a href="ExoPlayer.html#setForegroundMode(boolean)"><code>ExoPlayer.setForegroundMode(boolean)</code></a> can spend. If a call to <a href="ExoPlayer.html#setForegroundMode(boolean)"><code>ExoPlayer.setForegroundMode(boolean)</code></a> takes more than <code>timeoutMs</code> milliseconds to complete, the player
will raise an error via <a href="Player.Listener.html#onPlayerError(com.google.android.exoplayer2.PlaybackException)"><code>Player.Listener.onPlayerError(com.google.android.exoplayer2.PlaybackException)</code></a>.
@ -604,7 +605,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRenderersFactory</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setRenderersFactory&#8203;(<a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setRenderersFactory&#8203;(<a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory)</pre>
<div class="block">Sets the <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> that will be used by the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -622,7 +624,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMediaSourceFactory</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setMediaSourceFactory&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setMediaSourceFactory&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</pre>
<div class="block">Sets the <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a> that will be used by the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -640,7 +643,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setTrackSelector</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setTrackSelector&#8203;(<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setTrackSelector&#8203;(<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector)</pre>
<div class="block">Sets the <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a> that will be used by the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -658,7 +662,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLoadControl</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLoadControl&#8203;(<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLoadControl&#8203;(<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl)</pre>
<div class="block">Sets the <a href="LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a> that will be used by the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -676,7 +681,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setBandwidthMeter</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setBandwidthMeter&#8203;(<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setBandwidthMeter&#8203;(<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter)</pre>
<div class="block">Sets the <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a> that will be used by the player.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -694,7 +700,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLooper</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper)</pre>
<div class="block">Sets the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> that must be used for all calls to the player and that is used to
call listeners on.</div>
<dl>
@ -713,7 +720,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAnalyticsCollector</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setAnalyticsCollector&#8203;(<a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setAnalyticsCollector&#8203;(<a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre>
<div class="block">Sets the <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> that will collect and forward all player events.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -731,7 +739,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPriorityTaskManager</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setPriorityTaskManager&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setPriorityTaskManager&#8203;(@Nullable
<a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a>&nbsp;priorityTaskManager)</pre>
<div class="block">Sets an <a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a> that will be used by the player.
@ -752,7 +761,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAudioAttributes</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setAudioAttributes&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setAudioAttributes&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
boolean&nbsp;handleAudioFocus)</pre>
<div class="block">Sets <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a> that will be used by the player and whether to handle audio
focus.
@ -775,7 +785,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setWakeMode</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setWakeMode&#8203;(<a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2">@WakeMode</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setWakeMode&#8203;(<a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2">@WakeMode</a>
@com.google.android.exoplayer2.C.WakeMode int&nbsp;wakeMode)</pre>
<div class="block">Sets the <a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2"><code>C.WakeMode</code></a> that will be used by the player.
@ -802,7 +813,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setHandleAudioBecomingNoisy</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setHandleAudioBecomingNoisy&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setHandleAudioBecomingNoisy&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</pre>
<div class="block">Sets whether the player should pause automatically when audio is rerouted from a headset to
device speakers. See the <a href="https://developer.android.com/guide/topics/media-apps/volume-and-earphones#becoming-noisy">
audio becoming noisy</a> documentation for more information.</div>
@ -823,7 +835,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSkipSilenceEnabled</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="block">Sets whether silences silences in the audio stream is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -841,7 +854,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setVideoScalingMode</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a>
@com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</pre>
<div class="block">Sets the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a> that will be used by the player.
@ -863,7 +877,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setVideoChangeFrameRateStrategy</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a>
@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</pre>
<div class="block">Sets a <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a> that will be used by the player when provided
with a video output <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.
@ -888,7 +903,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUseLazyPreparation</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setUseLazyPreparation&#8203;(boolean&nbsp;useLazyPreparation)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setUseLazyPreparation&#8203;(boolean&nbsp;useLazyPreparation)</pre>
<div class="block">Sets whether media sources should be initialized lazily.
<p>If false, all initial preparation steps (e.g., manifest loads) happen immediately. If
@ -910,7 +926,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSeekParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekParameters&#8203;(<a href="SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekParameters&#8203;(<a href="SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</pre>
<div class="block">Sets the parameters that control how seek operations are performed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -928,7 +945,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSeekBackIncrementMs</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekBackIncrementMs&#8203;(@IntRange(from=1L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekBackIncrementMs&#8203;(@IntRange(from=1L)
long&nbsp;seekBackIncrementMs)</pre>
<div class="block">Sets the <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> increment.</div>
<dl>
@ -948,7 +966,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSeekForwardIncrementMs</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekForwardIncrementMs&#8203;(@IntRange(from=1L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setSeekForwardIncrementMs&#8203;(@IntRange(from=1L)
long&nbsp;seekForwardIncrementMs)</pre>
<div class="block">Sets the <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> increment.</div>
<dl>
@ -968,7 +987,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setReleaseTimeoutMs</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setReleaseTimeoutMs&#8203;(long&nbsp;releaseTimeoutMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setReleaseTimeoutMs&#8203;(long&nbsp;releaseTimeoutMs)</pre>
<div class="block">Sets a timeout for calls to <a href="Player.html#release()"><code>Player.release()</code></a> and <a href="ExoPlayer.html#setForegroundMode(boolean)"><code>ExoPlayer.setForegroundMode(boolean)</code></a>.
<p>If a call to <a href="Player.html#release()"><code>Player.release()</code></a> or <a href="ExoPlayer.html#setForegroundMode(boolean)"><code>ExoPlayer.setForegroundMode(boolean)</code></a> takes more than <code>
@ -989,7 +1009,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setDetachSurfaceTimeoutMs</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setDetachSurfaceTimeoutMs&#8203;(long&nbsp;detachSurfaceTimeoutMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setDetachSurfaceTimeoutMs&#8203;(long&nbsp;detachSurfaceTimeoutMs)</pre>
<div class="block">Sets a timeout for detaching a surface from the player.
<p>If detaching a surface or replacing a surface takes more than <code>
@ -1010,7 +1031,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPauseAtEndOfMediaItems</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setPauseAtEndOfMediaItems&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setPauseAtEndOfMediaItems&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</pre>
<div class="block">Sets whether to pause playback at the end of each media item.
<p>This means the player will pause at the end of each window in the current <a href="Player.html#getCurrentTimeline()"><code>timeline</code></a>. Listeners will be informed by a call to <a href="Player.Listener.html#onPlayWhenReadyChanged(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)"><code>Player.Listener.onPlayWhenReadyChanged(boolean, int)</code></a> with the reason <a href="Player.html#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM"><code>Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</code></a> when this happens.</div>
@ -1030,7 +1052,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLivePlaybackSpeedControl</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLivePlaybackSpeedControl&#8203;(<a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a>&nbsp;livePlaybackSpeedControl)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setLivePlaybackSpeedControl&#8203;(<a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a>&nbsp;livePlaybackSpeedControl)</pre>
<div class="block">Sets the <a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2"><code>LivePlaybackSpeedControl</code></a> that will control the playback speed when playing
live streams, in order to maintain a steady target offset from the live stream edge.</div>
<dl>
@ -1049,7 +1072,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUsePlatformDiagnostics</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setUsePlatformDiagnostics&#8203;(boolean&nbsp;usePlatformDiagnostics)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setUsePlatformDiagnostics&#8203;(boolean&nbsp;usePlatformDiagnostics)</pre>
<div class="block">Sets whether the player reports diagnostics data to the Android platform.
<p>If enabled, the player will use the <a href="https://developer.android.com/reference/android/media/metrics/MediaMetricsManager.html" title="class or interface in android.media.metrics" class="externalLink" target="_top"><code>MediaMetricsManager</code></a> to
@ -1074,7 +1098,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setClock</h4>
<pre class="methodSignature">public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setClock&#8203;(<a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;clock)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a>&nbsp;setClock&#8203;(<a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;clock)</pre>
<div class="block">Sets the <a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> that will be used by the player. Should only be set for testing
purposes.</div>
<dl>

File diff suppressed because one or more lines are too long

View File

@ -457,7 +457,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setId</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setId&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setId&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id)</pre>
<div class="block">Sets <a href="Format.html#id"><code>Format.id</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -474,7 +475,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setId</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setId&#8203;(int&nbsp;id)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setId&#8203;(int&nbsp;id)</pre>
<div class="block">Sets <a href="Format.html#id"><code>Format.id</code></a> to <a href="https://developer.android.com/reference/java/lang/Integer.html#toString()" title="class or interface in java.lang" class="externalLink" target="_top"><code>Integer.toString(id)</code></a>. The default value
is <code>null</code>.</div>
<dl>
@ -491,7 +493,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLabel</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setLabel&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setLabel&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;label)</pre>
<div class="block">Sets <a href="Format.html#label"><code>Format.label</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -508,7 +511,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLanguage</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setLanguage&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setLanguage&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;language)</pre>
<div class="block">Sets <a href="Format.html#language"><code>Format.language</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -525,7 +529,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSelectionFlags</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSelectionFlags&#8203;(<a href="C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">@SelectionFlags</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSelectionFlags&#8203;(<a href="C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">@SelectionFlags</a>
@com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags)</pre>
<div class="block">Sets <a href="Format.html#selectionFlags"><code>Format.selectionFlags</code></a>. The default value is 0.</div>
<dl>
@ -542,7 +547,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRoleFlags</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setRoleFlags&#8203;(<a href="C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">@RoleFlags</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setRoleFlags&#8203;(<a href="C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">@RoleFlags</a>
@com.google.android.exoplayer2.C.RoleFlags int&nbsp;roleFlags)</pre>
<div class="block">Sets <a href="Format.html#roleFlags"><code>Format.roleFlags</code></a>. The default value is 0.</div>
<dl>
@ -559,7 +565,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAverageBitrate</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setAverageBitrate&#8203;(int&nbsp;averageBitrate)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setAverageBitrate&#8203;(int&nbsp;averageBitrate)</pre>
<div class="block">Sets <a href="Format.html#averageBitrate"><code>Format.averageBitrate</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -575,7 +582,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPeakBitrate</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPeakBitrate&#8203;(int&nbsp;peakBitrate)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPeakBitrate&#8203;(int&nbsp;peakBitrate)</pre>
<div class="block">Sets <a href="Format.html#peakBitrate"><code>Format.peakBitrate</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -591,7 +599,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setCodecs</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setCodecs&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setCodecs&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;codecs)</pre>
<div class="block">Sets <a href="Format.html#codecs"><code>Format.codecs</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -608,7 +617,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setMetadata&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setMetadata&#8203;(@Nullable
<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&nbsp;metadata)</pre>
<div class="block">Sets <a href="Format.html#metadata"><code>Format.metadata</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -625,7 +635,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setContainerMimeType</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setContainerMimeType&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setContainerMimeType&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;containerMimeType)</pre>
<div class="block">Sets <a href="Format.html#containerMimeType"><code>Format.containerMimeType</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -642,7 +653,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSampleMimeType</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSampleMimeType&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSampleMimeType&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;sampleMimeType)</pre>
<div class="block">Sets <a href="Format.html#sampleMimeType"><code>Format.sampleMimeType</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -659,7 +671,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMaxInputSize</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setMaxInputSize&#8203;(int&nbsp;maxInputSize)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setMaxInputSize&#8203;(int&nbsp;maxInputSize)</pre>
<div class="block">Sets <a href="Format.html#maxInputSize"><code>Format.maxInputSize</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -675,7 +688,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setInitializationData</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setInitializationData&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setInitializationData&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink" target="_top">List</a>&lt;byte[]&gt;&nbsp;initializationData)</pre>
<div class="block">Sets <a href="Format.html#initializationData"><code>Format.initializationData</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -692,7 +706,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setDrmInitData</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setDrmInitData&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setDrmInitData&#8203;(@Nullable
<a href="drm/DrmInitData.html" title="class in com.google.android.exoplayer2.drm">DrmInitData</a>&nbsp;drmInitData)</pre>
<div class="block">Sets <a href="Format.html#drmInitData"><code>Format.drmInitData</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -709,7 +724,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSubsampleOffsetUs</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSubsampleOffsetUs&#8203;(long&nbsp;subsampleOffsetUs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSubsampleOffsetUs&#8203;(long&nbsp;subsampleOffsetUs)</pre>
<div class="block">Sets <a href="Format.html#subsampleOffsetUs"><code>Format.subsampleOffsetUs</code></a>. The default value is <a href="Format.html#OFFSET_SAMPLE_RELATIVE"><code>Format.OFFSET_SAMPLE_RELATIVE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -725,7 +741,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setWidth</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setWidth&#8203;(int&nbsp;width)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setWidth&#8203;(int&nbsp;width)</pre>
<div class="block">Sets <a href="Format.html#width"><code>Format.width</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -741,7 +758,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setHeight</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setHeight&#8203;(int&nbsp;height)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setHeight&#8203;(int&nbsp;height)</pre>
<div class="block">Sets <a href="Format.html#height"><code>Format.height</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -757,7 +775,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setFrameRate</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setFrameRate&#8203;(float&nbsp;frameRate)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setFrameRate&#8203;(float&nbsp;frameRate)</pre>
<div class="block">Sets <a href="Format.html#frameRate"><code>Format.frameRate</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -773,7 +792,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRotationDegrees</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setRotationDegrees&#8203;(int&nbsp;rotationDegrees)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setRotationDegrees&#8203;(int&nbsp;rotationDegrees)</pre>
<div class="block">Sets <a href="Format.html#rotationDegrees"><code>Format.rotationDegrees</code></a>. The default value is 0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -789,7 +809,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPixelWidthHeightRatio</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPixelWidthHeightRatio&#8203;(float&nbsp;pixelWidthHeightRatio)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPixelWidthHeightRatio&#8203;(float&nbsp;pixelWidthHeightRatio)</pre>
<div class="block">Sets <a href="Format.html#pixelWidthHeightRatio"><code>Format.pixelWidthHeightRatio</code></a>. The default value is 1.0f.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -805,7 +826,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setProjectionData</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setProjectionData&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setProjectionData&#8203;(@Nullable
byte[]&nbsp;projectionData)</pre>
<div class="block">Sets <a href="Format.html#projectionData"><code>Format.projectionData</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -822,7 +844,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setStereoMode</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setStereoMode&#8203;(@com.google.android.exoplayer2.C.StereoMode int&nbsp;stereoMode)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setStereoMode&#8203;(@com.google.android.exoplayer2.C.StereoMode int&nbsp;stereoMode)</pre>
<div class="block">Sets <a href="Format.html#stereoMode"><code>Format.stereoMode</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -838,7 +861,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setColorInfo</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setColorInfo&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setColorInfo&#8203;(@Nullable
<a href="video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</a>&nbsp;colorInfo)</pre>
<div class="block">Sets <a href="Format.html#colorInfo"><code>Format.colorInfo</code></a>. The default value is <code>null</code>.</div>
<dl>
@ -855,7 +879,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setChannelCount</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setChannelCount&#8203;(int&nbsp;channelCount)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setChannelCount&#8203;(int&nbsp;channelCount)</pre>
<div class="block">Sets <a href="Format.html#channelCount"><code>Format.channelCount</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -871,7 +896,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSampleRate</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSampleRate&#8203;(int&nbsp;sampleRate)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setSampleRate&#8203;(int&nbsp;sampleRate)</pre>
<div class="block">Sets <a href="Format.html#sampleRate"><code>Format.sampleRate</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -887,7 +913,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPcmEncoding</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPcmEncoding&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setPcmEncoding&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding)</pre>
<div class="block">Sets <a href="Format.html#pcmEncoding"><code>Format.pcmEncoding</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -903,7 +930,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setEncoderDelay</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setEncoderDelay&#8203;(int&nbsp;encoderDelay)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setEncoderDelay&#8203;(int&nbsp;encoderDelay)</pre>
<div class="block">Sets <a href="Format.html#encoderDelay"><code>Format.encoderDelay</code></a>. The default value is 0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -919,7 +947,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setEncoderPadding</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setEncoderPadding&#8203;(int&nbsp;encoderPadding)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setEncoderPadding&#8203;(int&nbsp;encoderPadding)</pre>
<div class="block">Sets <a href="Format.html#encoderPadding"><code>Format.encoderPadding</code></a>. The default value is 0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -935,7 +964,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAccessibilityChannel</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setAccessibilityChannel&#8203;(int&nbsp;accessibilityChannel)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setAccessibilityChannel&#8203;(int&nbsp;accessibilityChannel)</pre>
<div class="block">Sets <a href="Format.html#accessibilityChannel"><code>Format.accessibilityChannel</code></a>. The default value is <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -951,7 +981,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setCryptoType</h4>
<pre class="methodSignature">public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setCryptoType&#8203;(@com.google.android.exoplayer2.C.CryptoType int&nbsp;cryptoType)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a>&nbsp;setCryptoType&#8203;(@com.google.android.exoplayer2.C.CryptoType int&nbsp;cryptoType)</pre>
<div class="block">Sets <a href="Format.html#cryptoType"><code>Format.cryptoType</code></a>. The default value is <a href="C.html#CRYPTO_TYPE_NONE"><code>C.CRYPTO_TYPE_NONE</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":42,"i2":10,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":41,"i13":41,"i14":41,"i15":41,"i16":41,"i17":41,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10};
var data = {"i0":10,"i1":42,"i2":10,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":41,"i13":41,"i14":41,"i15":41,"i16":41,"i17":41,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -764,18 +764,25 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle(boolean)">toBundle</a></span>&#8203;(boolean&nbsp;excludeMetadata)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representing the information stored in this object.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLogString(com.google.android.exoplayer2.Format)">toLogString</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
<div class="block">Returns a prettier <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink"><code>String</code></a> than <a href="#toString()" target="_top"><code>toString()</code></a>, intended for logging.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="Format.html" title="class in com.google.android.exoplayer2">Format</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withManifestFormatInfo(com.google.android.exoplayer2.Format)">withManifestFormatInfo</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;manifestFormat)</code></th>
<td class="colLast">&nbsp;</td>
@ -1627,7 +1634,7 @@ public&nbsp;<a href="Format.html" title="class in com.google.android.exoplayer2"
<a id="toBundle()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle()</pre>
@ -1639,6 +1646,17 @@ public&nbsp;<a href="Format.html" title="class in com.google.android.exoplayer2"
</dl>
</li>
</ul>
<a id="toBundle(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toBundle</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;toBundle&#8203;(boolean&nbsp;excludeMetadata)</pre>
<div class="block">Returns a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> representing the information stored in this object. If <code>
excludeMetadata</code> is true, <a href="#metadata">metadata</a> is excluded.</div>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":42,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":42,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":42,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":42,"i60":10,"i61":42,"i62":42,"i63":10,"i64":42,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":42,"i71":42,"i72":42,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":42,"i80":10,"i81":10,"i82":10,"i83":42,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":42,"i97":10,"i98":10,"i99":42,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":42};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":42,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":42,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":42,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":42,"i61":10,"i62":42,"i63":42,"i64":10,"i65":42,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":42,"i72":42,"i73":42,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":42,"i81":10,"i82":10,"i83":10,"i84":42,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":42,"i98":10,"i99":10,"i100":42,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":42};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -602,41 +602,48 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code><a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSurfaceSize()">getSurfaceSize</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#getSurfaceSize()"><code>Player.getSurfaceSize()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalBufferedDuration()">getTotalBufferedDuration</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#getTotalBufferedDuration()"><code>Player.getTotalBufferedDuration()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<tr id="i56" class="altColor">
<td class="colFirst"><code><a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackSelectionParameters()">getTrackSelectionParameters</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#getTrackSelectionParameters()"><code>Player.getTrackSelectionParameters()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<tr id="i57" class="rowColor">
<td class="colFirst"><code><a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoSize()">getVideoSize</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#getVideoSize()"><code>Player.getVideoSize()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<tr id="i58" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVolume()">getVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#getVolume()"><code>Player.getVolume()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWrappedPlayer()">getWrappedPlayer</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> to which operations are forwarded.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<tr id="i60" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNext()">hasNext</a></span>()</code></th>
<td class="colLast">
@ -645,14 +652,14 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i60" class="altColor">
<tr id="i61" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNextMediaItem()">hasNextMediaItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#hasNextMediaItem()"><code>Player.hasNextMediaItem()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<tr id="i62" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNextWindow()">hasNextWindow</a></span>()</code></th>
<td class="colLast">
@ -661,7 +668,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i62" class="altColor">
<tr id="i63" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPrevious()">hasPrevious</a></span>()</code></th>
<td class="colLast">
@ -670,14 +677,14 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<tr id="i64" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPreviousMediaItem()">hasPreviousMediaItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#hasPreviousMediaItem()"><code>Player.hasPreviousMediaItem()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<tr id="i65" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPreviousWindow()">hasPreviousWindow</a></span>()</code></th>
<td class="colLast">
@ -686,42 +693,42 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increaseDeviceVolume()">increaseDeviceVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#increaseDeviceVolume()"><code>Player.increaseDeviceVolume()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<tr id="i67" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a></span>&#8203;(@com.google.android.exoplayer2.Player.Command int&nbsp;command)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)"><code>Player.isCommandAvailable(int)</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<tr id="i68" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isCurrentMediaItemDynamic()"><code>Player.isCurrentMediaItemDynamic()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<tr id="i69" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemLive()">isCurrentMediaItemLive</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isCurrentMediaItemLive()"><code>Player.isCurrentMediaItemLive()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<tr id="i70" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isCurrentMediaItemSeekable()"><code>Player.isCurrentMediaItemSeekable()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<tr id="i71" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowDynamic()">isCurrentWindowDynamic</a></span>()</code></th>
<td class="colLast">
@ -730,7 +737,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<tr id="i72" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowLive()">isCurrentWindowLive</a></span>()</code></th>
<td class="colLast">
@ -739,7 +746,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i72" class="altColor">
<tr id="i73" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowSeekable()">isCurrentWindowSeekable</a></span>()</code></th>
<td class="colLast">
@ -748,35 +755,35 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<tr id="i74" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeviceMuted()">isDeviceMuted</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isDeviceMuted()"><code>Player.isDeviceMuted()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<tr id="i75" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLoading()">isLoading</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isLoading()"><code>Player.isLoading()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<tr id="i76" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlaying()">isPlaying</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isPlaying()"><code>Player.isPlaying()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<tr id="i77" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlayingAd()">isPlayingAd</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#isPlayingAd()"><code>Player.isPlayingAd()</code></a> on the delegate and returns the result.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItem(int,int)">moveMediaItem</a></span>&#8203;(int&nbsp;currentIndex,
int&nbsp;newIndex)</code></th>
@ -784,7 +791,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#moveMediaItem(int,int)"><code>Player.moveMediaItem(int, int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItems(int,int,int)">moveMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex,
@ -793,7 +800,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#moveMediaItems(int,int,int)"><code>Player.moveMediaItems(int, int, int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#next()">next</a></span>()</code></th>
<td class="colLast">
@ -802,28 +809,28 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i80" class="altColor">
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pause()">pause</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#pause()"><code>Player.pause()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#play()">play</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#play()"><code>Player.play()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare()">prepare</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#prepare()"><code>Player.prepare()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#previous()">previous</a></span>()</code></th>
<td class="colLast">
@ -832,28 +839,28 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i84" class="altColor">
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#release()"><code>Player.release()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a></span>&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.removeListener(Listener)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItem(int)">removeMediaItem</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#removeMediaItem(int)"><code>Player.removeMediaItem(int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItems(int,int)">removeMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex)</code></th>
@ -861,21 +868,21 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#removeMediaItems(int,int)"><code>Player.removeMediaItems(int, int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekBack()">seekBack</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekBack()"><code>Player.seekBack()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekForward()">seekForward</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekForward()"><code>Player.seekForward()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
@ -883,42 +890,42 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#seekTo(int,long)"><code>Player.seekTo(int, long)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(long)">seekTo</a></span>&#8203;(long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekTo(long)"><code>Player.seekTo(long)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToDefaultPosition()">seekToDefaultPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToDefaultPosition()"><code>Player.seekToDefaultPosition()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToDefaultPosition(int)">seekToDefaultPosition</a></span>&#8203;(int&nbsp;mediaItemIndex)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToDefaultPosition(int)"><code>Player.seekToDefaultPosition(int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNext()">seekToNext</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToNext()"><code>Player.seekToNext()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNextMediaItem()">seekToNextMediaItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToNextMediaItem()"><code>Player.seekToNextMediaItem()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNextWindow()">seekToNextWindow</a></span>()</code></th>
<td class="colLast">
@ -927,21 +934,21 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPrevious()">seekToPrevious</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToPrevious()"><code>Player.seekToPrevious()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPreviousMediaItem()">seekToPreviousMediaItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#seekToPreviousMediaItem()"><code>Player.seekToPreviousMediaItem()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPreviousWindow()">seekToPreviousWindow</a></span>()</code></th>
<td class="colLast">
@ -950,28 +957,28 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
</div>
</td>
</tr>
<tr id="i100" class="altColor">
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceMuted(boolean)">setDeviceMuted</a></span>&#8203;(boolean&nbsp;muted)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setDeviceMuted(boolean)"><code>Player.setDeviceMuted(boolean)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceVolume(int)">setDeviceVolume</a></span>&#8203;(int&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setDeviceVolume(int)"><code>Player.setDeviceVolume(int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem)"><code>Player.setMediaItem(MediaItem)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem,
boolean&nbsp;resetPosition)</code></th>
@ -979,7 +986,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)"><code>Player.setMediaItem(MediaItem, boolean)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem,
long&nbsp;startPositionMs)</code></th>
@ -987,14 +994,14 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)"><code>Player.setMediaItem(MediaItem, long)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setMediaItems(java.util.List)"><code>Player.setMediaItems(List)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</code></th>
@ -1002,7 +1009,7 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#setMediaItems(java.util.List,boolean)"><code>Player.setMediaItems(List, boolean)</code></a> ()} on the delegate.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,int,long)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
int&nbsp;startIndex,
@ -1011,98 +1018,98 @@ implements <a href="Player.html" title="interface in com.google.android.exoplaye
<div class="block">Calls <a href="Player.html#setMediaItems(java.util.List,int,long)"><code>Player.setMediaItems(List, int, long)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackSpeed(float)">setPlaybackSpeed</a></span>&#8203;(float&nbsp;speed)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setPlaybackSpeed(float)"><code>Player.setPlaybackSpeed(float)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)"><code>Player.setPlaylistMetadata(MediaMetadata)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setPlayWhenReady(boolean)"><code>Player.setPlayWhenReady(boolean)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a></span>&#8203;(@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)"><code>Player.setRepeatMode(int)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></span>&#8203;(boolean&nbsp;shuffleModeEnabled)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setShuffleModeEnabled(boolean)"><code>Player.setShuffleModeEnabled(boolean)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a></span>&#8203;(<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;parameters)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)"><code>Player.setTrackSelectionParameters(TrackSelectionParameters)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurface(android.view.Surface)">setVideoSurface</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setVideoSurface(android.view.Surface)"><code>Player.setVideoSurface(Surface)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setVideoSurfaceHolder(android.view.SurfaceHolder)"><code>Player.setVideoSurfaceHolder(SurfaceHolder)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setVideoSurfaceView(android.view.SurfaceView)"><code>Player.setVideoSurfaceView(SurfaceView)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setVideoTextureView(android.view.TextureView)"><code>Player.setVideoTextureView(TextureView)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#setVolume(float)"><code>Player.setVolume(float)</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
<td class="colLast">
<div class="block">Calls <a href="Player.html#stop()"><code>Player.stop()</code></a> on the delegate.</div>
</td>
</tr>
<tr id="i121" class="rowColor">
<tr id="i122" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(boolean)">stop</a></span>&#8203;(boolean&nbsp;reset)</code></th>
<td class="colLast">
@ -2842,6 +2849,22 @@ public&nbsp;boolean&nbsp;isCurrentWindowSeekable()</pre>
</dl>
</li>
</ul>
<a id="getSurfaceSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSurfaceSize</h4>
<pre class="methodSignature">public&nbsp;<a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a>&nbsp;getSurfaceSize()</pre>
<div class="block">Calls <a href="Player.html#getSurfaceSize()"><code>Player.getSurfaceSize()</code></a> on the delegate and returns the result.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getSurfaceSize()">getSurfaceSize</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onSurfaceSizeChanged(int,int)"><code>Player.Listener.onSurfaceSizeChanged(int, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="clearVideoSurface()">
<!-- -->
</a>

File diff suppressed because one or more lines are too long

View File

@ -252,7 +252,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAdTagUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.AdsConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration.Builder</a>&nbsp;setAdTagUri&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;adTagUri)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.AdsConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration.Builder</a>&nbsp;setAdTagUri&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;adTagUri)</pre>
<div class="block">Sets the ad tag URI to load.</div>
</li>
</ul>
@ -262,7 +263,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAdsId</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.AdsConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration.Builder</a>&nbsp;setAdsId&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.AdsConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration.Builder</a>&nbsp;setAdsId&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;adsId)</pre>
<div class="block">Sets the ads identifier.

View File

@ -556,7 +556,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMediaId</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMediaId&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mediaId)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMediaId&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mediaId)</pre>
<div class="block">Sets the optional media ID which identifies the media item.
<p>By default <a href="MediaItem.html#DEFAULT_MEDIA_ID"><code>MediaItem.DEFAULT_MEDIA_ID</code></a> is used.</div>
@ -568,7 +569,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;uri)</pre>
<div class="block">Sets the optional URI.
@ -582,7 +584,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</pre>
<div class="block">Sets the optional URI.
@ -596,7 +599,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMimeType</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMimeType&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMimeType&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType)</pre>
<div class="block">Sets the optional MIME type.
@ -615,7 +619,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setClippingConfiguration</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClippingConfiguration&#8203;(<a href="MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration</a>&nbsp;clippingConfiguration)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClippingConfiguration&#8203;(<a href="MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration</a>&nbsp;clippingConfiguration)</pre>
<div class="block">Sets the <a href="MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.ClippingConfiguration</code></a>, defaults to <a href="MediaItem.ClippingConfiguration.html#UNSET"><code>MediaItem.ClippingConfiguration.UNSET</code></a>.</div>
</li>
</ul>
@ -625,7 +630,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setClipStartPositionMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClipStartPositionMs&#8203;(@IntRange(from=0L)
long&nbsp;startPositionMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -639,7 +645,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setClipEndPositionMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClipEndPositionMs&#8203;(long&nbsp;endPositionMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setClippingConfiguration(com.google.android.exoplayer2.MediaItem.ClippingConfiguration)"><code>setClippingConfiguration(ClippingConfiguration)</code></a> and <a href="MediaItem.ClippingConfiguration.Builder.html#setEndPositionMs(long)"><code>MediaItem.ClippingConfiguration.Builder.setEndPositionMs(long)</code></a> instead.</div>
@ -652,7 +659,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setClipRelativeToLiveWindow</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClipRelativeToLiveWindow&#8203;(boolean&nbsp;relativeToLiveWindow)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setClippingConfiguration(com.google.android.exoplayer2.MediaItem.ClippingConfiguration)"><code>setClippingConfiguration(ClippingConfiguration)</code></a> and <a href="MediaItem.ClippingConfiguration.Builder.html#setRelativeToLiveWindow(boolean)"><code>MediaItem.ClippingConfiguration.Builder.setRelativeToLiveWindow(boolean)</code></a> instead.</div>
@ -665,7 +673,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setClipRelativeToDefaultPosition</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClipRelativeToDefaultPosition&#8203;(boolean&nbsp;relativeToDefaultPosition)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setClippingConfiguration(com.google.android.exoplayer2.MediaItem.ClippingConfiguration)"><code>setClippingConfiguration(ClippingConfiguration)</code></a> and <a href="MediaItem.ClippingConfiguration.Builder.html#setRelativeToDefaultPosition(boolean)"><code>MediaItem.ClippingConfiguration.Builder.setRelativeToDefaultPosition(boolean)</code></a> instead.</div>
@ -678,7 +687,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setClipStartsAtKeyFrame</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setClipStartsAtKeyFrame&#8203;(boolean&nbsp;startsAtKeyFrame)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setClippingConfiguration(com.google.android.exoplayer2.MediaItem.ClippingConfiguration)"><code>setClippingConfiguration(ClippingConfiguration)</code></a> and <a href="MediaItem.ClippingConfiguration.Builder.html#setStartsAtKeyFrame(boolean)"><code>MediaItem.ClippingConfiguration.Builder.setStartsAtKeyFrame(boolean)</code></a> instead.</div>
@ -691,7 +701,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmConfiguration</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmConfiguration&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmConfiguration&#8203;(@Nullable
<a href="MediaItem.DrmConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration</a>&nbsp;drmConfiguration)</pre>
<div class="block">Sets the optional DRM configuration.</div>
</li>
@ -702,7 +713,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmLicenseUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmLicenseUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;licenseUri)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -716,7 +728,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmLicenseUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmLicenseUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;licenseUri)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -730,7 +743,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmLicenseRequestHeaders</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmLicenseRequestHeaders&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/Map.html" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;licenseRequestHeaders)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -745,7 +759,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmUuid</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmUuid&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a>&nbsp;uuid)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -760,7 +775,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmMultiSession</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmMultiSession&#8203;(boolean&nbsp;multiSession)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setDrmConfiguration(com.google.android.exoplayer2.MediaItem.DrmConfiguration)"><code>setDrmConfiguration(DrmConfiguration)</code></a> and <a href="MediaItem.DrmConfiguration.Builder.html#setMultiSession(boolean)"><code>MediaItem.DrmConfiguration.Builder.setMultiSession(boolean)</code></a> instead.</div>
@ -773,7 +789,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmForceDefaultLicenseUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmForceDefaultLicenseUri&#8203;(boolean&nbsp;forceDefaultLicenseUri)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setDrmConfiguration(com.google.android.exoplayer2.MediaItem.DrmConfiguration)"><code>setDrmConfiguration(DrmConfiguration)</code></a> and <a href="MediaItem.DrmConfiguration.Builder.html#setForceDefaultLicenseUri(boolean)"><code>MediaItem.DrmConfiguration.Builder.setForceDefaultLicenseUri(boolean)</code></a> instead.</div>
@ -786,7 +803,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmPlayClearContentWithoutKey</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmPlayClearContentWithoutKey&#8203;(boolean&nbsp;playClearContentWithoutKey)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setDrmConfiguration(com.google.android.exoplayer2.MediaItem.DrmConfiguration)"><code>setDrmConfiguration(DrmConfiguration)</code></a> and <a href="MediaItem.DrmConfiguration.Builder.html#setPlayClearContentWithoutKey(boolean)"><code>MediaItem.DrmConfiguration.Builder.setPlayClearContentWithoutKey(boolean)</code></a> instead.</div>
@ -799,7 +817,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmSessionForClearPeriods</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmSessionForClearPeriods&#8203;(boolean&nbsp;sessionForClearPeriods)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setDrmConfiguration(com.google.android.exoplayer2.MediaItem.DrmConfiguration)"><code>setDrmConfiguration(DrmConfiguration)</code></a> and <a href="MediaItem.DrmConfiguration.Builder.html#setForceSessionsForAudioAndVideoTracks(boolean)"><code>MediaItem.DrmConfiguration.Builder.setForceSessionsForAudioAndVideoTracks(boolean)</code></a> instead.</div>
@ -812,7 +831,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmSessionForClearTypes</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmSessionForClearTypes&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;&nbsp;sessionForClearTypes)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -827,7 +847,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setDrmKeySetId</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setDrmKeySetId&#8203;(@Nullable
byte[]&nbsp;keySetId)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -841,7 +862,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setStreamKeys</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setStreamKeys&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setStreamKeys&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="offline/StreamKey.html" title="class in com.google.android.exoplayer2.offline" target="_top">StreamKey</a>&gt;&nbsp;streamKeys)</pre>
<div class="block">Sets the optional stream keys by which the manifest is filtered (only used for adaptive
streams).
@ -858,7 +880,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setCustomCacheKey</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setCustomCacheKey&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setCustomCacheKey&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;customCacheKey)</pre>
<div class="block">Sets the optional custom cache key (only used for progressive streams).
@ -871,7 +894,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setSubtitles</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setSubtitles&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.Subtitle.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem.Subtitle</a>&gt;&nbsp;subtitles)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -886,7 +910,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setSubtitleConfigurations</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setSubtitleConfigurations&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem.SubtitleConfiguration</a>&gt;&nbsp;subtitleConfigurations)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setSubtitleConfigurations&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem.SubtitleConfiguration</a>&gt;&nbsp;subtitleConfigurations)</pre>
<div class="block">Sets the optional subtitles.
<p>This method should only be called if <a href="#setUri(java.lang.String)"><code>setUri(java.lang.String)</code></a> is passed a non-null value.</div>
@ -898,7 +923,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setAdsConfiguration</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setAdsConfiguration&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setAdsConfiguration&#8203;(@Nullable
<a href="MediaItem.AdsConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration</a>&nbsp;adsConfiguration)</pre>
<div class="block">Sets the optional <a href="MediaItem.AdsConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.AdsConfiguration</code></a>.
@ -911,7 +937,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setAdTagUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setAdTagUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;adTagUri)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -926,7 +953,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setAdTagUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setAdTagUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;adTagUri)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -941,7 +969,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setAdTagUri</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setAdTagUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;adTagUri,
@Nullable
@ -958,7 +987,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveConfiguration</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveConfiguration&#8203;(<a href="MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration</a>&nbsp;liveConfiguration)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveConfiguration&#8203;(<a href="MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration</a>&nbsp;liveConfiguration)</pre>
<div class="block">Sets the <a href="MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.LiveConfiguration</code></a>. Defaults to <a href="MediaItem.LiveConfiguration.html#UNSET"><code>MediaItem.LiveConfiguration.UNSET</code></a>.</div>
</li>
</ul>
@ -968,7 +998,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveTargetOffsetMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveTargetOffsetMs&#8203;(long&nbsp;liveTargetOffsetMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)"><code>setLiveConfiguration(LiveConfiguration)</code></a> and <a href="MediaItem.LiveConfiguration.Builder.html#setTargetOffsetMs(long)"><code>MediaItem.LiveConfiguration.Builder.setTargetOffsetMs(long)</code></a>.</div>
@ -981,7 +1012,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveMinOffsetMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveMinOffsetMs&#8203;(long&nbsp;liveMinOffsetMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)"><code>setLiveConfiguration(LiveConfiguration)</code></a> and <a href="MediaItem.LiveConfiguration.Builder.html#setMinOffsetMs(long)"><code>MediaItem.LiveConfiguration.Builder.setMinOffsetMs(long)</code></a>.</div>
@ -994,7 +1026,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveMaxOffsetMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveMaxOffsetMs&#8203;(long&nbsp;liveMaxOffsetMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)"><code>setLiveConfiguration(LiveConfiguration)</code></a> and <a href="MediaItem.LiveConfiguration.Builder.html#setMaxOffsetMs(long)"><code>MediaItem.LiveConfiguration.Builder.setMaxOffsetMs(long)</code></a>.</div>
@ -1007,7 +1040,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveMinPlaybackSpeed</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveMinPlaybackSpeed&#8203;(float&nbsp;minPlaybackSpeed)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)"><code>setLiveConfiguration(LiveConfiguration)</code></a> and <a href="MediaItem.LiveConfiguration.Builder.html#setMinPlaybackSpeed(float)"><code>MediaItem.LiveConfiguration.Builder.setMinPlaybackSpeed(float)</code></a>.</div>
@ -1020,7 +1054,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setLiveMaxPlaybackSpeed</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setLiveMaxPlaybackSpeed&#8203;(float&nbsp;maxPlaybackSpeed)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLiveConfiguration(com.google.android.exoplayer2.MediaItem.LiveConfiguration)"><code>setLiveConfiguration(LiveConfiguration)</code></a> and <a href="MediaItem.LiveConfiguration.Builder.html#setMaxPlaybackSpeed(float)"><code>MediaItem.LiveConfiguration.Builder.setMaxPlaybackSpeed(float)</code></a>.</div>
@ -1033,7 +1068,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setTag</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setTag&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setTag&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;tag)</pre>
<div class="block">Sets the optional tag for custom attributes. The tag for the media source which will be
published in the <code>com.google.android.exoplayer2.Timeline</code> of the source as <code>
@ -1048,7 +1084,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setMediaMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMediaMetadata&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setMediaMetadata&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block">Sets the media metadata.</div>
</li>
</ul>
@ -1058,7 +1095,8 @@ public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>setRequestMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setRequestMetadata&#8203;(<a href="MediaItem.RequestMetadata.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata</a>&nbsp;requestMetadata)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a>&nbsp;setRequestMetadata&#8203;(<a href="MediaItem.RequestMetadata.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata</a>&nbsp;requestMetadata)</pre>
<div class="block">Sets the request metadata.</div>
</li>
</ul>

View File

@ -285,7 +285,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setStartPositionMs</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setStartPositionMs&#8203;(@IntRange(from=0L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setStartPositionMs&#8203;(@IntRange(from=0L)
long&nbsp;startPositionMs)</pre>
<div class="block">Sets the optional start position in milliseconds which must be a value larger than or equal
to zero (Default: 0).</div>
@ -297,7 +298,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setEndPositionMs</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setEndPositionMs&#8203;(long&nbsp;endPositionMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setEndPositionMs&#8203;(long&nbsp;endPositionMs)</pre>
<div class="block">Sets the optional end position in milliseconds which must be a value larger than or equal
to zero, or <a href="C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a> to end when playback reaches the end of media
(Default: <a href="C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a>).</div>
@ -309,7 +311,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRelativeToLiveWindow</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setRelativeToLiveWindow&#8203;(boolean&nbsp;relativeToLiveWindow)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setRelativeToLiveWindow&#8203;(boolean&nbsp;relativeToLiveWindow)</pre>
<div class="block">Sets whether the start/end positions should move with the live window for live streams. If
<code>false</code>, live streams end when playback reaches the end position in live window seen
when the media is first loaded (Default: <code>false</code>).</div>
@ -321,7 +324,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRelativeToDefaultPosition</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setRelativeToDefaultPosition&#8203;(boolean&nbsp;relativeToDefaultPosition)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setRelativeToDefaultPosition&#8203;(boolean&nbsp;relativeToDefaultPosition)</pre>
<div class="block">Sets whether the start position and the end position are relative to the default position
in the window (Default: <code>false</code>).</div>
</li>
@ -332,7 +336,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setStartsAtKeyFrame</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setStartsAtKeyFrame&#8203;(boolean&nbsp;startsAtKeyFrame)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a>&nbsp;setStartsAtKeyFrame&#8203;(boolean&nbsp;startsAtKeyFrame)</pre>
<div class="block">Sets whether the start point is guaranteed to be a key frame. If <code>false</code>, the
playback transition into the clip may not be seamless (Default: <code>false</code>).</div>
</li>

View File

@ -320,7 +320,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setScheme</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setScheme&#8203;(<a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a>&nbsp;scheme)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setScheme&#8203;(<a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a>&nbsp;scheme)</pre>
<div class="block">Sets the <a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top"><code>UUID</code></a> of the protection scheme.</div>
</li>
</ul>
@ -330,7 +331,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLicenseUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;licenseUri)</pre>
<div class="block">Sets the optional default DRM license server URI.</div>
</li>
@ -341,7 +343,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLicenseUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;licenseUri)</pre>
<div class="block">Sets the optional default DRM license server URI.</div>
</li>
@ -352,7 +355,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLicenseRequestHeaders</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseRequestHeaders&#8203;(<a href="https://developer.android.com/reference/java/util/Map.html" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;licenseRequestHeaders)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setLicenseRequestHeaders&#8203;(<a href="https://developer.android.com/reference/java/util/Map.html" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;licenseRequestHeaders)</pre>
<div class="block">Sets the optional request headers attached to DRM license requests.</div>
</li>
</ul>
@ -362,7 +366,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMultiSession</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setMultiSession&#8203;(boolean&nbsp;multiSession)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setMultiSession&#8203;(boolean&nbsp;multiSession)</pre>
<div class="block">Sets whether multi session is enabled.</div>
</li>
</ul>
@ -372,7 +377,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setForceDefaultLicenseUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForceDefaultLicenseUri&#8203;(boolean&nbsp;forceDefaultLicenseUri)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForceDefaultLicenseUri&#8203;(boolean&nbsp;forceDefaultLicenseUri)</pre>
<div class="block">Sets whether to always use the default DRM license server URI even if the media specifies
its own DRM license server URI.</div>
</li>
@ -383,7 +389,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPlayClearContentWithoutKey</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setPlayClearContentWithoutKey&#8203;(boolean&nbsp;playClearContentWithoutKey)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setPlayClearContentWithoutKey&#8203;(boolean&nbsp;playClearContentWithoutKey)</pre>
<div class="block">Sets whether clear samples within protected content should be played when keys for the
encrypted part of the content have yet to be loaded.</div>
</li>
@ -394,7 +401,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>forceSessionsForAudioAndVideoTracks</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
@InlineMe(replacement="this.setForceSessionsForAudioAndVideoTracks(forceSessionsForAudioAndVideoTracks)")
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;forceSessionsForAudioAndVideoTracks&#8203;(boolean&nbsp;forceSessionsForAudioAndVideoTracks)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -408,7 +416,8 @@ public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in co
<ul class="blockList">
<li class="blockList">
<h4>setForceSessionsForAudioAndVideoTracks</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForceSessionsForAudioAndVideoTracks&#8203;(boolean&nbsp;forceSessionsForAudioAndVideoTracks)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForceSessionsForAudioAndVideoTracks&#8203;(boolean&nbsp;forceSessionsForAudioAndVideoTracks)</pre>
<div class="block">Sets whether a DRM session should be used for clear tracks of type <a href="C.html#TRACK_TYPE_VIDEO"><code>C.TRACK_TYPE_VIDEO</code></a> and <a href="C.html#TRACK_TYPE_AUDIO"><code>C.TRACK_TYPE_AUDIO</code></a>.
<p>This method overrides what has been set by previously calling <a href="#setForcedSessionTrackTypes(java.util.List)"><code>setForcedSessionTrackTypes(List)</code></a>.</div>
@ -420,7 +429,8 @@ public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in co
<ul class="blockList">
<li class="blockList">
<h4>setForcedSessionTrackTypes</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForcedSessionTrackTypes&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;&nbsp;forcedSessionTrackTypes)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setForcedSessionTrackTypes&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;&nbsp;forcedSessionTrackTypes)</pre>
<div class="block">Sets a list of <a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2"><code>track type</code></a> constants for which to use a DRM session even
when the tracks are in the clear.
@ -435,7 +445,8 @@ public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in co
<ul class="blockList">
<li class="blockList">
<h4>setKeySetId</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setKeySetId&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a>&nbsp;setKeySetId&#8203;(@Nullable
byte[]&nbsp;keySetId)</pre>
<div class="block">Sets the key set ID of the offline license.

View File

@ -271,7 +271,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setTargetOffsetMs</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setTargetOffsetMs&#8203;(long&nbsp;targetOffsetMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setTargetOffsetMs&#8203;(long&nbsp;targetOffsetMs)</pre>
<div class="block">Sets the target live offset, in milliseconds.
<p>See <code>Player#getCurrentLiveOffset()</code>.
@ -285,7 +286,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMinOffsetMs</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMinOffsetMs&#8203;(long&nbsp;minOffsetMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMinOffsetMs&#8203;(long&nbsp;minOffsetMs)</pre>
<div class="block">Sets the minimum allowed live offset, in milliseconds.
<p>See <code>Player#getCurrentLiveOffset()</code>.
@ -299,7 +301,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMaxOffsetMs</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMaxOffsetMs&#8203;(long&nbsp;maxOffsetMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMaxOffsetMs&#8203;(long&nbsp;maxOffsetMs)</pre>
<div class="block">Sets the maximum allowed live offset, in milliseconds.
<p>See <code>Player#getCurrentLiveOffset()</code>.
@ -313,7 +316,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMinPlaybackSpeed</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMinPlaybackSpeed&#8203;(float&nbsp;minPlaybackSpeed)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMinPlaybackSpeed&#8203;(float&nbsp;minPlaybackSpeed)</pre>
<div class="block">Sets the minimum playback speed.
<p>Defaults to <a href="C.html#RATE_UNSET"><code>C.RATE_UNSET</code></a>, indicating the media-defined default will be used.</div>
@ -325,7 +329,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMaxPlaybackSpeed</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMaxPlaybackSpeed&#8203;(float&nbsp;maxPlaybackSpeed)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a>&nbsp;setMaxPlaybackSpeed&#8203;(float&nbsp;maxPlaybackSpeed)</pre>
<div class="block">Sets the maximum playback speed.
<p>Defaults to <a href="C.html#RATE_UNSET"><code>C.RATE_UNSET</code></a>, indicating the media-defined default will be used.</div>

View File

@ -257,7 +257,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMediaUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setMediaUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setMediaUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;mediaUri)</pre>
<div class="block">Sets the URI of the requested media, or null if not known or applicable.</div>
</li>
@ -268,7 +269,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSearchQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setSearchQuery&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setSearchQuery&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;searchQuery)</pre>
<div class="block">Sets the search query for the requested media, or null if not applicable.</div>
</li>
@ -279,7 +281,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setExtras</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setExtras&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a>&nbsp;setExtras&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;extras)</pre>
<div class="block">Sets optional extras <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a>.</div>
</li>

View File

@ -143,7 +143,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<div class="block">Metadata that helps the player to understand a playback request represented by a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.
<p>This metadata is most useful for cases where playback requests are forwarded to other player
instances (e.g. from a <a href="https://developer.android.com/reference/android/media/session/MediaController.html" title="class or interface in android.media.session" class="externalLink" target="_top"><code>MediaController</code></a>) and the player creating
instances (e.g. from a <code>androidx.media3.session.MediaController</code>) and the player creating
the request doesn't know the required <a href="MediaItem.LocalConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.LocalConfiguration</code></a> for playback.</div>
</li>
</ul>

View File

@ -289,7 +289,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setUri&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setUri&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</pre>
<div class="block">Sets the <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top"><code>Uri</code></a> to the subtitle file.</div>
</li>
</ul>
@ -299,7 +300,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMimeType</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setMimeType&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setMimeType&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType)</pre>
<div class="block">Sets the MIME type.</div>
</li>
@ -310,7 +312,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLanguage</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setLanguage&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setLanguage&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;language)</pre>
<div class="block">Sets the optional language of the subtitle file.</div>
</li>
@ -321,7 +324,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSelectionFlags</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setSelectionFlags&#8203;(<a href="C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">@SelectionFlags</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setSelectionFlags&#8203;(<a href="C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">@SelectionFlags</a>
@com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags)</pre>
<div class="block">Sets the flags used for track selection.</div>
</li>
@ -332,7 +336,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setRoleFlags</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setRoleFlags&#8203;(<a href="C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">@RoleFlags</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setRoleFlags&#8203;(<a href="C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">@RoleFlags</a>
@com.google.android.exoplayer2.C.RoleFlags int&nbsp;roleFlags)</pre>
<div class="block">Sets the role flags. These are used for track selection.</div>
</li>
@ -343,7 +348,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLabel</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setLabel&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setLabel&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;label)</pre>
<div class="block">Sets the optional label for this subtitle track.</div>
</li>
@ -354,7 +360,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setId</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setId&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a>&nbsp;setId&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id)</pre>
<div class="block">Sets the optional ID for this subtitle track.</div>
</li>

View File

@ -492,7 +492,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setTitle</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTitle&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTitle&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;title)</pre>
<div class="block">Sets the title.</div>
</li>
@ -503,7 +504,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setArtist</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtist&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtist&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;artist)</pre>
<div class="block">Sets the artist.</div>
</li>
@ -514,7 +516,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAlbumTitle</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setAlbumTitle&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setAlbumTitle&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;albumTitle)</pre>
<div class="block">Sets the album title.</div>
</li>
@ -525,7 +528,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAlbumArtist</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setAlbumArtist&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setAlbumArtist&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;albumArtist)</pre>
<div class="block">Sets the album artist.</div>
</li>
@ -536,7 +540,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setDisplayTitle</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDisplayTitle&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDisplayTitle&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;displayTitle)</pre>
<div class="block">Sets the display title.</div>
</li>
@ -547,7 +552,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSubtitle</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setSubtitle&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setSubtitle&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;subtitle)</pre>
<div class="block">Sets the subtitle.
@ -560,7 +566,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setDescription</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDescription&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDescription&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;description)</pre>
<div class="block">Sets the description.</div>
</li>
@ -571,7 +578,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUserRating</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setUserRating&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setUserRating&#8203;(@Nullable
<a href="Rating.html" title="class in com.google.android.exoplayer2">Rating</a>&nbsp;userRating)</pre>
<div class="block">Sets the user <a href="Rating.html" title="class in com.google.android.exoplayer2"><code>Rating</code></a>.</div>
</li>
@ -582,7 +590,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setOverallRating</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setOverallRating&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setOverallRating&#8203;(@Nullable
<a href="Rating.html" title="class in com.google.android.exoplayer2">Rating</a>&nbsp;overallRating)</pre>
<div class="block">Sets the overall <a href="Rating.html" title="class in com.google.android.exoplayer2"><code>Rating</code></a>.</div>
</li>
@ -593,7 +602,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setArtworkData</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtworkData&#8203;(@Nullable
byte[]&nbsp;artworkData)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -607,7 +617,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setArtworkData</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtworkData&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtworkData&#8203;(@Nullable
byte[]&nbsp;artworkData,
@Nullable <a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">@PictureType</a>
<a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">@PictureType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;artworkDataType)</pre>
@ -620,7 +631,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>maybeSetArtworkData</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;maybeSetArtworkData&#8203;(byte[]&nbsp;artworkData,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;maybeSetArtworkData&#8203;(byte[]&nbsp;artworkData,
<a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">@PictureType</a>
@com.google.android.exoplayer2.MediaMetadata.PictureType int&nbsp;artworkDataType)</pre>
<div class="block">Sets the artwork data as a compressed byte array in the event that the associated <a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.PictureType</code></a> is <a href="MediaMetadata.html#PICTURE_TYPE_FRONT_COVER"><code>MediaMetadata.PICTURE_TYPE_FRONT_COVER</code></a>, the existing <a href="MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.PictureType</code></a> is not
@ -636,7 +648,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setArtworkUri</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtworkUri&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setArtworkUri&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;artworkUri)</pre>
<div class="block">Sets the artwork <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top"><code>Uri</code></a>.</div>
</li>
@ -647,7 +660,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setTrackNumber</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTrackNumber&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTrackNumber&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;trackNumber)</pre>
<div class="block">Sets the track number.</div>
</li>
@ -658,7 +672,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setTotalTrackCount</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTotalTrackCount&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTotalTrackCount&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;totalTrackCount)</pre>
<div class="block">Sets the total number of tracks.</div>
</li>
@ -669,7 +684,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setFolderType</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setFolderType&#8203;(@Nullable <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setFolderType&#8203;(@Nullable <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a>
<a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">@FolderType</a> <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;folderType)</pre>
<div class="block">Sets the <a href="MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2"><code>MediaMetadata.FolderType</code></a>.</div>
</li>
@ -680,7 +696,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setIsPlayable</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setIsPlayable&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setIsPlayable&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top">Boolean</a>&nbsp;isPlayable)</pre>
<div class="block">Sets whether the media is playable.</div>
</li>
@ -691,7 +708,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setYear</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setYear&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;year)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -705,7 +723,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setRecordingYear</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingYear&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingYear&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingYear)</pre>
<div class="block">Sets the year of the recording date.</div>
</li>
@ -716,7 +735,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setRecordingMonth</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingMonth&#8203;(@Nullable @IntRange(from=1L,to=12L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingMonth&#8203;(@Nullable @IntRange(from=1L,to=12L)
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingMonth)</pre>
<div class="block">Sets the month of the recording date.
@ -729,7 +749,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setRecordingDay</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingDay&#8203;(@Nullable @IntRange(from=1L,to=31L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setRecordingDay&#8203;(@Nullable @IntRange(from=1L,to=31L)
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;recordingDay)</pre>
<div class="block">Sets the day of the recording date.
@ -742,7 +763,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setReleaseYear</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseYear&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseYear&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseYear)</pre>
<div class="block">Sets the year of the release date.</div>
</li>
@ -753,7 +775,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setReleaseMonth</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseMonth&#8203;(@Nullable @IntRange(from=1L,to=12L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseMonth&#8203;(@Nullable @IntRange(from=1L,to=12L)
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseMonth)</pre>
<div class="block">Sets the month of the release date.
@ -766,7 +789,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setReleaseDay</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseDay&#8203;(@Nullable @IntRange(from=1L,to=31L)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setReleaseDay&#8203;(@Nullable @IntRange(from=1L,to=31L)
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;releaseDay)</pre>
<div class="block">Sets the day of the release date.
@ -779,7 +803,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setWriter</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setWriter&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setWriter&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;writer)</pre>
<div class="block">Sets the writer.</div>
</li>
@ -790,7 +815,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setComposer</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setComposer&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setComposer&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;composer)</pre>
<div class="block">Sets the composer.</div>
</li>
@ -801,7 +827,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setConductor</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setConductor&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setConductor&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;conductor)</pre>
<div class="block">Sets the conductor.</div>
</li>
@ -812,7 +839,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setDiscNumber</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDiscNumber&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setDiscNumber&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;discNumber)</pre>
<div class="block">Sets the disc number.</div>
</li>
@ -823,7 +851,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setTotalDiscCount</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTotalDiscCount&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setTotalDiscCount&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&nbsp;totalDiscCount)</pre>
<div class="block">Sets the total number of discs.</div>
</li>
@ -834,7 +863,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setGenre</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setGenre&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setGenre&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;genre)</pre>
<div class="block">Sets the genre.</div>
</li>
@ -845,7 +875,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setCompilation</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setCompilation&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setCompilation&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;compilation)</pre>
<div class="block">Sets the compilation.</div>
</li>
@ -856,7 +887,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setStation</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setStation&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setStation&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/CharSequence.html" title="class or interface in java.lang" class="externalLink" target="_top">CharSequence</a>&nbsp;station)</pre>
<div class="block">Sets the name of the station streaming the media.</div>
</li>
@ -867,7 +899,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>setExtras</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setExtras&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;setExtras&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&nbsp;extras)</pre>
<div class="block">Sets the extras <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a>.</div>
</li>
@ -878,7 +911,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>populateFromMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populateFromMetadata&#8203;(<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&nbsp;metadata)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populateFromMetadata&#8203;(<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a>&nbsp;metadata)</pre>
<div class="block">Sets all fields supported by the <a href="metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>entries</code></a> within the <a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.
<p>Fields are only set if the <a href="metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> has an implementation for <a href="metadata/Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)"><code>Metadata.Entry.populateMediaMetadata(Builder)</code></a>.
@ -893,7 +927,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>populateFromMetadata</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populateFromMetadata&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata" target="_top">Metadata</a>&gt;&nbsp;metadataList)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populateFromMetadata&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata" target="_top">Metadata</a>&gt;&nbsp;metadataList)</pre>
<div class="block">Sets all fields supported by the <a href="metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>entries</code></a> within the list of <a href="metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.
<p>Fields are only set if the <a href="metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a> has an implementation for <a href="metadata/Metadata.Entry.html#populateMediaMetadata(com.google.android.exoplayer2.MediaMetadata.Builder)"><code>Metadata.Entry.populateMediaMetadata(Builder)</code></a>.
@ -907,7 +942,8 @@ public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.andr
<ul class="blockList">
<li class="blockList">
<h4>populate</h4>
<pre class="methodSignature">public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populate&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a>&nbsp;populate&#8203;(@Nullable
<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</pre>
<div class="block">Populates all the fields from <code>mediaMetadata</code>, provided they are non-null.</div>
</li>

View File

@ -180,14 +180,14 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></h3>
<code><a href="Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
<code><a href="Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="Renderer.html#MSG_SET_PREFERRED_AUDIO_DEVICE">MSG_SET_PREFERRED_AUDIO_DEVICE</a>, <a href="Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.RendererCapabilities">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3>
<code><a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
<code><a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
</ul>
</li>
</ul>

View File

@ -294,7 +294,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;add&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;add&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;command)</pre>
<div class="block">Adds a <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a>.</div>
<dl>
@ -313,7 +314,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>addIf</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addIf&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addIf&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;command,
boolean&nbsp;condition)</pre>
<div class="block">Adds a <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> if the provided condition is true. Does nothing otherwise.</div>
@ -334,7 +336,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>addAll</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</pre>
<div class="block">Adds <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<dl>
@ -353,7 +356,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>addAll</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAll&#8203;(<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;commands)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAll&#8203;(<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;commands)</pre>
<div class="block">Adds <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -371,7 +375,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>addAllCommands</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAllCommands()</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;addAllCommands()</pre>
<div class="block">Adds all existing <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@ -387,7 +392,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;remove&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;remove&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;command)</pre>
<div class="block">Removes a <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a>.</div>
<dl>
@ -406,7 +412,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>removeIf</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;removeIf&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;removeIf&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int&nbsp;command,
boolean&nbsp;condition)</pre>
<div class="block">Removes a <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> if the provided condition is true. Does nothing otherwise.</div>
@ -427,7 +434,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre class="methodSignature">public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;removeAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a>&nbsp;removeAll&#8203;(<a href="Player.Command.html" title="annotation in com.google.android.exoplayer2">@Command</a>
@com.google.android.exoplayer2.Player.Command int...&nbsp;commands)</pre>
<div class="block">Removes <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
<dl>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":38,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":38,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":38,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":38,"i59":6,"i60":38,"i61":38,"i62":6,"i63":38,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":38,"i70":38,"i71":38,"i72":6,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":38,"i79":6,"i80":6,"i81":6,"i82":38,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":38,"i96":6,"i97":6,"i98":38,"i99":6,"i100":6,"i101":6,"i102":6,"i103":6,"i104":6,"i105":6,"i106":6,"i107":6,"i108":6,"i109":6,"i110":6,"i111":6,"i112":6,"i113":6,"i114":6,"i115":6,"i116":6,"i117":6,"i118":6,"i119":6,"i120":38};
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":38,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":38,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":38,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":38,"i60":6,"i61":38,"i62":38,"i63":6,"i64":38,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":38,"i71":38,"i72":38,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":38,"i80":6,"i81":6,"i82":6,"i83":38,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":6,"i96":38,"i97":6,"i98":6,"i99":38,"i100":6,"i101":6,"i102":6,"i103":6,"i104":6,"i105":6,"i106":6,"i107":6,"i108":6,"i109":6,"i110":6,"i111":6,"i112":6,"i113":6,"i114":6,"i115":6,"i116":6,"i117":6,"i118":6,"i119":6,"i120":6,"i121":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -126,7 +126,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></code>, <code><a href="ext/cast/CastPlayer.html" title="class in com.google.android.exoplayer2.ext.cast">CastPlayer</a></code>, <code><a href="ForwardingPlayer.html" title="class in com.google.android.exoplayer2">ForwardingPlayer</a></code>, <code><a href="SimpleExoPlayer.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer</a></code>, <code><a href="testutil/StubExoPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubExoPlayer</a></code>, <code><a href="testutil/StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a></code></dd>
<dd><code><a href="BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></code>, <code><a href="ext/cast/CastPlayer.html" title="class in com.google.android.exoplayer2.ext.cast">CastPlayer</a></code>, <code><a href="ForwardingPlayer.html" title="class in com.google.android.exoplayer2">ForwardingPlayer</a></code>, <code><a href="LegacyMediaPlayerWrapper.html" title="class in com.google.android.exoplayer2">LegacyMediaPlayerWrapper</a></code>, <code><a href="SimpleBasePlayer.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer</a></code>, <code><a href="SimpleExoPlayer.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer</a></code>, <code><a href="testutil/StubExoPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubExoPlayer</a></code>, <code><a href="testutil/StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Player</span></pre>
@ -1360,34 +1360,41 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code><a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSurfaceSize()">getSurfaceSize</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the size of the surface on which the video is rendered.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalBufferedDuration()">getTotalBufferedDuration</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<tr id="i56" class="altColor">
<td class="colFirst"><code><a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackSelectionParameters()">getTrackSelectionParameters</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parameters constraining the track selection.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<tr id="i57" class="rowColor">
<td class="colFirst"><code><a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoSize()">getVideoSize</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the size of the video.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<tr id="i58" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVolume()">getVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
</td>
</tr>
<tr id="i58" class="altColor">
<tr id="i59" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNext()">hasNext</a></span>()</code></th>
<td class="colLast">
@ -1396,7 +1403,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<tr id="i60" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNextMediaItem()">hasNextMediaItem</a></span>()</code></th>
<td class="colLast">
@ -1404,7 +1411,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
and whether shuffle mode is enabled.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<tr id="i61" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasNextWindow()">hasNextWindow</a></span>()</code></th>
<td class="colLast">
@ -1413,7 +1420,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<tr id="i62" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPrevious()">hasPrevious</a></span>()</code></th>
<td class="colLast">
@ -1422,7 +1429,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i62" class="altColor">
<tr id="i63" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPreviousMediaItem()">hasPreviousMediaItem</a></span>()</code></th>
<td class="colLast">
@ -1430,7 +1437,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
whether shuffle mode is enabled.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<tr id="i64" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPreviousWindow()">hasPreviousWindow</a></span>()</code></th>
<td class="colLast">
@ -1439,21 +1446,21 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i64" class="altColor">
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increaseDeviceVolume()">increaseDeviceVolume</a></span>()</code></th>
<td class="colLast">
<div class="block">Increases the volume of the device.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<tr id="i66" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a></span>&#8203;(@com.google.android.exoplayer2.Player.Command int&nbsp;command)</code></th>
<td class="colLast">
<div class="block">Returns whether the provided <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a> is available.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<tr id="i67" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a></span>()</code></th>
<td class="colLast">
@ -1461,7 +1468,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
is updated), or <code>false</code> if the <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> is empty.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<tr id="i68" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemLive()">isCurrentMediaItemLive</a></span>()</code></th>
<td class="colLast">
@ -1469,14 +1476,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
is empty.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<tr id="i69" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> is seekable, or <code>false</code> if the <a href="Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> is empty.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<tr id="i70" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowDynamic()">isCurrentWindowDynamic</a></span>()</code></th>
<td class="colLast">
@ -1485,7 +1492,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i70" class="altColor">
<tr id="i71" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowLive()">isCurrentWindowLive</a></span>()</code></th>
<td class="colLast">
@ -1494,7 +1501,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<tr id="i72" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentWindowSeekable()">isCurrentWindowSeekable</a></span>()</code></th>
<td class="colLast">
@ -1503,35 +1510,35 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i72" class="altColor">
<tr id="i73" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeviceMuted()">isDeviceMuted</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets whether the device is muted or not.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<tr id="i74" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLoading()">isLoading</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the player is currently loading the source.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<tr id="i75" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlaying()">isPlaying</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the player is playing, i.e.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<tr id="i76" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlayingAd()">isPlayingAd</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the player is currently playing an ad.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItem(int,int)">moveMediaItem</a></span>&#8203;(int&nbsp;currentIndex,
int&nbsp;newIndex)</code></th>
@ -1539,7 +1546,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Moves the media item at the current index to the new index.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItems(int,int,int)">moveMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex,
@ -1548,7 +1555,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Moves the media item range to the new index.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#next()">next</a></span>()</code></th>
<td class="colLast">
@ -1557,28 +1564,28 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pause()">pause</a></span>()</code></th>
<td class="colLast">
<div class="block">Pauses playback.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#play()">play</a></span>()</code></th>
<td class="colLast">
<div class="block">Resumes playback as soon as <a href="#getPlaybackState()"><code>getPlaybackState()</code></a> == <a href="#STATE_READY"><code>STATE_READY</code></a>.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare()">prepare</a></span>()</code></th>
<td class="colLast">
<div class="block">Prepares the player.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#previous()">previous</a></span>()</code></th>
<td class="colLast">
@ -1587,28 +1594,28 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases the player.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a></span>&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Unregister a listener registered through <a href="#addListener(com.google.android.exoplayer2.Player.Listener)"><code>addListener(Listener)</code></a>.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItem(int)">removeMediaItem</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Removes the media item at the given index of the playlist.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItems(int,int)">removeMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex)</code></th>
@ -1616,14 +1623,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Removes a range of media items from the playlist.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekBack()">seekBack</a></span>()</code></th>
<td class="colLast">
<div class="block">Seeks back in the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> by <a href="#getSeekBackIncrement()"><code>getSeekBackIncrement()</code></a> milliseconds.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekForward()">seekForward</a></span>()</code></th>
<td class="colLast">
@ -1631,7 +1638,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
milliseconds.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
@ -1639,35 +1646,35 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(long)">seekTo</a></span>&#8203;(long&nbsp;positionMs)</code></th>
<td class="colLast">
<div class="block">Seeks to a position specified in milliseconds in the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToDefaultPosition()">seekToDefaultPosition</a></span>()</code></th>
<td class="colLast">
<div class="block">Seeks to the default position associated with the current <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToDefaultPosition(int)">seekToDefaultPosition</a></span>&#8203;(int&nbsp;mediaItemIndex)</code></th>
<td class="colLast">
<div class="block">Seeks to the default position associated with the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNext()">seekToNext</a></span>()</code></th>
<td class="colLast">
<div class="block">Seeks to a later position in the current or next <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> (if available).</div>
</td>
</tr>
<tr id="i94" class="altColor">
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNextMediaItem()">seekToNextMediaItem</a></span>()</code></th>
<td class="colLast">
@ -1675,7 +1682,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
repeat mode and whether shuffle mode is enabled.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToNextWindow()">seekToNextWindow</a></span>()</code></th>
<td class="colLast">
@ -1684,14 +1691,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i96" class="altColor">
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPrevious()">seekToPrevious</a></span>()</code></th>
<td class="colLast">
<div class="block">Seeks to an earlier position in the current or previous <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> (if available).</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPreviousMediaItem()">seekToPreviousMediaItem</a></span>()</code></th>
<td class="colLast">
@ -1699,7 +1706,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
current repeat mode and whether shuffle mode is enabled.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToPreviousWindow()">seekToPreviousWindow</a></span>()</code></th>
<td class="colLast">
@ -1708,21 +1715,21 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceMuted(boolean)">setDeviceMuted</a></span>&#8203;(boolean&nbsp;muted)</code></th>
<td class="colLast">
<div class="block">Sets the mute state of the device.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceVolume(int)">setDeviceVolume</a></span>&#8203;(int&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Sets the volume of the device.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th>
<td class="colLast">
@ -1730,7 +1737,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
default position.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem,
boolean&nbsp;resetPosition)</code></th>
@ -1738,7 +1745,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a></span>&#8203;(<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem,
long&nbsp;startPositionMs)</code></th>
@ -1746,7 +1753,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems)</code></th>
<td class="colLast">
@ -1754,7 +1761,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
the default position.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</code></th>
@ -1762,7 +1769,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,int,long)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
int&nbsp;startIndex,
@ -1771,63 +1778,63 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackSpeed(float)">setPlaybackSpeed</a></span>&#8203;(float&nbsp;speed)</code></th>
<td class="colLast">
<div class="block">Changes the rate at which playback occurs.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady)</code></th>
<td class="colLast">
<div class="block">Sets whether playback should proceed when <a href="#getPlaybackState()"><code>getPlaybackState()</code></a> == <a href="#STATE_READY"><code>STATE_READY</code></a>.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a></span>&#8203;(@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></span>&#8203;(boolean&nbsp;shuffleModeEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether shuffling of media items is enabled.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a></span>&#8203;(<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;parameters)</code></th>
<td class="colLast">
<div class="block">Sets the parameters constraining the track selection.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurface(android.view.Surface)">setVideoSurface</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</code></th>
<td class="colLast">
@ -1835,21 +1842,21 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
rendered.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
@ -1857,14 +1864,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
unchanged), inclusive.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
<td class="colLast">
<div class="block">Stops playback without resetting the playlist.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(boolean)">stop</a></span>&#8203;(boolean&nbsp;reset)</code></th>
<td class="colLast">
@ -4933,6 +4940,20 @@ float&nbsp;getVolume()</pre>
</dl>
</li>
</ul>
<a id="getSurfaceSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSurfaceSize</h4>
<pre class="methodSignature"><a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a>&nbsp;getSurfaceSize()</pre>
<div class="block">Gets the size of the surface on which the video is rendered.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onSurfaceSizeChanged(int,int)"><code>Player.Listener.onSurfaceSizeChanged(int, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="getCurrentCues()">
<!-- -->
</a>

View File

@ -452,7 +452,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setType</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setType&#8203;(int&nbsp;messageType)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setType&#8203;(int&nbsp;messageType)</pre>
<div class="block">Sets the message type forwarded to <a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -480,7 +481,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPayload</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPayload&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPayload&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;payload)</pre>
<div class="block">Sets the message payload forwarded to <a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div>
<dl>
@ -510,7 +512,8 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.ht
<ul class="blockList">
<li class="blockList">
<h4>setHandler</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setHandler&#8203;(<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;handler)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#setLooper(android.os.Looper)"><code>setLooper(Looper)</code></a> instead.</div>
@ -523,7 +526,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>setLooper</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper)</pre>
<div class="block">Sets the <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> the message is delivered on.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -564,7 +568,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>setPosition</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPosition&#8203;(long&nbsp;positionMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPosition&#8203;(long&nbsp;positionMs)</pre>
<div class="block">Sets a position in the current media item at which the message will be delivered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -584,7 +589,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>setPosition</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPosition&#8203;(int&nbsp;mediaItemIndex,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setPosition&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</pre>
<div class="block">Sets a position in a media item at which the message will be delivered.</div>
<dl>
@ -618,7 +624,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>setDeleteAfterDelivery</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setDeleteAfterDelivery&#8203;(boolean&nbsp;deleteAfterDelivery)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;setDeleteAfterDelivery&#8203;(boolean&nbsp;deleteAfterDelivery)</pre>
<div class="block">Sets whether the message will be deleted after delivery. If false, the message will be resent
if playback reaches the specified position again. Only allowed to be false if a position is set
with <a href="#setPosition(long)"><code>setPosition(long)</code></a>.</div>
@ -648,7 +655,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>send</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;send()</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;send()</pre>
<div class="block">Sends the message. If the target throws an <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2"><code>ExoPlaybackException</code></a> then it is propagated
out of the player as an error using <a href="Player.Listener.html#onPlayerError(com.google.android.exoplayer2.PlaybackException)"><code>Player.Listener.onPlayerError(PlaybackException)</code></a>.</div>
<dl>
@ -665,7 +673,8 @@ public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exop
<ul class="blockList">
<li class="blockList">
<h4>cancel</h4>
<pre class="methodSignature">public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;cancel()</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a>&nbsp;cancel()</pre>
<div class="block">Cancels the message delivery.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>

View File

@ -244,41 +244,48 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_PREFERRED_AUDIO_DEVICE">MSG_SET_PREFERRED_AUDIO_DEVICE</a></span></code></th>
<td class="colLast">
<div class="block">The type of a message that can be passed to audio renderers via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a></span></code></th>
<td class="colLast">
<div class="block">The type of a message that can be passed to a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a>-based video renderer via
<a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a></span></code></th>
<td class="colLast">
<div class="block">The type of a message that can be passed to an audio renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a></span></code></th>
<td class="colLast">
<div class="block">The type of a message that can be passed to a video renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a></span></code></th>
<td class="colLast">
<div class="block">The type of a message that can be passed to a video renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_VOLUME">MSG_SET_VOLUME</a></span></code></th>
<td class="colLast">
<div class="block">A type of a message that can be passed to an audio renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a></span></code></th>
<td class="colLast">
@ -286,21 +293,21 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
waking up another component.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_DISABLED">STATE_DISABLED</a></span></code></th>
<td class="colLast">
<div class="block">The renderer is disabled.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_ENABLED">STATE_ENABLED</a></span></code></th>
<td class="colLast">
<div class="block">The renderer is enabled but not started.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_STARTED">STATE_STARTED</a></span></code></th>
<td class="colLast">
@ -712,6 +719,21 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
</dl>
</li>
</ul>
<a id="MSG_SET_PREFERRED_AUDIO_DEVICE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MSG_SET_PREFERRED_AUDIO_DEVICE</h4>
<pre>static final&nbsp;int MSG_SET_PREFERRED_AUDIO_DEVICE</pre>
<div class="block">The type of a message that can be passed to audio renderers via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>. The message payload should be an <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioDeviceInfo</code></a> instance representing the preferred audio device, or null to
restore the default.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_PREFERRED_AUDIO_DEVICE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MSG_CUSTOM_BASE">
<!-- -->
</a>

View File

@ -117,7 +117,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<a href="https://developer.android.com/reference/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>)
public static @interface <span class="memberNameLabel">RendererCapabilities.DecoderSupport</span></pre>
<div class="block">Level of decoder support. One of <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY"><code>RendererCapabilities.DECODER_SUPPORT_PRIMARY</code></a> and <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK"><code>RendererCapabilities.DECODER_SUPPORT_FALLBACK</code></a>.
<div class="block">Level of decoder support. One of <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK_MIMETYPE"><code>RendererCapabilities.DECODER_SUPPORT_FALLBACK_MIMETYPE</code></a>, <a href="RendererCapabilities.html#DECODER_SUPPORT_FALLBACK"><code>RendererCapabilities.DECODER_SUPPORT_FALLBACK</code></a>, and <a href="RendererCapabilities.html#DECODER_SUPPORT_PRIMARY"><code>RendererCapabilities.DECODER_SUPPORT_PRIMARY</code></a>.
<p>For video renderers, the level of support is indicated for non-tunneled output.</div>
</li>

View File

@ -247,12 +247,20 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a></span></code></th>
<td class="colLast">
<div class="block">The renderer will use a decoder for fallback mimetype if possible as format's MIME type is
unsupported</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a></span></code></th>
<td class="colLast">
<div class="block">The renderer is able to use the primary decoder for the format's MIME type.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a></span></code></th>
<td class="colLast">
@ -261,7 +269,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_HANDLED">FORMAT_HANDLED</a></span></code></th>
<td class="colLast">
@ -270,14 +278,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a></span></code></th>
<td class="colLast">
<div class="block">A mask to apply to <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> to obtain the <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> only.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a></span></code></th>
<td class="colLast">
@ -286,7 +294,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a></span></code></th>
<td class="colLast">
@ -295,7 +303,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a></span></code></th>
<td class="colLast">
@ -304,49 +312,49 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a></span></code></th>
<td class="colLast">
<div class="block">The renderer is not able to use hardware acceleration.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a></span></code></th>
<td class="colLast">
<div class="block">A mask to apply to <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> to obtain <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> only.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a></span></code></th>
<td class="colLast">
<div class="block">The renderer is able to use hardware acceleration.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a></span></code></th>
<td class="colLast">
<div class="block">A mask to apply to <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> to obtain <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> only.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a></span></code></th>
<td class="colLast">
<div class="block">The <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> does not support tunneled output.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a></span></code></th>
<td class="colLast">
<div class="block">A mask to apply to <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> to obtain <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> only.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></span></code></th>
<td class="colLast">
@ -733,6 +741,21 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
</dl>
</li>
</ul>
<a id="DECODER_SUPPORT_FALLBACK_MIMETYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DECODER_SUPPORT_FALLBACK_MIMETYPE</h4>
<pre>static final&nbsp;int DECODER_SUPPORT_FALLBACK_MIMETYPE</pre>
<div class="block">The renderer will use a decoder for fallback mimetype if possible as format's MIME type is
unsupported</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.DECODER_SUPPORT_FALLBACK_MIMETYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DECODER_SUPPORT_PRIMARY">
<!-- -->
</a>

View File

@ -0,0 +1,366 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>SimpleBasePlayer.State.Builder (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SimpleBasePlayer.State.Builder (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div>
<h2 title="Class SimpleBasePlayer.State.Builder" class="title">Class SimpleBasePlayer.State.Builder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.SimpleBasePlayer.State.Builder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a></dd>
</dl>
<hr>
<pre>public static final class <span class="typeNameLabel">SimpleBasePlayer.State.Builder</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></pre>
<div class="block">A builder for <a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State</code></a> objects.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates the builder.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
<td class="colLast">
<div class="block">Builds the <a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAvailableCommands(com.google.android.exoplayer2.Player.Commands)">setAvailableCommands</a></span>&#8203;(<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;availableCommands)</code></th>
<td class="colLast">
<div class="block">Sets the available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady,
@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int&nbsp;playWhenReadyChangeReason)</code></th>
<td class="colLast">
<div class="block">Sets whether playback should proceed when ready and not suppressed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
<div class="block">Creates the builder.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setAvailableCommands(com.google.android.exoplayer2.Player.Commands)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAvailableCommands</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setAvailableCommands&#8203;(<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a>&nbsp;availableCommands)</pre>
<div class="block">Sets the available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>availableCommands</code> - The available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setPlayWhenReady(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPlayWhenReady</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;setPlayWhenReady&#8203;(boolean&nbsp;playWhenReady,
<a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">@PlayWhenReadyChangeReason</a>
@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int&nbsp;playWhenReadyChangeReason)</pre>
<div class="block">Sets whether playback should proceed when ready and not suppressed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playWhenReady</code> - Whether playback should proceed when ready and not suppressed.</dd>
<dd><code>playWhenReadyChangeReason</code> - The <a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">reason</a> for
changing the value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature">public&nbsp;<a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State</a>&nbsp;build()</pre>
<div class="block">Builds the <a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,412 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>SimpleBasePlayer.State (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SimpleBasePlayer.State (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div>
<h2 title="Class SimpleBasePlayer.State" class="title">Class SimpleBasePlayer.State</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.SimpleBasePlayer.State</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="SimpleBasePlayer.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer</a></dd>
</dl>
<hr>
<pre>protected static final class <span class="typeNameLabel">SimpleBasePlayer.State</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></pre>
<div class="block">An immutable state description of the player.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></span></code></th>
<td class="colLast">
<div class="block">A builder for <a href="SimpleBasePlayer.State.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State</code></a> objects.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#availableCommands">availableCommands</a></span></code></th>
<td class="colLast">
<div class="block">The available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playWhenReady">playWhenReady</a></span></code></th>
<td class="colLast">
<div class="block">Whether playback should proceed when ready and not suppressed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#playWhenReadyChangeReason">playWhenReadyChangeReason</a></span></code></th>
<td class="colLast">
<div class="block">The last reason for changing <a href="#playWhenReady"><code>playWhenReady</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildUpon()">buildUpon</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a <a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State.Builder</code></a> pre-populated with the current state values.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;o)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="availableCommands">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>availableCommands</h4>
<pre>public final&nbsp;<a href="Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a> availableCommands</pre>
<div class="block">The available <a href="Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a>.</div>
</li>
</ul>
<a id="playWhenReady">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>playWhenReady</h4>
<pre>public final&nbsp;boolean playWhenReady</pre>
<div class="block">Whether playback should proceed when ready and not suppressed.</div>
</li>
</ul>
<a id="playWhenReadyChangeReason">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>playWhenReadyChangeReason</h4>
<pre><a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">@PlayWhenReadyChangeReason</a>
public final&nbsp;@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int playWhenReadyChangeReason</pre>
<div class="block">The last reason for changing <a href="#playWhenReady"><code>playWhenReady</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="buildUpon()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildUpon</h4>
<pre class="methodSignature">public&nbsp;<a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2">SimpleBasePlayer.State.Builder</a>&nbsp;buildUpon()</pre>
<div class="block">Returns a <a href="SimpleBasePlayer.State.Builder.html" title="class in com.google.android.exoplayer2"><code>SimpleBasePlayer.State.Builder</code></a> pre-populated with the current state values.</div>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;o)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -567,7 +567,8 @@ public&nbsp;Builder&#8203;(<a href="https://developer.android.com/reference/andr
<ul class="blockList">
<li class="blockList">
<h4>experimentalSetForegroundModeTimeoutMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;experimentalSetForegroundModeTimeoutMs&#8203;(long&nbsp;timeoutMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#experimentalSetForegroundModeTimeoutMs(long)"><code>ExoPlayer.Builder.experimentalSetForegroundModeTimeoutMs(long)</code></a>
@ -581,7 +582,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setTrackSelector</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setTrackSelector&#8203;(<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setTrackSelector(com.google.android.exoplayer2.trackselection.TrackSelector)"><code>ExoPlayer.Builder.setTrackSelector(TrackSelector)</code></a> instead.</div>
@ -594,7 +596,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setMediaSourceFactory</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setMediaSourceFactory&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSource.Factory)"><code>ExoPlayer.Builder.setMediaSourceFactory(MediaSource.Factory)</code></a> instead.</div>
@ -607,7 +610,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setLoadControl</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setLoadControl&#8203;(<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setLoadControl(com.google.android.exoplayer2.LoadControl)"><code>ExoPlayer.Builder.setLoadControl(LoadControl)</code></a> instead.</div>
@ -620,7 +624,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setBandwidthMeter</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setBandwidthMeter&#8203;(<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setBandwidthMeter(com.google.android.exoplayer2.upstream.BandwidthMeter)"><code>ExoPlayer.Builder.setBandwidthMeter(BandwidthMeter)</code></a> instead.</div>
@ -633,7 +638,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setLooper</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setLooper&#8203;(<a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top">Looper</a>&nbsp;looper)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setLooper(android.os.Looper)"><code>ExoPlayer.Builder.setLooper(Looper)</code></a> instead.</div>
@ -646,7 +652,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setAnalyticsCollector</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setAnalyticsCollector&#8203;(<a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setAnalyticsCollector(com.google.android.exoplayer2.analytics.AnalyticsCollector)"><code>ExoPlayer.Builder.setAnalyticsCollector(AnalyticsCollector)</code></a> instead.</div>
@ -659,7 +666,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setPriorityTaskManager</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setPriorityTaskManager&#8203;(@Nullable
<a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a>&nbsp;priorityTaskManager)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -674,7 +682,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setAudioAttributes</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setAudioAttributes&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
boolean&nbsp;handleAudioFocus)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -689,7 +698,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setWakeMode</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setWakeMode&#8203;(<a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2">@WakeMode</a>
@com.google.android.exoplayer2.C.WakeMode int&nbsp;wakeMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -703,7 +713,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setHandleAudioBecomingNoisy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setHandleAudioBecomingNoisy&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setHandleAudioBecomingNoisy(boolean)"><code>ExoPlayer.Builder.setHandleAudioBecomingNoisy(boolean)</code></a> instead.</div>
@ -716,7 +727,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setSkipSilenceEnabled</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setSkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setSkipSilenceEnabled(boolean)"><code>ExoPlayer.Builder.setSkipSilenceEnabled(boolean)</code></a> instead.</div>
@ -729,7 +741,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setVideoScalingMode</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a>
@com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -743,7 +756,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setVideoChangeFrameRateStrategy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a>
@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -757,7 +771,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setUseLazyPreparation</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setUseLazyPreparation&#8203;(boolean&nbsp;useLazyPreparation)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setUseLazyPreparation(boolean)"><code>ExoPlayer.Builder.setUseLazyPreparation(boolean)</code></a> instead.</div>
@ -770,7 +785,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setSeekParameters</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setSeekParameters&#8203;(<a href="SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setSeekParameters(com.google.android.exoplayer2.SeekParameters)"><code>ExoPlayer.Builder.setSeekParameters(SeekParameters)</code></a> instead.</div>
@ -783,7 +799,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setSeekBackIncrementMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setSeekBackIncrementMs&#8203;(@IntRange(from=1L)
long&nbsp;seekBackIncrementMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -797,7 +814,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setSeekForwardIncrementMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setSeekForwardIncrementMs&#8203;(@IntRange(from=1L)
long&nbsp;seekForwardIncrementMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
@ -811,7 +829,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setReleaseTimeoutMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setReleaseTimeoutMs&#8203;(long&nbsp;releaseTimeoutMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setReleaseTimeoutMs(long)"><code>ExoPlayer.Builder.setReleaseTimeoutMs(long)</code></a> instead.</div>
@ -824,7 +843,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setDetachSurfaceTimeoutMs</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setDetachSurfaceTimeoutMs&#8203;(long&nbsp;detachSurfaceTimeoutMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setDetachSurfaceTimeoutMs(long)"><code>ExoPlayer.Builder.setDetachSurfaceTimeoutMs(long)</code></a> instead.</div>
@ -837,7 +857,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setPauseAtEndOfMediaItems</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setPauseAtEndOfMediaItems&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setPauseAtEndOfMediaItems(boolean)"><code>ExoPlayer.Builder.setPauseAtEndOfMediaItems(boolean)</code></a> instead.</div>
@ -850,7 +871,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setLivePlaybackSpeedControl</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setLivePlaybackSpeedControl&#8203;(<a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a>&nbsp;livePlaybackSpeedControl)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setLivePlaybackSpeedControl(com.google.android.exoplayer2.LivePlaybackSpeedControl)"><code>ExoPlayer.Builder.setLivePlaybackSpeedControl(LivePlaybackSpeedControl)</code></a> instead.</div>
@ -863,7 +885,8 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<ul class="blockList">
<li class="blockList">
<h4>setClock</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a>&nbsp;setClock&#8203;(<a href="util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a>&nbsp;clock)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setClock(com.google.android.exoplayer2.util.Clock)"><code>ExoPlayer.Builder.setClock(Clock)</code></a> instead.</div>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":42,"i14":42,"i15":42,"i16":42,"i17":42,"i18":42,"i19":42,"i20":42,"i21":42,"i22":42,"i23":42,"i24":42,"i25":42,"i26":42,"i27":42,"i28":42,"i29":42,"i30":42,"i31":42,"i32":42,"i33":42,"i34":42,"i35":42,"i36":42,"i37":42,"i38":42,"i39":42,"i40":42,"i41":42,"i42":42,"i43":42,"i44":42,"i45":42,"i46":42,"i47":42,"i48":42,"i49":42,"i50":42,"i51":42,"i52":42,"i53":42,"i54":42,"i55":42,"i56":42,"i57":42,"i58":42,"i59":42,"i60":42,"i61":42,"i62":42,"i63":42,"i64":42,"i65":42,"i66":42,"i67":42,"i68":42,"i69":42,"i70":42,"i71":42,"i72":42,"i73":42,"i74":42,"i75":42,"i76":42,"i77":42,"i78":42,"i79":42,"i80":42,"i81":42,"i82":42,"i83":42,"i84":42,"i85":42,"i86":42,"i87":42,"i88":42,"i89":42,"i90":42,"i91":42,"i92":42,"i93":42,"i94":42,"i95":42,"i96":42,"i97":42,"i98":42,"i99":42,"i100":42,"i101":42,"i102":42,"i103":42,"i104":42,"i105":42,"i106":42,"i107":42,"i108":42,"i109":42,"i110":42,"i111":42,"i112":42,"i113":42,"i114":42,"i115":42,"i116":42,"i117":42,"i118":42,"i119":42,"i120":42,"i121":42,"i122":42,"i123":42,"i124":42,"i125":42,"i126":42,"i127":42,"i128":42,"i129":42};
var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":42,"i14":42,"i15":42,"i16":42,"i17":42,"i18":42,"i19":42,"i20":42,"i21":42,"i22":42,"i23":42,"i24":42,"i25":42,"i26":42,"i27":42,"i28":42,"i29":42,"i30":42,"i31":42,"i32":42,"i33":42,"i34":42,"i35":42,"i36":42,"i37":42,"i38":42,"i39":42,"i40":42,"i41":42,"i42":42,"i43":42,"i44":42,"i45":42,"i46":42,"i47":42,"i48":42,"i49":42,"i50":42,"i51":42,"i52":42,"i53":42,"i54":42,"i55":42,"i56":42,"i57":42,"i58":42,"i59":42,"i60":42,"i61":42,"i62":42,"i63":42,"i64":42,"i65":42,"i66":42,"i67":42,"i68":42,"i69":42,"i70":42,"i71":42,"i72":42,"i73":42,"i74":42,"i75":42,"i76":42,"i77":42,"i78":42,"i79":42,"i80":42,"i81":42,"i82":42,"i83":42,"i84":42,"i85":42,"i86":42,"i87":42,"i88":42,"i89":42,"i90":42,"i91":42,"i92":42,"i93":42,"i94":42,"i95":42,"i96":42,"i97":42,"i98":42,"i99":42,"i100":42,"i101":42,"i102":42,"i103":42,"i104":42,"i105":42,"i106":42,"i107":42,"i108":42,"i109":42,"i110":42,"i111":42,"i112":42,"i113":42,"i114":42,"i115":42,"i116":42,"i117":42,"i118":42,"i119":42,"i120":42,"i121":42,"i122":42,"i123":42,"i124":42,"i125":42,"i126":42,"i127":42,"i128":42,"i129":42,"i130":42,"i131":42,"i132":42};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -823,6 +823,14 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code><a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSurfaceSize()">getSurfaceSize</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Gets the size of the surface on which the video is rendered.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTextComponent()">getTextComponent</a></span>()</code></th>
<td class="colLast">
@ -832,7 +840,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i66" class="altColor">
<tr id="i67" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalBufferedDuration()">getTotalBufferedDuration</a></span>()</code></th>
<td class="colLast">
@ -840,7 +848,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns an estimate of the total buffered duration from the current position, in milliseconds.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<tr id="i68" class="altColor">
<td class="colFirst"><code><a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackSelectionParameters()">getTrackSelectionParameters</a></span>()</code></th>
<td class="colLast">
@ -848,7 +856,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the parameters constraining the track selection.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<tr id="i69" class="rowColor">
<td class="colFirst"><code><a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackSelector()">getTrackSelector</a></span>()</code></th>
<td class="colLast">
@ -856,7 +864,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the track selector that this player uses, or null if track selection is not supported.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<tr id="i70" class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoChangeFrameRateStrategy()">getVideoChangeFrameRateStrategy</a></span>()</code></th>
<td class="colLast">
@ -864,7 +872,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<tr id="i71" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoComponent()">getVideoComponent</a></span>()</code></th>
<td class="colLast">
@ -874,7 +882,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<tr id="i72" class="altColor">
<td class="colFirst"><code><a href="decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoDecoderCounters()">getVideoDecoderCounters</a></span>()</code></th>
<td class="colLast">
@ -882,7 +890,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns <a href="decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a> for video, or null if no video is being played.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<tr id="i73" class="rowColor">
<td class="colFirst"><code><a href="Format.html" title="class in com.google.android.exoplayer2">Format</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoFormat()">getVideoFormat</a></span>()</code></th>
<td class="colLast">
@ -890,7 +898,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the video format currently being played, or null if no video is being played.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<tr id="i74" class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.VideoScalingMode int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoScalingMode()">getVideoScalingMode</a></span>()</code></th>
<td class="colLast">
@ -898,7 +906,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<tr id="i75" class="rowColor">
<td class="colFirst"><code><a href="video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoSize()">getVideoSize</a></span>()</code></th>
<td class="colLast">
@ -906,7 +914,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Gets the size of the video.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<tr id="i76" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVolume()">getVolume</a></span>()</code></th>
<td class="colLast">
@ -914,7 +922,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).</div>
</td>
</tr>
<tr id="i76" class="altColor">
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increaseDeviceVolume()">increaseDeviceVolume</a></span>()</code></th>
<td class="colLast">
@ -922,7 +930,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Increases the volume of the device.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<tr id="i78" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeviceMuted()">isDeviceMuted</a></span>()</code></th>
<td class="colLast">
@ -930,7 +938,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Gets whether the device is muted or not.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<tr id="i79" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLoading()">isLoading</a></span>()</code></th>
<td class="colLast">
@ -938,7 +946,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Whether the player is currently loading the source.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<tr id="i80" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPlayingAd()">isPlayingAd</a></span>()</code></th>
<td class="colLast">
@ -946,7 +954,16 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Returns whether the player is currently playing an ad.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<tr id="i81" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTunnelingEnabled()">isTunnelingEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns whether <a href="https://source.android.com/devices/tv/multimedia-tunneling">tunneling</a> is enabled for
the currently selected tracks.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveMediaItems(int,int,int)">moveMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex,
@ -956,7 +973,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Moves the media item range to the new index.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare()">prepare</a></span>()</code></th>
<td class="colLast">
@ -964,7 +981,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Prepares the player.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare(com.google.android.exoplayer2.source.MediaSource)">prepare</a></span>&#8203;(<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
@ -973,7 +990,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#prepare(com.google.android.exoplayer2.source.MediaSource,boolean,boolean)">prepare</a></span>&#8203;(<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition,
@ -985,7 +1002,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i84" class="altColor">
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
@ -993,7 +1010,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Releases the player.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAnalyticsListener(com.google.android.exoplayer2.analytics.AnalyticsListener)">removeAnalyticsListener</a></span>&#8203;(<a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a>&nbsp;listener)</code></th>
<td class="colLast">
@ -1001,7 +1018,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Removes an <a href="analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a>.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">removeAudioOffloadListener</a></span>&#8203;(<a href="ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;listener)</code></th>
<td class="colLast">
@ -1009,7 +1026,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Removes a listener of audio offload events.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a></span>&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</code></th>
<td class="colLast">
@ -1017,7 +1034,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Unregister a listener registered through <a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.addListener(Listener)</code></a>.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeMediaItems(int,int)">removeMediaItems</a></span>&#8203;(int&nbsp;fromIndex,
int&nbsp;toIndex)</code></th>
@ -1026,7 +1043,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Removes a range of media items from the playlist.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retry()">retry</a></span>()</code></th>
<td class="colLast">
@ -1035,7 +1052,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i90" class="altColor">
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekTo(int,long)">seekTo</a></span>&#8203;(int&nbsp;mediaItemIndex,
long&nbsp;positionMs)</code></th>
@ -1044,7 +1061,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Seeks to a position specified in milliseconds in the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)">setAudioAttributes</a></span>&#8203;(<a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a>&nbsp;audioAttributes,
boolean&nbsp;handleAudioFocus)</code></th>
@ -1053,7 +1070,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the attributes for audio playback, used by the underlying audio track.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioSessionId(int)">setAudioSessionId</a></span>&#8203;(int&nbsp;audioSessionId)</code></th>
<td class="colLast">
@ -1061,7 +1078,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the ID of the audio session to attach to the underlying <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAuxEffectInfo(com.google.android.exoplayer2.audio.AuxEffectInfo)">setAuxEffectInfo</a></span>&#8203;(<a href="audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio">AuxEffectInfo</a>&nbsp;auxEffectInfo)</code></th>
<td class="colLast">
@ -1069,7 +1086,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets information on an auxiliary audio effect to attach to the underlying audio track.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCameraMotionListener(com.google.android.exoplayer2.video.spherical.CameraMotionListener)">setCameraMotionListener</a></span>&#8203;(<a href="video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a>&nbsp;listener)</code></th>
<td class="colLast">
@ -1077,7 +1094,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets a listener of camera motion events.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceMuted(boolean)">setDeviceMuted</a></span>&#8203;(boolean&nbsp;muted)</code></th>
<td class="colLast">
@ -1085,7 +1102,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the mute state of the device.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDeviceVolume(int)">setDeviceVolume</a></span>&#8203;(int&nbsp;volume)</code></th>
<td class="colLast">
@ -1093,7 +1110,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the volume of the device.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setForegroundMode(boolean)">setForegroundMode</a></span>&#8203;(boolean&nbsp;foregroundMode)</code></th>
<td class="colLast">
@ -1102,7 +1119,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
even when in the idle state.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHandleAudioBecomingNoisy(boolean)">setHandleAudioBecomingNoisy</a></span>&#8203;(boolean&nbsp;handleAudioBecomingNoisy)</code></th>
<td class="colLast">
@ -1111,7 +1128,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
device speakers.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHandleWakeLock(boolean)">setHandleWakeLock</a></span>&#8203;(boolean&nbsp;handleWakeLock)</code></th>
<td class="colLast">
@ -1120,7 +1137,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
</div>
</td>
</tr>
<tr id="i100" class="altColor">
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,boolean)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
boolean&nbsp;resetPosition)</code></th>
@ -1129,7 +1146,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaItems(java.util.List,int,long)">setMediaItems</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaItem.html" title="class in com.google.android.exoplayer2" target="_top">MediaItem</a>&gt;&nbsp;mediaItems,
int&nbsp;startIndex,
@ -1139,7 +1156,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource)">setMediaSource</a></span>&#8203;(<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource)</code></th>
<td class="colLast">
@ -1148,7 +1165,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
default position.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,boolean)">setMediaSource</a></span>&#8203;(<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
boolean&nbsp;resetPosition)</code></th>
@ -1157,7 +1174,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSource(com.google.android.exoplayer2.source.MediaSource,long)">setMediaSource</a></span>&#8203;(<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a>&nbsp;mediaSource,
long&nbsp;startPositionMs)</code></th>
@ -1166,7 +1183,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List)">setMediaSources</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources)</code></th>
<td class="colLast">
@ -1175,7 +1192,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
position to the default position.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List,boolean)">setMediaSources</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
boolean&nbsp;resetPosition)</code></th>
@ -1184,7 +1201,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSources(java.util.List,int,long)">setMediaSources</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source" target="_top">MediaSource</a>&gt;&nbsp;mediaSources,
int&nbsp;startMediaItemIndex,
@ -1194,7 +1211,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Clears the playlist and adds the specified <a href="source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a>.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPauseAtEndOfMediaItems(boolean)">setPauseAtEndOfMediaItems</a></span>&#8203;(boolean&nbsp;pauseAtEndOfMediaItems)</code></th>
<td class="colLast">
@ -1202,7 +1219,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets whether to pause playback at the end of each media item.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
@ -1210,7 +1227,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaylistMetadata(com.google.android.exoplayer2.MediaMetadata)">setPlaylistMetadata</a></span>&#8203;(<a href="MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a>&nbsp;mediaMetadata)</code></th>
<td class="colLast">
@ -1218,7 +1235,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the playlist <a href="MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a>.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayWhenReady(boolean)">setPlayWhenReady</a></span>&#8203;(boolean&nbsp;playWhenReady)</code></th>
<td class="colLast">
@ -1226,7 +1243,15 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets whether playback should proceed when <a href="Player.html#getPlaybackState()"><code>Player.getPlaybackState()</code></a> == <a href="Player.html#STATE_READY"><code>Player.STATE_READY</code></a>.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPreferredAudioDevice(android.media.AudioDeviceInfo)">setPreferredAudioDevice</a></span>&#8203;(<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Sets the preferred audio device.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPriorityTaskManager(com.google.android.exoplayer2.util.PriorityTaskManager)">setPriorityTaskManager</a></span>&#8203;(<a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a>&nbsp;priorityTaskManager)</code></th>
<td class="colLast">
@ -1234,7 +1259,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets a <a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>, or null to clear a previously set priority task manager.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)">setRepeatMode</a></span>&#8203;(@com.google.android.exoplayer2.Player.RepeatMode int&nbsp;repeatMode)</code></th>
<td class="colLast">
@ -1242,7 +1267,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the <a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2"><code>Player.RepeatMode</code></a> to be used for playback.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSeekParameters(com.google.android.exoplayer2.SeekParameters)">setSeekParameters</a></span>&#8203;(<a href="SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a>&nbsp;seekParameters)</code></th>
<td class="colLast">
@ -1250,7 +1275,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the parameters that control how seek operations are performed.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleModeEnabled(boolean)">setShuffleModeEnabled</a></span>&#8203;(boolean&nbsp;shuffleModeEnabled)</code></th>
<td class="colLast">
@ -1258,7 +1283,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets whether shuffling of media items is enabled.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)">setShuffleOrder</a></span>&#8203;(<a href="source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a>&nbsp;shuffleOrder)</code></th>
<td class="colLast">
@ -1266,7 +1291,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the shuffle order.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
@ -1274,7 +1299,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets whether skipping silences in the audio stream is enabled.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)">setTrackSelectionParameters</a></span>&#8203;(<a href="trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a>&nbsp;parameters)</code></th>
<td class="colLast">
@ -1282,7 +1307,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the parameters constraining the track selection.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<tr id="i122" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">setVideoChangeFrameRateStrategy</a></span>&#8203;(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</code></th>
<td class="colLast">
@ -1291,7 +1316,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
with a video output <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoFrameMetadataListener(com.google.android.exoplayer2.video.VideoFrameMetadataListener)">setVideoFrameMetadataListener</a></span>&#8203;(<a href="video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a>&nbsp;listener)</code></th>
<td class="colLast">
@ -1299,7 +1324,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets a listener to receive video frame metadata events.</div>
</td>
</tr>
<tr id="i121" class="rowColor">
<tr id="i124" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">setVideoScalingMode</a></span>&#8203;(@com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</code></th>
<td class="colLast">
@ -1307,7 +1332,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.</div>
</td>
</tr>
<tr id="i122" class="altColor">
<tr id="i125" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurface(android.view.Surface)">setVideoSurface</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;surface)</code></th>
<td class="colLast">
@ -1315,7 +1340,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<tr id="i126" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceHolder(android.view.SurfaceHolder)">setVideoSurfaceHolder</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceHolder.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceHolder</a>&nbsp;surfaceHolder)</code></th>
<td class="colLast">
@ -1324,7 +1349,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
rendered.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<tr id="i127" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoSurfaceView(android.view.SurfaceView)">setVideoSurfaceView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top">SurfaceView</a>&nbsp;surfaceView)</code></th>
<td class="colLast">
@ -1332,7 +1357,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<tr id="i128" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoTextureView(android.view.TextureView)">setVideoTextureView</a></span>&#8203;(<a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top">TextureView</a>&nbsp;textureView)</code></th>
<td class="colLast">
@ -1340,7 +1365,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets the <a href="https://developer.android.com/reference/android/view/TextureView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>TextureView</code></a> onto which video will be rendered.</div>
</td>
</tr>
<tr id="i126" class="altColor">
<tr id="i129" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
@ -1349,7 +1374,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
unchanged), inclusive.</div>
</td>
</tr>
<tr id="i127" class="rowColor">
<tr id="i130" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setWakeMode(@com.google.android.exoplayer2.C.WakeModeint)">setWakeMode</a></span>&#8203;(@com.google.android.exoplayer2.C.WakeMode int&nbsp;wakeMode)</code></th>
<td class="colLast">
@ -1357,7 +1382,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Sets how the player should keep the device awake for playback when the screen is off.</div>
</td>
</tr>
<tr id="i128" class="altColor">
<tr id="i131" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
<td class="colLast">
@ -1365,7 +1390,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<div class="block">Stops playback without resetting the playlist.</div>
</td>
</tr>
<tr id="i129" class="rowColor">
<tr id="i132" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop(boolean)">stop</a></span>&#8203;(boolean&nbsp;reset)</code></th>
<td class="colLast">
@ -1381,7 +1406,7 @@ implements <a href="ExoPlayer.html" title="interface in com.google.android.exopl
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></h3>
<code><a href="BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="BasePlayer.html#hasNext()">hasNext</a>, <a href="BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="BasePlayer.html#isPlaying()">isPlaying</a>, <a href="BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="BasePlayer.html#next()">next</a>, <a href="BasePlayer.html#pause()">pause</a>, <a href="BasePlayer.html#play()">play</a>, <a href="BasePlayer.html#previous()">previous</a>, <a href="BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="BasePlayer.html#seekBack()">seekBack</a>, <a href="BasePlayer.html#seekForward()">seekForward</a>, <a href="BasePlayer.html#seekTo(long)">seekTo</a>, <a href="BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToNext()">seekToNext</a>, <a href="BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
<code><a href="BasePlayer.html#addMediaItem(int,com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItem(com.google.android.exoplayer2.MediaItem)">addMediaItem</a>, <a href="BasePlayer.html#addMediaItems(java.util.List)">addMediaItems</a>, <a href="BasePlayer.html#canAdvertiseSession()">canAdvertiseSession</a>, <a href="BasePlayer.html#clearMediaItems()">clearMediaItems</a>, <a href="BasePlayer.html#getBufferedPercentage()">getBufferedPercentage</a>, <a href="BasePlayer.html#getContentDuration()">getContentDuration</a>, <a href="BasePlayer.html#getCurrentLiveOffset()">getCurrentLiveOffset</a>, <a href="BasePlayer.html#getCurrentManifest()">getCurrentManifest</a>, <a href="BasePlayer.html#getCurrentMediaItem()">getCurrentMediaItem</a>, <a href="BasePlayer.html#getCurrentWindowIndex()">getCurrentWindowIndex</a>, <a href="BasePlayer.html#getMediaItemAt(int)">getMediaItemAt</a>, <a href="BasePlayer.html#getMediaItemCount()">getMediaItemCount</a>, <a href="BasePlayer.html#getNextMediaItemIndex()">getNextMediaItemIndex</a>, <a href="BasePlayer.html#getNextWindowIndex()">getNextWindowIndex</a>, <a href="BasePlayer.html#getPreviousMediaItemIndex()">getPreviousMediaItemIndex</a>, <a href="BasePlayer.html#getPreviousWindowIndex()">getPreviousWindowIndex</a>, <a href="BasePlayer.html#hasNext()">hasNext</a>, <a href="BasePlayer.html#hasNextMediaItem()">hasNextMediaItem</a>, <a href="BasePlayer.html#hasNextWindow()">hasNextWindow</a>, <a href="BasePlayer.html#hasPrevious()">hasPrevious</a>, <a href="BasePlayer.html#hasPreviousMediaItem()">hasPreviousMediaItem</a>, <a href="BasePlayer.html#hasPreviousWindow()">hasPreviousWindow</a>, <a href="BasePlayer.html#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)">isCommandAvailable</a>, <a href="BasePlayer.html#isCurrentMediaItemDynamic()">isCurrentMediaItemDynamic</a>, <a href="BasePlayer.html#isCurrentMediaItemLive()">isCurrentMediaItemLive</a>, <a href="BasePlayer.html#isCurrentMediaItemSeekable()">isCurrentMediaItemSeekable</a>, <a href="BasePlayer.html#isCurrentWindowDynamic()">isCurrentWindowDynamic</a>, <a href="BasePlayer.html#isCurrentWindowLive()">isCurrentWindowLive</a>, <a href="BasePlayer.html#isCurrentWindowSeekable()">isCurrentWindowSeekable</a>, <a href="BasePlayer.html#isPlaying()">isPlaying</a>, <a href="BasePlayer.html#moveMediaItem(int,int)">moveMediaItem</a>, <a href="BasePlayer.html#next()">next</a>, <a href="BasePlayer.html#pause()">pause</a>, <a href="BasePlayer.html#play()">play</a>, <a href="BasePlayer.html#previous()">previous</a>, <a href="BasePlayer.html#removeMediaItem(int)">removeMediaItem</a>, <a href="BasePlayer.html#repeatCurrentMediaItem()">repeatCurrentMediaItem</a>, <a href="BasePlayer.html#seekBack()">seekBack</a>, <a href="BasePlayer.html#seekForward()">seekForward</a>, <a href="BasePlayer.html#seekTo(long)">seekTo</a>, <a href="BasePlayer.html#seekToDefaultPosition()">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToDefaultPosition(int)">seekToDefaultPosition</a>, <a href="BasePlayer.html#seekToNext()">seekToNext</a>, <a href="BasePlayer.html#seekToNextMediaItem()">seekToNextMediaItem</a>, <a href="BasePlayer.html#seekToNextWindow()">seekToNextWindow</a>, <a href="BasePlayer.html#seekToPrevious()">seekToPrevious</a>, <a href="BasePlayer.html#seekToPreviousMediaItem()">seekToPreviousMediaItem</a>, <a href="BasePlayer.html#seekToPreviousWindow()">seekToPreviousWindow</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,boolean)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItem(com.google.android.exoplayer2.MediaItem,long)">setMediaItem</a>, <a href="BasePlayer.html#setMediaItems(java.util.List)">setMediaItems</a>, <a href="BasePlayer.html#setPlaybackSpeed(float)">setPlaybackSpeed</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
@ -1713,6 +1738,24 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
</dl>
</li>
</ul>
<a id="getSurfaceSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSurfaceSize</h4>
<pre class="methodSignature">public&nbsp;<a href="util/Size.html" title="class in com.google.android.exoplayer2.util">Size</a>&nbsp;getSurfaceSize()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Player.html#getSurfaceSize()">Player</a></code></span></div>
<div class="block">Gets the size of the surface on which the video is rendered.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#getSurfaceSize()">getSurfaceSize</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onSurfaceSizeChanged(int,int)"><code>Player.Listener.onSurfaceSizeChanged(int, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="clearVideoSurface()">
<!-- -->
</a>
@ -2089,6 +2132,27 @@ public&nbsp;@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nb
</dl>
</li>
</ul>
<a id="setPreferredAudioDevice(android.media.AudioDeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferredAudioDevice</h4>
<pre class="methodSignature">@RequiresApi(23)
public&nbsp;void&nbsp;setPreferredAudioDevice&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#setPreferredAudioDevice(android.media.AudioDeviceInfo)">ExoPlayer</a></code></span></div>
<div class="block">Sets the preferred audio device.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#setPreferredAudioDevice(android.media.AudioDeviceInfo)">setPreferredAudioDevice</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioDeviceInfo</code> - The preferred <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">audio device</a>, or null to
restore the default.</dd>
</dl>
</li>
</ul>
<a id="setVolume(float)">
<!-- -->
</a>
@ -4085,7 +4149,7 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
<a id="setDeviceMuted(boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>setDeviceMuted</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDeviceMuted&#8203;(boolean&nbsp;muted)</pre>
@ -4100,6 +4164,25 @@ public&nbsp;void&nbsp;setHandleWakeLock&#8203;(boolean&nbsp;handleWakeLock)</pre
</dl>
</li>
</ul>
<a id="isTunnelingEnabled()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isTunnelingEnabled</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isTunnelingEnabled()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ExoPlayer.html#isTunnelingEnabled()">ExoPlayer</a></code></span></div>
<div class="block">Returns whether <a href="https://source.android.com/devices/tv/multimedia-tunneling">tunneling</a> is enabled for
the currently selected tracks.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ExoPlayer.html#isTunnelingEnabled()">isTunnelingEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.Tracks)"><code>Player.Listener.onTracksChanged(Tracks)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -607,7 +607,8 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.ht
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;<a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a>&nbsp;set&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a>&nbsp;set&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;id,
@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;uid,
@ -638,7 +639,8 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.ht
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;<a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a>&nbsp;set&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a>&nbsp;set&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;id,
@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;uid,

View File

@ -743,7 +743,8 @@ public&nbsp;<a href="MediaItem.LiveConfiguration.html" title="class in com.googl
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;<a href="Timeline.Window.html" title="class in com.google.android.exoplayer2">Timeline.Window</a>&nbsp;set&#8203;(<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;uid,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="Timeline.Window.html" title="class in com.google.android.exoplayer2">Timeline.Window</a>&nbsp;set&#8203;(<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;uid,
@Nullable
<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem,
@Nullable

View File

@ -273,7 +273,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setContentType</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setContentType&#8203;(<a href="../C.AudioContentType.html" title="annotation in com.google.android.exoplayer2">@AudioContentType</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setContentType&#8203;(<a href="../C.AudioContentType.html" title="annotation in com.google.android.exoplayer2">@AudioContentType</a>
@com.google.android.exoplayer2.C.AudioContentType int&nbsp;contentType)</pre>
<div class="block">See <a href="https://developer.android.com/reference/android/media/AudioAttributes.Builder.html#setContentType(int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes.Builder.setContentType(int)</code></a></div>
</li>
@ -284,7 +285,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setFlags</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setFlags&#8203;(<a href="../C.AudioFlags.html" title="annotation in com.google.android.exoplayer2">@AudioFlags</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setFlags&#8203;(<a href="../C.AudioFlags.html" title="annotation in com.google.android.exoplayer2">@AudioFlags</a>
@com.google.android.exoplayer2.C.AudioFlags int&nbsp;flags)</pre>
<div class="block">See <a href="https://developer.android.com/reference/android/media/AudioAttributes.Builder.html#setFlags(int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes.Builder.setFlags(int)</code></a></div>
</li>
@ -295,7 +297,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUsage</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setUsage&#8203;(<a href="../C.AudioUsage.html" title="annotation in com.google.android.exoplayer2">@AudioUsage</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setUsage&#8203;(<a href="../C.AudioUsage.html" title="annotation in com.google.android.exoplayer2">@AudioUsage</a>
@com.google.android.exoplayer2.C.AudioUsage int&nbsp;usage)</pre>
<div class="block">See <a href="https://developer.android.com/reference/android/media/AudioAttributes.Builder.html#setUsage(int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes.Builder.setUsage(int)</code></a></div>
</li>
@ -306,7 +309,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAllowedCapturePolicy</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setAllowedCapturePolicy&#8203;(<a href="../C.AudioAllowedCapturePolicy.html" title="annotation in com.google.android.exoplayer2">@AudioAllowedCapturePolicy</a>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setAllowedCapturePolicy&#8203;(<a href="../C.AudioAllowedCapturePolicy.html" title="annotation in com.google.android.exoplayer2">@AudioAllowedCapturePolicy</a>
@com.google.android.exoplayer2.C.AudioAllowedCapturePolicy int&nbsp;allowedCapturePolicy)</pre>
<div class="block">See <a href="https://developer.android.com/reference/android/media/AudioAttributes.Builder.html#setAllowedCapturePolicy(int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes.Builder.setAllowedCapturePolicy(int)</code></a>.</div>
</li>
@ -317,7 +321,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSpatializationBehavior</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setSpatializationBehavior&#8203;(@com.google.android.exoplayer2.C.SpatializationBehavior int&nbsp;spatializationBehavior)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a>&nbsp;setSpatializationBehavior&#8203;(@com.google.android.exoplayer2.C.SpatializationBehavior int&nbsp;spatializationBehavior)</pre>
<div class="block">See <a href="https://developer.android.com/reference/android/media/AudioAttributes.Builder.html#setSpatializationBehavior(int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes.Builder.setSpatializationBehavior(int)</code></a>.</div>
</li>
</ul>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10};
var data = {"i0":10,"i1":10,"i2":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -231,6 +231,16 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;o)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
@ -241,7 +251,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
@ -342,7 +352,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;toString()</pre>
@ -352,6 +362,33 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&nbsp;o)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

View File

@ -240,8 +240,8 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this processor will return no more output from <a href="#getOutput()"><code>getOutput()</code></a> until it
has been <a href="#flush()"><code>flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="#getOutput()"><code>getOutput()</code></a> until
<a href="#flush()"><code>flush()</code></a> has been called and more input has been queued.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
@ -308,7 +308,8 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature"><a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
<pre class="methodSignature">@CanIgnoreReturnValue
<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
throws <a href="AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></pre>
<div class="block">Configures the processor to process input audio with the specified format. After calling this
method, call <a href="#isActive()"><code>isActive()</code></a> to determine whether the audio processor is active. Returns
@ -393,8 +394,8 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<h4>isEnded</h4>
<pre class="methodSignature">boolean&nbsp;isEnded()</pre>
<div class="block">Returns whether this processor will return no more output from <a href="#getOutput()"><code>getOutput()</code></a> until it
has been <a href="#flush()"><code>flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="#getOutput()"><code>getOutput()</code></a> until
<a href="#flush()"><code>flush()</code></a> has been called and more input has been queued.</div>
</li>
</ul>
<a id="flush()">

View File

@ -0,0 +1,360 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>AudioProcessorChain (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AudioProcessorChain (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.audio</a></div>
<h2 title="Interface AudioProcessorChain" class="title">Interface AudioProcessorChain</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.DefaultAudioProcessorChain</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">AudioProcessorChain</span></pre>
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and applying
playback parameters (if supported). Because applying playback parameters can skip and
stretch/compress audio, the sink will query the chain for information on how to transform its
output position to map it onto a media position, via <a href="#getMediaDuration(long)"><code>getMediaDuration(long)</code></a> and <a href="#getSkippedOutputFrameCount()"><code>getSkippedOutputFrameCount()</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">applyPlaybackParameters</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Configures audio processors to apply the specified playback parameters immediately, returning
the new playback parameters, which may differ from those passed in.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applySkipSilenceEnabled(boolean)">applySkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Configures audio processors to apply whether to skip silences immediately, returning the new
value.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioProcessors()">getAudioProcessors</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the fixed chain of audio processors that will process audio.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaDuration(long)">getMediaDuration</a></span>&#8203;(long&nbsp;playoutDuration)</code></th>
<td class="colLast">
<div class="block">Returns the media duration corresponding to the specified playout duration, taking speed
adjustment due to audio processing into account.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of output audio frames skipped since the audio processors were last flushed.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getAudioProcessors()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioProcessors</h4>
<pre class="methodSignature"><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]&nbsp;getAudioProcessors()</pre>
<div class="block">Returns the fixed chain of audio processors that will process audio. This method is called once
during initialization, but audio processors may change state to become active/inactive during
playback.</div>
</li>
</ul>
<a id="applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyPlaybackParameters</h4>
<pre class="methodSignature"><a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;applyPlaybackParameters&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block">Configures audio processors to apply the specified playback parameters immediately, returning
the new playback parameters, which may differ from those passed in. Only called when processors
have no input pending.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters to try to apply.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The playback parameters that were actually applied.</dd>
</dl>
</li>
</ul>
<a id="applySkipSilenceEnabled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applySkipSilenceEnabled</h4>
<pre class="methodSignature">boolean&nbsp;applySkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="block">Configures audio processors to apply whether to skip silences immediately, returning the new
value. Only called when processors have no input pending.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>skipSilenceEnabled</code> - Whether silences should be skipped in the audio stream.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The new value.</dd>
</dl>
</li>
</ul>
<a id="getMediaDuration(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMediaDuration</h4>
<pre class="methodSignature">long&nbsp;getMediaDuration&#8203;(long&nbsp;playoutDuration)</pre>
<div class="block">Returns the media duration corresponding to the specified playout duration, taking speed
adjustment due to audio processing into account.
<p>The scaling performed by this method will use the actual playback speed achieved by the
audio processor chain, on average, since it was last flushed. This may differ very slightly
from the target playback speed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playoutDuration</code> - The playout duration to scale.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The corresponding media duration, in the same units as <code>duration</code>.</dd>
</dl>
</li>
</ul>
<a id="getSkippedOutputFrameCount()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSkippedOutputFrameCount</h4>
<pre class="methodSignature">long&nbsp;getSkippedOutputFrameCount()</pre>
<div class="block">Returns the number of output audio frames skipped since the audio processors were last flushed.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":18,"i24":6,"i25":6,"i26":6};
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":18,"i23":6,"i24":18,"i25":18,"i26":6,"i27":6,"i28":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -433,34 +433,49 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOutputStreamOffsetUs(long)">setOutputStreamOffsetUs</a></span>&#8203;(long&nbsp;outputStreamOffsetUs)</code></th>
<td class="colLast">
<div class="block">Sets the offset that is added to the media timestamp before it is passed as <code>
presentationTimeUs</code> in <a href="#handleBuffer(java.nio.ByteBuffer,long,int)"><code>handleBuffer(ByteBuffer, long, int)</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayerId(com.google.android.exoplayer2.analytics.PlayerId)">setPlayerId</a></span>&#8203;(<a href="../analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;playerId)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player using this audio sink.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPreferredDevice(android.media.AudioDeviceInfo)">setPreferredDevice</a></span>&#8203;(<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the preferred audio device.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether silences should be skipped in the audio stream.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Sets the playback volume.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsFormat(com.google.android.exoplayer2.Format)">supportsFormat</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
@ -841,6 +856,38 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="block">Sets the auxiliary effect.</div>
</li>
</ul>
<a id="setPreferredDevice(android.media.AudioDeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferredDevice</h4>
<pre class="methodSignature">@RequiresApi(23)
default&nbsp;void&nbsp;setPreferredDevice&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</pre>
<div class="block">Sets the preferred audio device.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioDeviceInfo</code> - The preferred <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">audio device</a>, or null to
restore the default.</dd>
</dl>
</li>
</ul>
<a id="setOutputStreamOffsetUs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOutputStreamOffsetUs</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;setOutputStreamOffsetUs&#8203;(long&nbsp;outputStreamOffsetUs)</pre>
<div class="block">Sets the offset that is added to the media timestamp before it is passed as <code>
presentationTimeUs</code> in <a href="#handleBuffer(java.nio.ByteBuffer,long,int)"><code>handleBuffer(ByteBuffer, long, int)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputStreamOffsetUs</code> - The output stream offset in microseconds.</dd>
</dl>
</li>
</ul>
<a id="enableTunnelingV21()">
<!-- -->
</a>

View File

@ -279,8 +279,8 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until it
has been <a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until
<a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a> has been called and more input has been queued.</div>
</td>
</tr>
<tr id="i6" class="altColor">
@ -320,10 +320,9 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="externalLink" target="_top">ByteBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceOutputBuffer(int)">replaceOutputBuffer</a></span>&#8203;(int&nbsp;count)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceOutputBuffer(int)">replaceOutputBuffer</a></span>&#8203;(int&nbsp;size)</code></th>
<td class="colLast">
<div class="block">Replaces the current output buffer with a buffer of at least <code>count</code> bytes and returns
it.</div>
<div class="block">Replaces the current output buffer with a buffer of at least <code>size</code> bytes and returns it.</div>
</td>
</tr>
<tr id="i12" class="altColor">
@ -419,7 +418,8 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature">public final&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
<pre class="methodSignature">@CanIgnoreReturnValue
public final&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
throws <a href="AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessor.html#configure(com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat)">AudioProcessor</a></code></span></div>
<div class="block">Configures the processor to process input audio with the specified format. After calling this
@ -504,8 +504,8 @@ public&nbsp;<a href="https://developer.android.com/reference/java/nio/ByteBuffer
<pre class="methodSignature">@CallSuper
public&nbsp;boolean&nbsp;isEnded()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessor.html#isEnded()">AudioProcessor</a></code></span></div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until it
has been <a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until
<a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a> has been called and more input has been queued.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AudioProcessor.html#isEnded()">isEnded</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a></code></dd>
@ -549,10 +549,10 @@ public&nbsp;boolean&nbsp;isEnded()</pre>
<ul class="blockList">
<li class="blockList">
<h4>replaceOutputBuffer</h4>
<pre class="methodSignature">protected final&nbsp;<a href="https://developer.android.com/reference/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="externalLink" target="_top">ByteBuffer</a>&nbsp;replaceOutputBuffer&#8203;(int&nbsp;count)</pre>
<div class="block">Replaces the current output buffer with a buffer of at least <code>count</code> bytes and returns
it. Callers should write to the returned buffer then <a href="https://developer.android.com/reference/java/nio/ByteBuffer.html#flip()" title="class or interface in java.nio" class="externalLink" target="_top"><code>ByteBuffer.flip()</code></a> it so it can be
read via <a href="#getOutput()"><code>getOutput()</code></a>.</div>
<pre class="methodSignature">protected final&nbsp;<a href="https://developer.android.com/reference/java/nio/ByteBuffer.html" title="class or interface in java.nio" class="externalLink" target="_top">ByteBuffer</a>&nbsp;replaceOutputBuffer&#8203;(int&nbsp;size)</pre>
<div class="block">Replaces the current output buffer with a buffer of at least <code>size</code> bytes and returns it.
Callers should write to the returned buffer then <a href="https://developer.android.com/reference/java/nio/ByteBuffer.html#flip()" title="class or interface in java.nio" class="externalLink" target="_top"><code>ByteBuffer.flip()</code></a> it so it can be read
via <a href="#getOutput()"><code>getOutput()</code></a>.</div>
</li>
</ul>
<a id="hasPendingOutput()">
@ -571,7 +571,8 @@ public&nbsp;boolean&nbsp;isEnded()</pre>
<ul class="blockList">
<li class="blockList">
<h4>onConfigure</h4>
<pre class="methodSignature">protected&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;onConfigure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
<pre class="methodSignature">@CanIgnoreReturnValue
protected&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;onConfigure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
throws <a href="AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></pre>
<div class="block">Called when the processor is configured for a new input format.</div>
<dl>

View File

@ -207,14 +207,14 @@ implements <a href="../util/MediaClock.html" title="interface in com.google.andr
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></h3>
<code><a href="../Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="../Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="../Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="../Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="../Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="../Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="../Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="../Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="../Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="../Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="../Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="../Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="../Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="../Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="../Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
<code><a href="../Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="../Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="../Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="../Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="../Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="../Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="../Renderer.html#MSG_SET_PREFERRED_AUDIO_DEVICE">MSG_SET_PREFERRED_AUDIO_DEVICE</a>, <a href="../Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="../Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="../Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="../Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="../Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="../Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="../Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="../Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="../Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.RendererCapabilities">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3>
<code><a href="../RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="../RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="../RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="../RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="../RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
<code><a href="../RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="../RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="../RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="../RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="../RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
</ul>
</li>
</ul>
@ -640,7 +640,8 @@ public&nbsp;<a href="../util/MediaClock.html" title="interface in com.google.and
<ul class="blockList">
<li class="blockList">
<h4>supportsFormatInternal</h4>
<pre class="methodSignature"><a href="../C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
<pre class="methodSignature">@ForOverride
<a href="../C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
protected abstract&nbsp;@com.google.android.exoplayer2.C.FormatSupport int&nbsp;supportsFormatInternal&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</pre>
<div class="block">Returns the <a href="../C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> for the given <a href="../Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a>.</div>
<dl>
@ -726,6 +727,7 @@ protected abstract&nbsp;@com.google.android.exoplayer2.C.FormatSupport int&nbsp;
<li class="blockList">
<h4>onPositionDiscontinuity</h4>
<pre class="methodSignature">@CallSuper
@ForOverride
protected&nbsp;void&nbsp;onPositionDiscontinuity()</pre>
<div class="block">See <a href="AudioSink.Listener.html#onPositionDiscontinuity()"><code>AudioSink.Listener.onPositionDiscontinuity()</code></a>.</div>
</li>
@ -736,7 +738,8 @@ protected&nbsp;void&nbsp;onPositionDiscontinuity()</pre>
<ul class="blockList">
<li class="blockList">
<h4>createDecoder</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="DecoderAudioRenderer.html" title="type parameter in DecoderAudioRenderer">T</a>&nbsp;createDecoder&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format,
<pre class="methodSignature">@ForOverride
protected abstract&nbsp;<a href="DecoderAudioRenderer.html" title="type parameter in DecoderAudioRenderer">T</a>&nbsp;createDecoder&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format,
@Nullable
<a href="../decoder/CryptoConfig.html" title="interface in com.google.android.exoplayer2.decoder">CryptoConfig</a>&nbsp;cryptoConfig)
throws <a href="../decoder/DecoderException.html" title="class in com.google.android.exoplayer2.decoder">DecoderException</a></pre>
@ -761,7 +764,8 @@ protected&nbsp;void&nbsp;onPositionDiscontinuity()</pre>
<ul class="blockList">
<li class="blockList">
<h4>getOutputFormat</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;getOutputFormat&#8203;(<a href="DecoderAudioRenderer.html" title="type parameter in DecoderAudioRenderer">T</a>&nbsp;decoder)</pre>
<pre class="methodSignature">@ForOverride
protected abstract&nbsp;<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;getOutputFormat&#8203;(<a href="DecoderAudioRenderer.html" title="type parameter in DecoderAudioRenderer">T</a>&nbsp;decoder)</pre>
<div class="block">Returns the format of audio buffers output by the decoder. Will not be called until the first
output buffer has been dequeued, so the decoder may use input data to determine the format.</div>
<dl>
@ -776,7 +780,8 @@ protected&nbsp;void&nbsp;onPositionDiscontinuity()</pre>
<ul class="blockList">
<li class="blockList">
<h4>canReuseDecoder</h4>
<pre class="methodSignature">protected&nbsp;<a href="../decoder/DecoderReuseEvaluation.html" title="class in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation</a>&nbsp;canReuseDecoder&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;decoderName,
<pre class="methodSignature">@ForOverride
protected&nbsp;<a href="../decoder/DecoderReuseEvaluation.html" title="class in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation</a>&nbsp;canReuseDecoder&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;decoderName,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;oldFormat,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;newFormat)</pre>
<div class="block">Evaluates whether the existing decoder can be reused for a new <a href="../Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a>.

View File

@ -25,12 +25,6 @@
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
@ -95,7 +89,7 @@ loadScripts(document, 'script');</script>
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
<li>Method</li>
</ul>
</div>
<a id="skip.navbar.top">
@ -121,6 +115,10 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.DefaultAudioProcessorChain</a></code></dd>
</dl>
@ -129,11 +127,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<dd><a href="DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">DefaultAudioSink.AudioProcessorChain</span></pre>
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and
applying playback parameters (if supported). Because applying playback parameters can skip and
stretch/compress audio, the sink will query the chain for information on how to transform its
output position to map it onto a media position, via <a href="#getMediaDuration(long)"><code>getMediaDuration(long)</code></a> and <a href="#getSkippedOutputFrameCount()"><code>getSkippedOutputFrameCount()</code></a>.</div>
<pre><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public static interface <span class="typeNameLabel">DefaultAudioSink.AudioProcessorChain</span>
extends <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a>.</div>
</div>
</li>
</ul>
</div>
@ -147,147 +146,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">applyPlaybackParameters</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Configures audio processors to apply the specified playback parameters immediately, returning
the new playback parameters, which may differ from those passed in.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applySkipSilenceEnabled(boolean)">applySkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Configures audio processors to apply whether to skip silences immediately, returning the new
value.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAudioProcessors()">getAudioProcessors</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the fixed chain of audio processors that will process audio.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaDuration(long)">getMediaDuration</a></span>&#8203;(long&nbsp;playoutDuration)</code></th>
<td class="colLast">
<div class="block">Returns the media duration corresponding to the specified playout duration, taking speed
adjustment due to audio processing into account.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of output audio frames skipped since the audio processors were last
flushed.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.audio.AudioProcessorChain">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getAudioProcessors()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAudioProcessors</h4>
<pre class="methodSignature"><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]&nbsp;getAudioProcessors()</pre>
<div class="block">Returns the fixed chain of audio processors that will process audio. This method is called
once during initialization, but audio processors may change state to become active/inactive
during playback.</div>
</li>
</ul>
<a id="applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyPlaybackParameters</h4>
<pre class="methodSignature"><a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;applyPlaybackParameters&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block">Configures audio processors to apply the specified playback parameters immediately, returning
the new playback parameters, which may differ from those passed in. Only called when
processors have no input pending.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters to try to apply.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The playback parameters that were actually applied.</dd>
</dl>
</li>
</ul>
<a id="applySkipSilenceEnabled(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applySkipSilenceEnabled</h4>
<pre class="methodSignature">boolean&nbsp;applySkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="block">Configures audio processors to apply whether to skip silences immediately, returning the new
value. Only called when processors have no input pending.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>skipSilenceEnabled</code> - Whether silences should be skipped in the audio stream.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The new value.</dd>
</dl>
</li>
</ul>
<a id="getMediaDuration(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMediaDuration</h4>
<pre class="methodSignature">long&nbsp;getMediaDuration&#8203;(long&nbsp;playoutDuration)</pre>
<div class="block">Returns the media duration corresponding to the specified playout duration, taking speed
adjustment due to audio processing into account.
<p>The scaling performed by this method will use the actual playback speed achieved by the
audio processor chain, on average, since it was last flushed. This may differ very slightly
from the target playback speed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playoutDuration</code> - The playout duration to scale.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The corresponding media duration, in the same units as <code>duration</code>.</dd>
</dl>
</li>
</ul>
<a id="getSkippedOutputFrameCount()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSkippedOutputFrameCount</h4>
<pre class="methodSignature">long&nbsp;getSkippedOutputFrameCount()</pre>
<div class="block">Returns the number of output audio frames skipped since the audio processors were last
flushed.</div>
</li>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.audio.<a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></h3>
<code><a href="AudioProcessorChain.html#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">applyPlaybackParameters</a>, <a href="AudioProcessorChain.html#applySkipSilenceEnabled(boolean)">applySkipSilenceEnabled</a>, <a href="AudioProcessorChain.html#getAudioProcessors()">getAudioProcessors</a>, <a href="AudioProcessorChain.html#getMediaDuration(long)">getMediaDuration</a>, <a href="AudioProcessorChain.html#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></code></li>
</ul>
</li>
</ul>
@ -349,7 +213,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
<li>Method</li>
</ul>
</div>
<a id="skip.navbar.bottom">

View File

@ -0,0 +1,331 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>DefaultAudioSink.AudioTrackBufferSizeProvider (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DefaultAudioSink.AudioTrackBufferSizeProvider (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.audio</a></div>
<h2 title="Interface DefaultAudioSink.AudioTrackBufferSizeProvider" class="title">Interface DefaultAudioSink.AudioTrackBufferSizeProvider</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider</a></code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">DefaultAudioSink.AudioTrackBufferSizeProvider</span></pre>
<div class="block">Provides the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT">DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Default instance.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">getBufferSizeInBytes</a></span>&#8203;(int&nbsp;minBufferSizeInBytes,
@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
double&nbsp;maxAudioTrackPlaybackSpeed)</code></th>
<td class="colLast">
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DEFAULT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT</h4>
<pre>static final&nbsp;<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a> DEFAULT</pre>
<div class="block">Default instance.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getBufferSizeInBytes</h4>
<pre class="methodSignature">int&nbsp;getBufferSizeInBytes&#8203;(int&nbsp;minBufferSizeInBytes,
@com.google.android.exoplayer2.C.Encoding int&nbsp;encoding,
@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputMode int&nbsp;outputMode,
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
double&nbsp;maxAudioTrackPlaybackSpeed)</pre>
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minBufferSizeInBytes</code> - The minimum buffer size in bytes required to play this format.
See <a href="https://developer.android.com/reference/android/media/AudioTrack.html#getMinBufferSize(int,int,int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.getMinBufferSize(int, int, int)</code></a>.</dd>
<dd><code>encoding</code> - The <a href="../C.Encoding.html" title="annotation in com.google.android.exoplayer2"><code>C.Encoding</code></a> of the format.</dd>
<dd><code>outputMode</code> - How the audio will be played. One of the <a href="DefaultAudioSink.OutputMode.html" title="annotation in com.google.android.exoplayer2.audio"><code>output modes</code></a>.</dd>
<dd><code>pcmFrameSize</code> - The size of the PCM frames if the <code>encoding</code> is PCM, 1 otherwise,
in bytes.</dd>
<dd><code>sampleRate</code> - The sample rate of the format, in Hz.</dd>
<dd><code>maxAudioTrackPlaybackSpeed</code> - The maximum speed the content will be played using <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(android.media.PlaybackParams)</code></a>. 0.5 is 2x slow motion, 1 is real time, 2 is 2x fast
forward, etc. This will be <code>1</code> unless <a href="DefaultAudioSink.Builder.html#setEnableAudioTrackPlaybackParams(boolean)"><code>DefaultAudioSink.Builder.setEnableAudioTrackPlaybackParams(boolean)</code></a> is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The computed buffer size in bytes. It should always be <code>&gt;=
minBufferSizeInBytes</code>. The computed buffer size must contain an integer number of frames:
<code>bufferSizeInBytes % pcmFrameSize == 0</code>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -195,9 +195,10 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioProcessorChain(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioProcessorChain)">setAudioProcessorChain</a></span>&#8203;(<a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a>&nbsp;audioProcessorChain)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioProcessorChain(com.google.android.exoplayer2.audio.AudioProcessorChain)">setAudioProcessorChain</a></span>&#8203;(<a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a>&nbsp;audioProcessorChain)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>DefaultAudioSink.AudioProcessorChain</code></a> to process audio before playback.</div>
<div class="block">Sets the <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a> to process audio
before playback.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
@ -210,9 +211,9 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioTrackBufferSizeProvider(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider)">setAudioTrackBufferSizeProvider</a></span>&#8203;(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider&nbsp;audioTrackBufferSizeProvider)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAudioTrackBufferSizeProvider(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider)">setAudioTrackBufferSizeProvider</a></span>&#8203;(<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a>&nbsp;audioTrackBufferSizeProvider)</code></th>
<td class="colLast">
<div class="block">Sets an <code>DefaultAudioSink.AudioTrackBufferSizeProvider</code> to compute the buffer size when <a href="DefaultAudioSink.html#configure(com.google.android.exoplayer2.Format,int,int%5B%5D)"><code>DefaultAudioSink.configure(com.google.android.exoplayer2.Format, int, int[])</code></a> is called with <code>specifiedBufferSize == 0</code>.</div>
<div class="block">Sets an <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio"><code>DefaultAudioSink.AudioTrackBufferSizeProvider</code></a> to compute the buffer size when <a href="DefaultAudioSink.html#configure(com.google.android.exoplayer2.Format,int,int%5B%5D)"><code>DefaultAudioSink.configure(com.google.android.exoplayer2.Format, int, int[])</code></a> is called with <code>specifiedBufferSize == 0</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
@ -231,6 +232,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExperimentalAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">setExperimentalAudioOffloadListener</a></span>&#8203;(<a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;audioOffloadListener)</code></th>
<td class="colLast">
<div class="block">Sets an optional <a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.AudioOffloadListener</code></a> to receive events relevant to offloaded
playback.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOffloadMode(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadModeint)">setOffloadMode</a></span>&#8203;(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int&nbsp;offloadMode)</code></th>
<td class="colLast">
<div class="block">Sets the offload mode.</div>
@ -286,7 +295,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAudioCapabilities</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioCapabilities&#8203;(<a href="AudioCapabilities.html" title="class in com.google.android.exoplayer2.audio">AudioCapabilities</a>&nbsp;audioCapabilities)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioCapabilities&#8203;(<a href="AudioCapabilities.html" title="class in com.google.android.exoplayer2.audio">AudioCapabilities</a>&nbsp;audioCapabilities)</pre>
<div class="block">Sets audio capabilities for playback on this device. May be <code>null</code> if the default
capabilities (no encoded audio passthrough support) should be assumed.
@ -299,7 +309,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAudioProcessors</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioProcessors&#8203;(<a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]&nbsp;audioProcessors)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioProcessors&#8203;(<a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]&nbsp;audioProcessors)</pre>
<div class="block">Sets an array of <a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessors</code></a>s that will process PCM audio before
output. May be empty. Equivalent of <code>setAudioProcessorChain(new
DefaultAudioProcessorChain(audioProcessors)</code>.
@ -307,16 +318,17 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<p>The default value is an empty array.</div>
</li>
</ul>
<a id="setAudioProcessorChain(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioProcessorChain)">
<a id="setAudioProcessorChain(com.google.android.exoplayer2.audio.AudioProcessorChain)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAudioProcessorChain</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioProcessorChain&#8203;(<a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a>&nbsp;audioProcessorChain)</pre>
<div class="block">Sets the <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>DefaultAudioSink.AudioProcessorChain</code></a> to process audio before playback. The instance passed in
must not be reused in other sinks. Processing chains are only supported for PCM playback (not
passthrough or offload).
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioProcessorChain&#8203;(<a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a>&nbsp;audioProcessorChain)</pre>
<div class="block">Sets the <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a> to process audio
before playback. The instance passed in must not be reused in other sinks. Processing chains
are only supported for PCM playback (not passthrough or offload).
<p>By default, no processing will be applied.</div>
</li>
@ -327,7 +339,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setEnableFloatOutput</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setEnableFloatOutput&#8203;(boolean&nbsp;enableFloatOutput)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setEnableFloatOutput&#8203;(boolean&nbsp;enableFloatOutput)</pre>
<div class="block">Sets whether to enable 32-bit float output or integer output. Where possible, 32-bit float
output will be used if the input is 32-bit float, and also if the input is high resolution
(24-bit or 32-bit) integer PCM. Float output is supported from API level 21. Audio processing
@ -342,7 +355,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setEnableAudioTrackPlaybackParams</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setEnableAudioTrackPlaybackParams&#8203;(boolean&nbsp;enableAudioTrackPlaybackParams)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setEnableAudioTrackPlaybackParams&#8203;(boolean&nbsp;enableAudioTrackPlaybackParams)</pre>
<div class="block">Sets whether to control the playback speed using the platform implementation (see <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(PlaybackParams)</code></a>), if supported. If set to <code>false</code>, speed
up/down of the audio will be done by ExoPlayer (see <a href="SonicAudioProcessor.html" title="class in com.google.android.exoplayer2.audio"><code>SonicAudioProcessor</code></a>). Platform
speed adjustment is lower latency, but less reliable.
@ -356,7 +370,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setOffloadMode</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setOffloadMode&#8203;(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int&nbsp;offloadMode)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setOffloadMode&#8203;(@com.google.android.exoplayer2.audio.DefaultAudioSink.OffloadMode int&nbsp;offloadMode)</pre>
<div class="block">Sets the offload mode. If an audio format can be both played with offload and encoded audio
passthrough, it will be played in offload. Audio offload is supported from API level 29. Most
Android devices can only support one offload <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> at a time and can invalidate
@ -373,10 +388,26 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAudioTrackBufferSizeProvider</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioTrackBufferSizeProvider&#8203;(com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider&nbsp;audioTrackBufferSizeProvider)</pre>
<div class="block">Sets an <code>DefaultAudioSink.AudioTrackBufferSizeProvider</code> to compute the buffer size when <a href="DefaultAudioSink.html#configure(com.google.android.exoplayer2.Format,int,int%5B%5D)"><code>DefaultAudioSink.configure(com.google.android.exoplayer2.Format, int, int[])</code></a> is called with <code>specifiedBufferSize == 0</code>.
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setAudioTrackBufferSizeProvider&#8203;(<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a>&nbsp;audioTrackBufferSizeProvider)</pre>
<div class="block">Sets an <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio"><code>DefaultAudioSink.AudioTrackBufferSizeProvider</code></a> to compute the buffer size when <a href="DefaultAudioSink.html#configure(com.google.android.exoplayer2.Format,int,int%5B%5D)"><code>DefaultAudioSink.configure(com.google.android.exoplayer2.Format, int, int[])</code></a> is called with <code>specifiedBufferSize == 0</code>.
<p>The default value is <code>DefaultAudioSink.AudioTrackBufferSizeProvider.DEFAULT</code>.</div>
<p>The default value is <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#DEFAULT"><code>DefaultAudioSink.AudioTrackBufferSizeProvider.DEFAULT</code></a>.</div>
</li>
</ul>
<a id="setExperimentalAudioOffloadListener(com.google.android.exoplayer2.ExoPlayer.AudioOffloadListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExperimentalAudioOffloadListener</h4>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a>&nbsp;setExperimentalAudioOffloadListener&#8203;(@Nullable
<a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a>&nbsp;audioOffloadListener)</pre>
<div class="block">Sets an optional <a href="../ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.AudioOffloadListener</code></a> to receive events relevant to offloaded
playback.
<p>The default value is null.</div>
</li>
</ul>
<a id="build()">

View File

@ -130,7 +130,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code>, <code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
@ -230,8 +230,7 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of output audio frames skipped since the audio processors were last
flushed.</div>
<div class="block">Returns the number of output audio frames skipped since the audio processors were last flushed.</div>
</td>
</tr>
</table>
@ -299,13 +298,13 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<li class="blockList">
<h4>getAudioProcessors</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a>[]&nbsp;getAudioProcessors()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html#getAudioProcessors()">DefaultAudioSink.AudioProcessorChain</a></code></span></div>
<div class="block">Returns the fixed chain of audio processors that will process audio. This method is called
once during initialization, but audio processors may change state to become active/inactive
during playback.</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessorChain.html#getAudioProcessors()">AudioProcessorChain</a></code></span></div>
<div class="block">Returns the fixed chain of audio processors that will process audio. This method is called once
during initialization, but audio processors may change state to become active/inactive during
playback.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html#getAudioProcessors()">getAudioProcessors</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html#getAudioProcessors()">getAudioProcessors</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
</dl>
</li>
</ul>
@ -316,13 +315,13 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<li class="blockList">
<h4>applyPlaybackParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;applyPlaybackParameters&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">DefaultAudioSink.AudioProcessorChain</a></code></span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessorChain.html#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">AudioProcessorChain</a></code></span></div>
<div class="block">Configures audio processors to apply the specified playback parameters immediately, returning
the new playback parameters, which may differ from those passed in. Only called when
processors have no input pending.</div>
the new playback parameters, which may differ from those passed in. Only called when processors
have no input pending.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">applyPlaybackParameters</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html#applyPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">applyPlaybackParameters</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playbackParameters</code> - The playback parameters to try to apply.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
@ -337,12 +336,12 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<li class="blockList">
<h4>applySkipSilenceEnabled</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;applySkipSilenceEnabled&#8203;(boolean&nbsp;skipSilenceEnabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html#applySkipSilenceEnabled(boolean)">DefaultAudioSink.AudioProcessorChain</a></code></span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessorChain.html#applySkipSilenceEnabled(boolean)">AudioProcessorChain</a></code></span></div>
<div class="block">Configures audio processors to apply whether to skip silences immediately, returning the new
value. Only called when processors have no input pending.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html#applySkipSilenceEnabled(boolean)">applySkipSilenceEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html#applySkipSilenceEnabled(boolean)">applySkipSilenceEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>skipSilenceEnabled</code> - Whether silences should be skipped in the audio stream.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
@ -357,7 +356,7 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<li class="blockList">
<h4>getMediaDuration</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getMediaDuration&#8203;(long&nbsp;playoutDuration)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html#getMediaDuration(long)">DefaultAudioSink.AudioProcessorChain</a></code></span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessorChain.html#getMediaDuration(long)">AudioProcessorChain</a></code></span></div>
<div class="block">Returns the media duration corresponding to the specified playout duration, taking speed
adjustment due to audio processing into account.
@ -366,7 +365,7 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
from the target playback speed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html#getMediaDuration(long)">getMediaDuration</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html#getMediaDuration(long)">getMediaDuration</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>playoutDuration</code> - The playout duration to scale.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
@ -381,12 +380,11 @@ implements <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface
<li class="blockList">
<h4>getSkippedOutputFrameCount</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getSkippedOutputFrameCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html#getSkippedOutputFrameCount()">DefaultAudioSink.AudioProcessorChain</a></code></span></div>
<div class="block">Returns the number of output audio frames skipped since the audio processors were last
flushed.</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessorChain.html#getSkippedOutputFrameCount()">AudioProcessorChain</a></code></span></div>
<div class="block">Returns the number of output audio frames skipped since the audio processors were last flushed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioProcessorChain.html#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></code></dd>
<dd><code><a href="AudioProcessorChain.html#getSkippedOutputFrameCount()">getSkippedOutputFrameCount</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></code></dd>
</dl>
</li>
</ul>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -167,18 +167,26 @@ implements <a href="AudioSink.html" title="interface in com.google.android.exopl
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></span></code></th>
<td class="colLast">
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and
applying playback parameters (if supported).</div>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a>.</div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></span></code></th>
<td class="colLast">
<div class="block">Provides the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></span></code></th>
<td class="colLast">
<div class="block">A builder to create <a href="DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio"><code>DefaultAudioSink</code></a> instances.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.DefaultAudioProcessorChain</a></span></code></th>
<td class="colLast">
@ -186,21 +194,21 @@ implements <a href="AudioSink.html" title="interface in com.google.android.exopl
processors followed by <a href="SilenceSkippingAudioProcessor.html" title="class in com.google.android.exoplayer2.audio"><code>SilenceSkippingAudioProcessor</code></a> and <a href="SonicAudioProcessor.html" title="class in com.google.android.exoplayer2.audio"><code>SonicAudioProcessor</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.InvalidAudioTrackTimestampException.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.InvalidAudioTrackTimestampException</a></span></code></th>
<td class="colLast">
<div class="block">Thrown when the audio track has provided a spurious timestamp, if <a href="#failOnSpuriousAudioTimestamp"><code>failOnSpuriousAudioTimestamp</code></a> is set.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.OffloadMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OffloadMode</a></span></code></th>
<td class="colLast">
<div class="block">Audio offload mode configuration.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="DefaultAudioSink.OutputMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OutputMode</a></span></code></th>
<td class="colLast">
@ -575,19 +583,26 @@ implements <a href="AudioSink.html" title="interface in com.google.android.exopl
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPreferredDevice(android.media.AudioDeviceInfo)">setPreferredDevice</a></span>&#8203;(<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the preferred audio device.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether silences should be skipped in the audio stream.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Sets the playback volume.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsFormat(com.google.android.exoplayer2.Format)">supportsFormat</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
@ -602,6 +617,13 @@ implements <a href="AudioSink.html" title="interface in com.google.android.exopl
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.audio.AudioSink">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.audio.<a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></h3>
<code><a href="AudioSink.html#setOutputStreamOffsetUs(long)">setOutputStreamOffsetUs</a></code></li>
</ul>
</li>
</ul>
</section>
@ -1255,6 +1277,26 @@ public&nbsp;DefaultAudioSink&#8203;(@Nullable
</dl>
</li>
</ul>
<a id="setPreferredDevice(android.media.AudioDeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferredDevice</h4>
<pre class="methodSignature">@RequiresApi(23)
public&nbsp;void&nbsp;setPreferredDevice&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioSink.html#setPreferredDevice(android.media.AudioDeviceInfo)">AudioSink</a></code></span></div>
<div class="block">Sets the preferred audio device.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AudioSink.html#setPreferredDevice(android.media.AudioDeviceInfo)">setPreferredDevice</a></code>&nbsp;in interface&nbsp;<code><a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioDeviceInfo</code> - The preferred <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">audio device</a>, or null to
restore the default.</dd>
</dl>
</li>
</ul>
<a id="enableTunnelingV21()">
<!-- -->
</a>

View File

@ -279,7 +279,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMinPcmBufferDurationUs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setMinPcmBufferDurationUs&#8203;(int&nbsp;minPcmBufferDurationUs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setMinPcmBufferDurationUs&#8203;(int&nbsp;minPcmBufferDurationUs)</pre>
<div class="block">Sets the minimum length for PCM <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds. Default is
<a href="DefaultAudioTrackBufferSizeProvider.html#MIN_PCM_BUFFER_DURATION_US">250000</a>.</div>
</li>
@ -290,7 +291,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMaxPcmBufferDurationUs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setMaxPcmBufferDurationUs&#8203;(int&nbsp;maxPcmBufferDurationUs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setMaxPcmBufferDurationUs&#8203;(int&nbsp;maxPcmBufferDurationUs)</pre>
<div class="block">Sets the maximum length for PCM <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds. Default is
<a href="DefaultAudioTrackBufferSizeProvider.html#MAX_PCM_BUFFER_DURATION_US">750000</a>.</div>
</li>
@ -301,7 +303,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPcmBufferMultiplicationFactor</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setPcmBufferMultiplicationFactor&#8203;(int&nbsp;pcmBufferMultiplicationFactor)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setPcmBufferMultiplicationFactor&#8203;(int&nbsp;pcmBufferMultiplicationFactor)</pre>
<div class="block">Sets the multiplication factor to apply to the minimum buffer size requested. Default is
<a href="DefaultAudioTrackBufferSizeProvider.html#PCM_BUFFER_MULTIPLICATION_FACTOR">4</a>.</div>
</li>
@ -312,7 +315,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPassthroughBufferDurationUs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setPassthroughBufferDurationUs&#8203;(int&nbsp;passthroughBufferDurationUs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setPassthroughBufferDurationUs&#8203;(int&nbsp;passthroughBufferDurationUs)</pre>
<div class="block">Sets the length for passthrough <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds. Default is
<a href="DefaultAudioTrackBufferSizeProvider.html#PASSTHROUGH_BUFFER_DURATION_US">250000</a>.</div>
</li>
@ -323,7 +327,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setOffloadBufferDurationUs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setOffloadBufferDurationUs&#8203;(int&nbsp;offloadBufferDurationUs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setOffloadBufferDurationUs&#8203;(int&nbsp;offloadBufferDurationUs)</pre>
<div class="block">The length for offload <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink"><code>AudioTrack</code></a> buffers, in microseconds. Default is <a href="DefaultAudioTrackBufferSizeProvider.html#OFFLOAD_BUFFER_DURATION_US" target="_top">50000000</a>.</div>
</li>
</ul>
@ -333,7 +338,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setAc3BufferMultiplicationFactor</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setAc3BufferMultiplicationFactor&#8203;(int&nbsp;ac3BufferMultiplicationFactor)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a>&nbsp;setAc3BufferMultiplicationFactor&#8203;(int&nbsp;ac3BufferMultiplicationFactor)</pre>
<div class="block">Sets the multiplication factor to apply to the passthrough buffer for AC3 to avoid underruns
on some devices (e.g., Broadcom 7271). Default is <a href="DefaultAudioTrackBufferSizeProvider.html#AC3_BUFFER_MULTIPLICATION_FACTOR">2</a>.</div>
</li>

View File

@ -128,9 +128,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">DefaultAudioTrackBufferSizeProvider</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></pre>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></pre>
<div class="block">Provide the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</li>
</ul>
@ -186,41 +191,34 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT">DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Default instance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxPcmBufferDurationUs">maxPcmBufferDurationUs</a></span></code></th>
<td class="colLast">
<div class="block">The maximum length for PCM <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minPcmBufferDurationUs">minPcmBufferDurationUs</a></span></code></th>
<td class="colLast">
<div class="block">The minimum length for PCM <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#offloadBufferDurationUs">offloadBufferDurationUs</a></span></code></th>
<td class="colLast">
<div class="block">The length for offload <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#passthroughBufferDurationUs">passthroughBufferDurationUs</a></span></code></th>
<td class="colLast">
<div class="block">The length for passthrough <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> buffers, in microseconds.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pcmBufferMultiplicationFactor">pcmBufferMultiplicationFactor</a></span></code></th>
<td class="colLast">
@ -228,6 +226,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></h3>
<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#DEFAULT">DEFAULT</a></code></li>
</ul>
</li>
</ul>
</section>
@ -294,7 +299,10 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
double&nbsp;maxAudioTrackPlaybackSpeed)</code></th>
<td class="colLast">&nbsp;</td>
<td class="colLast">
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected static int</code></td>
@ -401,7 +409,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a id="ac3BufferMultiplicationFactor">
<!-- -->
</a>
<ul class="blockList">
<ul class="blockListLast">
<li class="blockList">
<h4>ac3BufferMultiplicationFactor</h4>
<pre>public final&nbsp;int ac3BufferMultiplicationFactor</pre>
@ -409,16 +417,6 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
(e.g., Broadcom 7271).</div>
</li>
</ul>
<a id="DEFAULT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT</h4>
<pre>public static final&nbsp;com.google.android.exoplayer2.audio.DefaultAudioSink.AudioTrackBufferSizeProvider DEFAULT</pre>
<div class="block">Default instance.</div>
</li>
</ul>
</li>
</ul>
</section>
@ -460,6 +458,27 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
int&nbsp;pcmFrameSize,
int&nbsp;sampleRate,
double&nbsp;maxAudioTrackPlaybackSpeed)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></span></div>
<div class="block">Returns the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a> for a specific format and
output mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html#getBufferSizeInBytes(int,@com.google.android.exoplayer2.C.Encodingint,@com.google.android.exoplayer2.audio.DefaultAudioSink.OutputModeint,int,int,double)">getBufferSizeInBytes</a></code>&nbsp;in interface&nbsp;<code><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minBufferSizeInBytes</code> - The minimum buffer size in bytes required to play this format.
See <a href="https://developer.android.com/reference/android/media/AudioTrack.html#getMinBufferSize(int,int,int)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.getMinBufferSize(int, int, int)</code></a>.</dd>
<dd><code>encoding</code> - The <a href="../C.Encoding.html" title="annotation in com.google.android.exoplayer2"><code>C.Encoding</code></a> of the format.</dd>
<dd><code>outputMode</code> - How the audio will be played. One of the <a href="DefaultAudioSink.OutputMode.html" title="annotation in com.google.android.exoplayer2.audio"><code>output modes</code></a>.</dd>
<dd><code>pcmFrameSize</code> - The size of the PCM frames if the <code>encoding</code> is PCM, 1 otherwise,
in bytes.</dd>
<dd><code>sampleRate</code> - The sample rate of the format, in Hz.</dd>
<dd><code>maxAudioTrackPlaybackSpeed</code> - The maximum speed the content will be played using <a href="https://developer.android.com/reference/android/media/AudioTrack.html#setPlaybackParams(android.media.PlaybackParams)" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack.setPlaybackParams(android.media.PlaybackParams)</code></a>. 0.5 is 2x slow motion, 1 is real time, 2 is 2x fast
forward, etc. This will be <code>1</code> unless <a href="DefaultAudioSink.Builder.html#setEnableAudioTrackPlaybackParams(boolean)"><code>DefaultAudioSink.Builder.setEnableAudioTrackPlaybackParams(boolean)</code></a> is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The computed buffer size in bytes. It should always be <code>&gt;=
minBufferSizeInBytes</code>. The computed buffer size must contain an integer number of frames:
<code>bufferSizeInBytes % pcmFrameSize == 0</code>.</dd>
</dl>
</li>
</ul>
<a id="get1xBufferSizeInBytes(int,int,int,int,int)">

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -378,33 +378,48 @@ implements <a href="AudioSink.html" title="interface in com.google.android.exopl
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOutputStreamOffsetUs(long)">setOutputStreamOffsetUs</a></span>&#8203;(long&nbsp;outputStreamOffsetUs)</code></th>
<td class="colLast">
<div class="block">Sets the offset that is added to the media timestamp before it is passed as <code>
presentationTimeUs</code> in <a href="AudioSink.html#handleBuffer(java.nio.ByteBuffer,long,int)"><code>AudioSink.handleBuffer(ByteBuffer, long, int)</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlayerId(com.google.android.exoplayer2.analytics.PlayerId)">setPlayerId</a></span>&#8203;(<a href="../analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;playerId)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player using this audio sink.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPreferredDevice(android.media.AudioDeviceInfo)">setPreferredDevice</a></span>&#8203;(<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the preferred audio device.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSkipSilenceEnabled(boolean)">setSkipSilenceEnabled</a></span>&#8203;(boolean&nbsp;skipSilenceEnabled)</code></th>
<td class="colLast">
<div class="block">Sets whether silences should be skipped in the audio stream.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVolume(float)">setVolume</a></span>&#8203;(float&nbsp;volume)</code></th>
<td class="colLast">
<div class="block">Sets the playback volume.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsFormat(com.google.android.exoplayer2.Format)">supportsFormat</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
@ -824,6 +839,44 @@ public&nbsp;<a href="AudioAttributes.html" title="class in com.google.android.ex
</dl>
</li>
</ul>
<a id="setPreferredDevice(android.media.AudioDeviceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferredDevice</h4>
<pre class="methodSignature">@RequiresApi(23)
public&nbsp;void&nbsp;setPreferredDevice&#8203;(@Nullable
<a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">AudioDeviceInfo</a>&nbsp;audioDeviceInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioSink.html#setPreferredDevice(android.media.AudioDeviceInfo)">AudioSink</a></code></span></div>
<div class="block">Sets the preferred audio device.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AudioSink.html#setPreferredDevice(android.media.AudioDeviceInfo)">setPreferredDevice</a></code>&nbsp;in interface&nbsp;<code><a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioDeviceInfo</code> - The preferred <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo.html" title="class or interface in android.media" class="externalLink" target="_top">audio device</a>, or null to
restore the default.</dd>
</dl>
</li>
</ul>
<a id="setOutputStreamOffsetUs(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOutputStreamOffsetUs</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setOutputStreamOffsetUs&#8203;(long&nbsp;outputStreamOffsetUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioSink.html#setOutputStreamOffsetUs(long)">AudioSink</a></code></span></div>
<div class="block">Sets the offset that is added to the media timestamp before it is passed as <code>
presentationTimeUs</code> in <a href="AudioSink.html#handleBuffer(java.nio.ByteBuffer,long,int)"><code>AudioSink.handleBuffer(ByteBuffer, long, int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AudioSink.html#setOutputStreamOffsetUs(long)">setOutputStreamOffsetUs</a></code>&nbsp;in interface&nbsp;<code><a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputStreamOffsetUs</code> - The output stream offset in microseconds.</dd>
</dl>
</li>
</ul>
<a id="enableTunnelingV21()">
<!-- -->
</a>

View File

@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -222,14 +222,14 @@ implements <a href="../util/MediaClock.html" title="interface in com.google.andr
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></h3>
<code><a href="../Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="../Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="../Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="../Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="../Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="../Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="../Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="../Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="../Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="../Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="../Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="../Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="../Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="../Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="../Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
<code><a href="../Renderer.html#MSG_CUSTOM_BASE">MSG_CUSTOM_BASE</a>, <a href="../Renderer.html#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a>, <a href="../Renderer.html#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a>, <a href="../Renderer.html#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a>, <a href="../Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a>, <a href="../Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a>, <a href="../Renderer.html#MSG_SET_PREFERRED_AUDIO_DEVICE">MSG_SET_PREFERRED_AUDIO_DEVICE</a>, <a href="../Renderer.html#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a>, <a href="../Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED">MSG_SET_SKIP_SILENCE_ENABLED</a>, <a href="../Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER">MSG_SET_VIDEO_FRAME_METADATA_LISTENER</a>, <a href="../Renderer.html#MSG_SET_VIDEO_OUTPUT">MSG_SET_VIDEO_OUTPUT</a>, <a href="../Renderer.html#MSG_SET_VOLUME">MSG_SET_VOLUME</a>, <a href="../Renderer.html#MSG_SET_WAKEUP_LISTENER">MSG_SET_WAKEUP_LISTENER</a>, <a href="../Renderer.html#STATE_DISABLED">STATE_DISABLED</a>, <a href="../Renderer.html#STATE_ENABLED">STATE_ENABLED</a>, <a href="../Renderer.html#STATE_STARTED">STATE_STARTED</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.RendererCapabilities">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.<a href="../RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3>
<code><a href="../RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="../RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="../RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="../RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="../RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
<code><a href="../RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS">ADAPTIVE_NOT_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED">ADAPTIVE_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SEAMLESS">ADAPTIVE_SEAMLESS</a>, <a href="../RendererCapabilities.html#ADAPTIVE_SUPPORT_MASK">ADAPTIVE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_FALLBACK_MIMETYPE">DECODER_SUPPORT_FALLBACK_MIMETYPE</a>, <a href="../RendererCapabilities.html#DECODER_SUPPORT_PRIMARY">DECODER_SUPPORT_PRIMARY</a>, <a href="../RendererCapabilities.html#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a>, <a href="../RendererCapabilities.html#FORMAT_HANDLED">FORMAT_HANDLED</a>, <a href="../RendererCapabilities.html#FORMAT_SUPPORT_MASK">FORMAT_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_DRM">FORMAT_UNSUPPORTED_DRM</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_SUBTYPE">FORMAT_UNSUPPORTED_SUBTYPE</a>, <a href="../RendererCapabilities.html#FORMAT_UNSUPPORTED_TYPE">FORMAT_UNSUPPORTED_TYPE</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED">HARDWARE_ACCELERATION_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORT_MASK">HARDWARE_ACCELERATION_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED">HARDWARE_ACCELERATION_SUPPORTED</a>, <a href="../RendererCapabilities.html#MODE_SUPPORT_MASK">MODE_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a>, <a href="../RendererCapabilities.html#TUNNELING_SUPPORTED">TUNNELING_SUPPORTED</a></code></li>
</ul>
</li>
</ul>
@ -490,12 +490,19 @@ implements <a href="../util/MediaClock.html" title="interface in com.google.andr
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onOutputStreamOffsetUsChanged(long)">onOutputStreamOffsetUsChanged</a></span>&#8203;(long&nbsp;outputStreamOffsetUs)</code></th>
<td class="colLast">
<div class="block">Called after the output stream offset changes.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPositionDiscontinuity()">onPositionDiscontinuity</a></span>()</code></th>
<td class="colLast">
<div class="block">See <a href="AudioSink.Listener.html#onPositionDiscontinuity()"><code>AudioSink.Listener.onPositionDiscontinuity()</code></a>.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onPositionReset(long,boolean)">onPositionReset</a></span>&#8203;(long&nbsp;positionUs,
boolean&nbsp;joining)</code></th>
@ -503,42 +510,42 @@ implements <a href="../util/MediaClock.html" title="interface in com.google.andr
<div class="block">Called when the position is reset.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onProcessedStreamChange()">onProcessedStreamChange</a></span>()</code></th>
<td class="colLast">
<div class="block">Called after the last output buffer before a stream change has been processed.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onQueueInputBuffer(com.google.android.exoplayer2.decoder.DecoderInputBuffer)">onQueueInputBuffer</a></span>&#8203;(<a href="../decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>&nbsp;buffer)</code></th>
<td class="colLast">
<div class="block">Called immediately before an input buffer is queued into the codec.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onReset()">onReset</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when the renderer is reset.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStarted()">onStarted</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when the renderer is started.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStopped()">onStopped</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when the renderer is stopped.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#processOutputBuffer(long,long,com.google.android.exoplayer2.mediacodec.MediaCodecAdapter,java.nio.ByteBuffer,int,int,int,long,boolean,boolean,com.google.android.exoplayer2.Format)">processOutputBuffer</a></span>&#8203;(long&nbsp;positionUs,
long&nbsp;elapsedRealtimeUs,
@ -555,28 +562,28 @@ implements <a href="../util/MediaClock.html" title="interface in com.google.andr
<div class="block">Processes an output media buffer.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#renderToEndOfStream()">renderToEndOfStream</a></span>()</code></th>
<td class="colLast">
<div class="block">Incrementally renders any remaining output.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)">setPlaybackParameters</a></span>&#8203;(<a href="../PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a>&nbsp;playbackParameters)</code></th>
<td class="colLast">
<div class="block">Attempts to set the playback parameters.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldUseBypass(com.google.android.exoplayer2.Format)">shouldUseBypass</a></span>&#8203;(<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
<td class="colLast">
<div class="block">Returns whether buffers in the input format can be processed without a codec.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected @com.google.android.exoplayer2.RendererCapabilities.Capabilities int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsFormat(com.google.android.exoplayer2.mediacodec.MediaCodecSelector,com.google.android.exoplayer2.Format)">supportsFormat</a></span>&#8203;(<a href="../mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
<a href="../Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th>
@ -1458,6 +1465,25 @@ protected&nbsp;void&nbsp;onPositionDiscontinuity()</pre>
</dl>
</li>
</ul>
<a id="onOutputStreamOffsetUsChanged(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onOutputStreamOffsetUsChanged</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;onOutputStreamOffsetUsChanged&#8203;(long&nbsp;outputStreamOffsetUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../mediacodec/MediaCodecRenderer.html#onOutputStreamOffsetUsChanged(long)">MediaCodecRenderer</a></code></span></div>
<div class="block">Called after the output stream offset changes.
<p>The default implementation is a no-op.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../mediacodec/MediaCodecRenderer.html#onOutputStreamOffsetUsChanged(long)">onOutputStreamOffsetUsChanged</a></code>&nbsp;in class&nbsp;<code><a href="../mediacodec/MediaCodecRenderer.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecRenderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputStreamOffsetUs</code> - The output stream offset in microseconds.</dd>
</dl>
</li>
</ul>
<a id="handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">
<!-- -->
</a>

View File

@ -477,7 +477,8 @@ extends <a href="BaseAudioProcessor.html" title="class in com.google.android.exo
<ul class="blockList">
<li class="blockList">
<h4>onConfigure</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;onConfigure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;onConfigure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
throws <a href="AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="BaseAudioProcessor.html#onConfigure(com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat)">BaseAudioProcessor</a></code></span></div>
<div class="block">Called when the processor is configured for a new input format.</div>

View File

@ -269,8 +269,8 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until it
has been <a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until
<a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a> has been called and more input has been queued.</div>
</td>
</tr>
<tr id="i6" class="altColor">
@ -459,7 +459,8 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature">public&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;configure&#8203;(<a href="AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a>&nbsp;inputAudioFormat)
throws <a href="AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessor.html#configure(com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat)">AudioProcessor</a></code></span></div>
<div class="block">Configures the processor to process input audio with the specified format. After calling this
@ -564,8 +565,8 @@ implements <a href="AudioProcessor.html" title="interface in com.google.android.
<h4>isEnded</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEnded()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AudioProcessor.html#isEnded()">AudioProcessor</a></code></span></div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until it
has been <a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a>ed and more input has been queued.</div>
<div class="block">Returns whether this processor will return no more output from <a href="AudioProcessor.html#getOutput()"><code>AudioProcessor.getOutput()</code></a> until
<a href="AudioProcessor.html#flush()"><code>AudioProcessor.flush()</code></a> has been called and more input has been queued.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AudioProcessor.html#isEnded()">isEnded</a></code>&nbsp;in interface&nbsp;<code><a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a></code></dd>

View File

@ -146,8 +146,8 @@ extends <a href="BaseAudioProcessor.html" title="class in com.google.android.exo
<p>This audio processor can be inserted into the audio processor chain to access audio data
before/after particular processing steps have been applied. For example, to get audio output
after playback speed adjustment and silence skipping have been applied it is necessary to pass a
custom <a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>DefaultAudioSink.AudioProcessorChain</code></a> when creating the audio sink, and include
this audio processor after all other audio processors.</div>
custom <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a> when creating the audio sink, and include this audio processor
after all other audio processors.</div>
</li>
</ul>
</div>

View File

@ -117,28 +117,40 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessorChain</a></th>
<td class="colLast">
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and applying
playback parameters (if supported).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio">AudioRendererEventListener</a></th>
<td class="colLast">
<div class="block">Listener of audio <a href="../Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> events.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></th>
<td class="colLast">
<div class="block">A sink that consumes audio data.</div>
</td>
</tr>
<tr class="altColor">
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="AudioSink.Listener.html" title="interface in com.google.android.exoplayer2.audio">AudioSink.Listener</a></th>
<td class="colLast">
<div class="block">Listener for audio sink events.</div>
</td>
</tr>
<tr class="rowColor">
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></th>
<td class="colLast">Deprecated.
<div class="deprecationComment">Use <a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessorChain</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a></th>
<td class="colLast">
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and
applying playback parameters (if supported).</div>
<div class="block">Provides the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</td>
</tr>
<tr class="altColor">

View File

@ -136,7 +136,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink</span></a> (implements com.google.android.exoplayer2.audio.<a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>)</li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink.DefaultAudioProcessorChain</span></a> (implements com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a>)</li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioTrackBufferSizeProvider</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioTrackBufferSizeProvider</span></a> (implements com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioTrackBufferSizeProvider</a>)</li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioTrackBufferSizeProvider.Builder</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DtsUtil.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">DtsUtil</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="ForwardingAudioSink.html" title="class in com.google.android.exoplayer2.audio"><span class="typeNameLink">ForwardingAudioSink</span></a> (implements com.google.android.exoplayer2.audio.<a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>)</li>
@ -173,10 +173,15 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<ul>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioCapabilitiesReceiver.Listener.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioCapabilitiesReceiver.Listener</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioProcessor</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioProcessorChain</span></a>
<ul>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink.AudioProcessorChain</span></a></li>
</ul>
</li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioRendererEventListener</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioSink</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="AudioSink.Listener.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">AudioSink.Listener</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink.AudioProcessorChain</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="DefaultAudioSink.AudioTrackBufferSizeProvider.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">DefaultAudioSink.AudioTrackBufferSizeProvider</span></a></li>
<li class="circle">com.google.android.exoplayer2.audio.<a href="TeeAudioProcessor.AudioBufferSink.html" title="interface in com.google.android.exoplayer2.audio"><span class="typeNameLink">TeeAudioProcessor.AudioBufferSink</span></a></li>
</ul>
</section>

View File

@ -300,7 +300,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setKeyRequestParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setKeyRequestParameters&#8203;(@Nullable
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setKeyRequestParameters&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/util/Map.html" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&gt;&nbsp;keyRequestParameters)</pre>
<div class="block">Sets the key request parameters to pass as the last argument to <a href="ExoMediaDrm.html#getKeyRequest(byte%5B%5D,java.util.List,int,java.util.HashMap)"><code>ExoMediaDrm.getKeyRequest(byte[], List, int, HashMap)</code></a>. May be null if not parameters need to
be passed.
@ -320,7 +321,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUuidAndExoMediaDrmProvider</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setUuidAndExoMediaDrmProvider&#8203;(<a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a>&nbsp;uuid,
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setUuidAndExoMediaDrmProvider&#8203;(<a href="https://developer.android.com/reference/java/util/UUID.html" title="class or interface in java.util" class="externalLink" target="_top">UUID</a>&nbsp;uuid,
<a href="ExoMediaDrm.Provider.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm.Provider</a>&nbsp;exoMediaDrmProvider)</pre>
<div class="block">Sets the UUID of the DRM scheme and the <a href="ExoMediaDrm.Provider.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm.Provider</code></a> to use.</div>
<dl>
@ -338,7 +340,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setMultiSession</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setMultiSession&#8203;(boolean&nbsp;multiSession)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setMultiSession&#8203;(boolean&nbsp;multiSession)</pre>
<div class="block">Sets whether this session manager is allowed to acquire multiple simultaneous sessions.
<p>Users should pass false when a single key request will obtain all keys required to decrypt
@ -358,7 +361,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setUseDrmSessionsForClearContent</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setUseDrmSessionsForClearContent&#8203;(@com.google.android.exoplayer2.C.TrackType int...&nbsp;useDrmSessionsForClearContentTrackTypes)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setUseDrmSessionsForClearContent&#8203;(@com.google.android.exoplayer2.C.TrackType int...&nbsp;useDrmSessionsForClearContentTrackTypes)</pre>
<div class="block">Sets whether this session manager should attach <a href="DrmSession.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessions</code></a> to the clear
sections of the media content.
@ -383,7 +387,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setPlayClearSamplesWithoutKeys</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setPlayClearSamplesWithoutKeys&#8203;(boolean&nbsp;playClearSamplesWithoutKeys)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setPlayClearSamplesWithoutKeys&#8203;(boolean&nbsp;playClearSamplesWithoutKeys)</pre>
<div class="block">Sets whether clear samples within protected content should be played when keys for the
encrypted part of the content have yet to be loaded.</div>
<dl>
@ -401,7 +406,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setLoadErrorHandlingPolicy</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setLoadErrorHandlingPolicy&#8203;(<a href="../upstream/LoadErrorHandlingPolicy.html" title="interface in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy</a>&nbsp;loadErrorHandlingPolicy)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setLoadErrorHandlingPolicy&#8203;(<a href="../upstream/LoadErrorHandlingPolicy.html" title="interface in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy</a>&nbsp;loadErrorHandlingPolicy)</pre>
<div class="block">Sets the <a href="../upstream/LoadErrorHandlingPolicy.html" title="interface in com.google.android.exoplayer2.upstream"><code>LoadErrorHandlingPolicy</code></a> for key and provisioning requests.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@ -417,7 +423,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList">
<li class="blockList">
<h4>setSessionKeepaliveMs</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setSessionKeepaliveMs&#8203;(long&nbsp;sessionKeepaliveMs)</pre>
<pre class="methodSignature">@CanIgnoreReturnValue
public&nbsp;<a href="DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a>&nbsp;setSessionKeepaliveMs&#8203;(long&nbsp;sessionKeepaliveMs)</pre>
<div class="block">Sets the time to keep <a href="DrmSession.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessions</code></a> alive when they're not in use.
<p>It can be useful to keep sessions alive during playback of short clear sections of media

View File

@ -2,7 +2,7 @@
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>SingleFrameGlTextureProcessor (ExoPlayer library)</title>
<title>ColorLut (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
@ -19,14 +19,14 @@
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SingleFrameGlTextureProcessor (ExoPlayer library)";
parent.document.title="ColorLut (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var data = {"i0":6,"i1":6,"i2":6,"i3":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
@ -113,26 +113,26 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.transformer</a></div>
<h2 title="Interface SingleFrameGlTextureProcessor" class="title">Interface SingleFrameGlTextureProcessor</h2>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Interface ColorLut" class="title">Interface ColorLut</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></code>, <code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="SingleColorLut.html" title="class in com.google.android.exoplayer2.effect">SingleColorLut</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">SingleFrameGlTextureProcessor</span></pre>
<div class="block">Manages a GLSL shader program for processing a frame. Implementations generally copy input pixels
into an output frame, with changes to pixels specific to the implementation.
<p>Methods must be called in the following order:
<ol>
<li>The constructor, for implementation-specific arguments.
<li><a href="#initialize(android.content.Context,int,int,int)"><code>initialize(Context, int, int, int)</code></a>, to set up graphics initialization.
<li><a href="#drawFrame(long)"><code>drawFrame(long)</code></a>, to process one frame.
<li><a href="#release()"><code>release()</code></a>, upon conclusion of processing.
</ol></div>
<pre>public interface <span class="typeNameLabel">ColorLut</span>
extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></pre>
<div class="block">Specifies color transformations using color lookup tables to apply to each frame in the fragment
shader.</div>
</li>
</ul>
</div>
@ -147,42 +147,40 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#drawFrame(long)">drawFrame</a></span>&#8203;(long&nbsp;presentationTimeUs)</code></th>
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength(long)">getLength</a></span>&#8203;(long&nbsp;presentationTimeUs)</code></th>
<td class="colLast">
<div class="block">Draws one frame.</div>
<div class="block">Returns the length N of the 3D N x N x N LUT cube with the given timestamp.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink" target="_top">Size</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOutputSize()">getOutputSize</a></span>()</code></th>
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLutTextureId(long)">getLutTextureId</a></span>&#8203;(long&nbsp;presentationTimeUs)</code></th>
<td class="colLast">
<div class="block">Returns the output <a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink"><code>Size</code></a> of frames processed through <a href="#drawFrame(long)" target="_top"><code>drawFrame(long)</code></a>.</div>
<div class="block">Returns the OpenGL texture ID of the LUT to apply to the pixels of the frame with the given
timestamp.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialize(android.content.Context,int,int,int)">initialize</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
int&nbsp;inputTexId,
int&nbsp;inputWidth,
int&nbsp;inputHeight)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Performs all initialization that requires OpenGL, such as, loading and compiling a GLSL shader
program.</div>
<div class="block">Releases the OpenGL texture of the LUT.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colFirst"><code>default <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)</code></th>
<td class="colLast">
<div class="block">Releases all resources.</div>
<div class="block">This method must be executed on the same thread as other GL commands.</div>
</td>
</tr>
</table>
@ -202,75 +200,63 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="initialize(android.content.Context,int,int,int)">
<a id="getLutTextureId(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre class="methodSignature">void&nbsp;initialize&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
int&nbsp;inputTexId,
int&nbsp;inputWidth,
int&nbsp;inputHeight)
throws <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></pre>
<div class="block">Performs all initialization that requires OpenGL, such as, loading and compiling a GLSL shader
program.
<p>This method may only be called if there is a current OpenGL context.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>inputTexId</code> - Identifier of a 2D OpenGL texture.</dd>
<dd><code>inputWidth</code> - The input width, in pixels.</dd>
<dd><code>inputHeight</code> - The input height, in pixels.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top">IOException</a></code> - If an error occurs while reading resources.</dd>
</dl>
<h4>getLutTextureId</h4>
<pre class="methodSignature">int&nbsp;getLutTextureId&#8203;(long&nbsp;presentationTimeUs)</pre>
<div class="block">Returns the OpenGL texture ID of the LUT to apply to the pixels of the frame with the given
timestamp.</div>
</li>
</ul>
<a id="getOutputSize()">
<a id="getLength(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputSize</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink" target="_top">Size</a>&nbsp;getOutputSize()</pre>
<div class="block">Returns the output <a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink"><code>Size</code></a> of frames processed through <a href="#drawFrame(long)" target="_top"><code>drawFrame(long)</code></a>.
<p>This method may only be called after the texture processor has been <a href="#initialize(android.content.Context,int,int,int)"><code>initialized</code></a>.</div>
</li>
</ul>
<a id="drawFrame(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>drawFrame</h4>
<pre class="methodSignature">void&nbsp;drawFrame&#8203;(long&nbsp;presentationTimeUs)
throws <a href="FrameProcessingException.html" title="class in com.google.android.exoplayer2.transformer">FrameProcessingException</a></pre>
<div class="block">Draws one frame.
<p>This method may only be called after the texture processor has been <a href="#initialize(android.content.Context,int,int,int)"><code>initialized</code></a>. The caller is responsible for focussing the
correct render target before calling this method.
<p>A minimal implementation should tell OpenGL to use its shader program, bind the shader
program's vertex attributes and uniforms, and issue a drawing command.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>presentationTimeUs</code> - The presentation timestamp of the current frame, in microseconds.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="FrameProcessingException.html" title="class in com.google.android.exoplayer2.transformer">FrameProcessingException</a></code> - If an error occurs while processing or drawing the frame.</dd>
</dl>
<h4>getLength</h4>
<pre class="methodSignature">int&nbsp;getLength&#8203;(long&nbsp;presentationTimeUs)</pre>
<div class="block">Returns the length N of the 3D N x N x N LUT cube with the given timestamp.</div>
</li>
</ul>
<a id="release()">
<!-- -->
</a>
<ul class="blockListLast">
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">void&nbsp;release()</pre>
<div class="block">Releases all resources.</div>
<pre class="methodSignature">void&nbsp;release()
throws <a href="../util/GlUtil.GlException.html" title="class in com.google.android.exoplayer2.util">GlUtil.GlException</a></pre>
<div class="block">Releases the OpenGL texture of the LUT.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/GlUtil.GlException.html" title="class in com.google.android.exoplayer2.util">GlUtil.GlException</a></code></dd>
</dl>
</li>
</ul>
<a id="toGlTextureProcessor(android.content.Context,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toGlTextureProcessor</h4>
<pre class="methodSignature">@WorkerThread
default&nbsp;<a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a>&nbsp;toGlTextureProcessor&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)
throws <a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></pre>
<div class="block">This method must be executed on the same thread as other GL commands.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="GlEffect.html#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></code>&nbsp;in interface&nbsp;<code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - A <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>useHdr</code> - Whether input textures come from an HDR source. If <code>true</code>, colors will be
in linear RGB BT.2020. If <code>false</code>, colors will be in linear RGB BT.709.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></code></dd>
</dl>
</li>
</ul>
</li>

View File

@ -0,0 +1,376 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>Contrast (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Contrast (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Class Contrast" class="title">Class Contrast</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.effect.Contrast</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code>, <code><a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">Contrast</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></pre>
<div class="block">A <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect"><code>GlEffect</code></a> to control the contrast of video frames.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contrast">contrast</a></span></code></th>
<td class="colLast">
<div class="block">Adjusts the contrast of video frames in the interval [-1, 1].</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(float)">Contrast</a></span>&#8203;(float&nbsp;contrast)</code></th>
<td class="colLast">
<div class="block">Creates a new instance for the given contrast value.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="contrast">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>contrast</h4>
<pre>public final&nbsp;float contrast</pre>
<div class="block">Adjusts the contrast of video frames in the interval [-1, 1].</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(float)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Contrast</h4>
<pre>public&nbsp;Contrast&#8203;(float&nbsp;contrast)</pre>
<div class="block">Creates a new instance for the given contrast value.
<p>Contrast values range from -1 (all gray pixels) to 1 (maximum difference of colors). 0 means
to add no contrast and leaves the frames unchanged.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="toGlTextureProcessor(android.content.Context,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toGlTextureProcessor</h4>
<pre class="methodSignature">public&nbsp;<a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a>&nbsp;toGlTextureProcessor&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)
throws <a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="GlEffect.html#toGlTextureProcessor(android.content.Context,boolean)">GlEffect</a></code></span></div>
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="GlEffect.html#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></code>&nbsp;in interface&nbsp;<code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - A <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>useHdr</code> - Whether input textures come from an HDR source. If <code>true</code>, colors will be
in linear RGB BT.2020. If <code>false</code>, colors will be in linear RGB BT.709.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -2,7 +2,7 @@
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>Presentation.Builder (ExoPlayer library)</title>
<title>Crop (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
@ -19,13 +19,13 @@
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Presentation.Builder (ExoPlayer library)";
parent.document.title="Crop (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10};
var data = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@ -113,15 +113,15 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.transformer</a></div>
<h2 title="Class Presentation.Builder" class="title">Class Presentation.Builder</h2>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Class Crop" class="title">Class Crop</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.transformer.Presentation.Builder</li>
<li>com.google.android.exoplayer2.effect.Crop</li>
</ul>
</li>
</ul>
@ -129,13 +129,16 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a></dd>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code>, <code><a href="GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">GlMatrixTransformation</a></code>, <code><a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></code>, <code><a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></code></dd>
</dl>
<hr>
<pre>public static final class <span class="typeNameLabel">Presentation.Builder</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></pre>
<div class="block">A builder for <a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer"><code>Presentation</code></a> instances.</div>
<pre>public final class <span class="typeNameLabel">Crop</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></pre>
<div class="block">Specifies a crop to apply in the vertex shader.
<p>The background color of the output frame will be black, with alpha = 0 if applicable.</div>
</li>
</ul>
</div>
@ -156,9 +159,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(float,float,float,float)">Crop</a></span>&#8203;(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Creates a builder with default values.</div>
<div class="block">Crops a smaller (or larger) frame, per normalized device coordinates (NDC), where the input
frame corresponds to the square ranging from -1 to 1 on the x and y axes.</div>
</td>
</tr>
</table>
@ -180,34 +187,18 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(int,int)">configure</a></span>&#8203;(int&nbsp;inputWidth,
int&nbsp;inputHeight)</code></th>
<td class="colLast">
<div class="block">Configures the input and output dimensions.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAspectRatio(float,@com.google.android.exoplayer2.transformer.Presentation.Layoutint)">setAspectRatio</a></span>&#8203;(float&nbsp;aspectRatio,
@com.google.android.exoplayer2.transformer.Presentation.Layout int&nbsp;layout)</code></th>
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/graphics/Matrix.html" title="class or interface in android.graphics" class="externalLink" target="_top">Matrix</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatrix(long)">getMatrix</a></span>&#8203;(long&nbsp;presentationTimeUs)</code></th>
<td class="colLast">
<div class="block">Sets the aspect ratio (width/height ratio) for the output frame.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCrop(float,float,float,float)">setCrop</a></span>&#8203;(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Crops a smaller (or larger frame), per normalized device coordinates (NDC), where the input
frame corresponds to the square ranging from -1 to 1 on the x and y axes.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setResolution(int)">setResolution</a></span>&#8203;(int&nbsp;height)</code></th>
<td class="colLast">
<div class="block">Sets the output resolution using the output height.</div>
<div class="block">Returns the 3x3 transformation <a href="https://developer.android.com/reference/android/graphics/Matrix.html" title="class or interface in android.graphics" class="externalLink" target="_top"><code>Matrix</code></a> to apply to the frame with the given timestamp.</div>
</td>
</tr>
</table>
@ -218,6 +209,20 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.effect.GlMatrixTransformation">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.effect.<a href="GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">GlMatrixTransformation</a></h3>
<code><a href="GlMatrixTransformation.html#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.android.exoplayer2.effect.MatrixTransformation">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.effect.<a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></h3>
<code><a href="MatrixTransformation.html#getGlMatrixArray(long)">getGlMatrixArray</a></code></li>
</ul>
</li>
</ul>
</section>
@ -234,14 +239,29 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<a id="&lt;init&gt;(float,float,float,float)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
<div class="block">Creates a builder with default values.</div>
<h4>Crop</h4>
<pre>public&nbsp;Crop&#8203;(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top)</pre>
<div class="block">Crops a smaller (or larger) frame, per normalized device coordinates (NDC), where the input
frame corresponds to the square ranging from -1 to 1 on the x and y axes.
<p><code>left</code> and <code>bottom</code> default to -1, and <code>right</code> and <code>top</code> default to
1, which corresponds to not applying any crop. To crop to a smaller subset of the input frame,
use values between -1 and 1. To crop to a larger frame, use values below -1 and above 1.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>left</code> - The left edge of the output frame, in NDC. Must be less than <code>right</code>.</dd>
<dd><code>right</code> - The right edge of the output frame, in NDC. Must be greater than <code>left</code>.</dd>
<dd><code>bottom</code> - The bottom edge of the output frame, in NDC. Must be less than <code>top</code>.</dd>
<dd><code>top</code> - The top edge of the output frame, in NDC. Must be greater than <code>bottom</code>.</dd>
</dl>
</li>
</ul>
</li>
@ -254,97 +274,42 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="setResolution(int)">
<a id="configure(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setResolution</h4>
<pre class="methodSignature">public&nbsp;<a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a>&nbsp;setResolution&#8203;(int&nbsp;height)</pre>
<div class="block">Sets the output resolution using the output height.
<h4>configure</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;&nbsp;configure&#8203;(int&nbsp;inputWidth,
int&nbsp;inputHeight)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="GlMatrixTransformation.html#configure(int,int)">GlMatrixTransformation</a></code></span></div>
<div class="block">Configures the input and output dimensions.
<p>The default value, <a href="../C.html#LENGTH_UNSET"><code>C.LENGTH_UNSET</code></a>, corresponds to using the same height as the
input. Output width of the displayed frame will scale to preserve the frame's aspect ratio
after other transformations.
<p>For example, a 1920x1440 frame can be scaled to 640x480 by calling <code>
setResolution(480)</code>.</div>
<p>Must be called before <a href="GlMatrixTransformation.html#getGlMatrixArray(long)"><code>GlMatrixTransformation.getGlMatrixArray(long)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="GlMatrixTransformation.html#configure(int,int)">configure</a></code>&nbsp;in interface&nbsp;<code><a href="GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">GlMatrixTransformation</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>height</code> - The output height of the displayed frame, in pixels.</dd>
<dd><code>inputWidth</code> - The input frame width, in pixels.</dd>
<dd><code>inputHeight</code> - The input frame height, in pixels.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
<dd>The output frame width and height, in pixels.</dd>
</dl>
</li>
</ul>
<a id="setCrop(float,float,float,float)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCrop</h4>
<pre class="methodSignature">public&nbsp;<a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a>&nbsp;setCrop&#8203;(float&nbsp;left,
float&nbsp;right,
float&nbsp;bottom,
float&nbsp;top)</pre>
<div class="block">Crops a smaller (or larger frame), per normalized device coordinates (NDC), where the input
frame corresponds to the square ranging from -1 to 1 on the x and y axes.
<p><code>left</code> and <code>bottom</code> default to -1, and <code>right</code> and <code>top</code> default
to 1, which corresponds to not applying any crop. To crop to a smaller subset of the input
frame, use values between -1 and 1. To crop to a larger frame, use values below -1 and above
1.
<p>Width and height values set may be rescaled by <a href="#setResolution(int)"><code>setResolution(int)</code></a>, which is
applied after cropping changes.
<p>Only one of <code>setCrop</code> or <a href="#setAspectRatio(float,@com.google.android.exoplayer2.transformer.Presentation.Layoutint)"><code>setAspectRatio(float, int)</code></a> can be called for one
<a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer"><code>Presentation</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>left</code> - The left edge of the output frame, in NDC. Must be less than <code>right</code>.</dd>
<dd><code>right</code> - The right edge of the output frame, in NDC. Must be greater than <code>left</code>.</dd>
<dd><code>bottom</code> - The bottom edge of the output frame, in NDC. Must be less than <code>top</code>.</dd>
<dd><code>top</code> - The top edge of the output frame, in NDC. Must be greater than <code>bottom</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="setAspectRatio(float,@com.google.android.exoplayer2.transformer.Presentation.Layoutint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAspectRatio</h4>
<pre class="methodSignature">public&nbsp;<a href="Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a>&nbsp;setAspectRatio&#8203;(float&nbsp;aspectRatio,
@com.google.android.exoplayer2.transformer.Presentation.Layout int&nbsp;layout)</pre>
<div class="block">Sets the aspect ratio (width/height ratio) for the output frame.
<p>Resizes a frame's width or height to conform to an <code>aspectRatio</code>, given a <a href="Presentation.Layout.html" title="annotation in com.google.android.exoplayer2.transformer"><code>Presentation.Layout</code></a>. <code>aspectRatio</code> defaults to <a href="../C.html#LENGTH_UNSET"><code>C.LENGTH_UNSET</code></a>, which corresponds to the
same aspect ratio as the input frame. <code>layout</code> defaults to <a href="Presentation.html#LAYOUT_SCALE_TO_FIT"><code>Presentation.LAYOUT_SCALE_TO_FIT</code></a>
<p>Width and height values set may be rescaled by <a href="#setResolution(int)"><code>setResolution(int)</code></a>, which is
applied after aspect ratio changes.
<p>Only one of <a href="#setCrop(float,float,float,float)"><code>setCrop(float, float, float, float)</code></a> or <code>setAspectRatio</code> can be
called for one <a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer"><code>Presentation</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aspectRatio</code> - The aspect ratio (width/height ratio) of the output frame. Must be
positive.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd>
</dl>
</li>
</ul>
<a id="build()">
<a id="getMatrix(long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature">public&nbsp;<a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a>&nbsp;build()</pre>
<h4>getMatrix</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/graphics/Matrix.html" title="class or interface in android.graphics" class="externalLink" target="_top">Matrix</a>&nbsp;getMatrix&#8203;(long&nbsp;presentationTimeUs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MatrixTransformation.html#getMatrix(long)">MatrixTransformation</a></code></span></div>
<div class="block">Returns the 3x3 transformation <a href="https://developer.android.com/reference/android/graphics/Matrix.html" title="class or interface in android.graphics" class="externalLink" target="_top"><code>Matrix</code></a> to apply to the frame with the given timestamp.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MatrixTransformation.html#getMatrix(long)">getMatrix</a></code>&nbsp;in interface&nbsp;<code><a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></code></dd>
</dl>
</li>
</ul>
</li>

View File

@ -0,0 +1,277 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>GlEffect (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlEffect (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Interface GlEffect" class="title">Interface GlEffect</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="ColorLut.html" title="interface in com.google.android.exoplayer2.effect">ColorLut</a></code>, <code><a href="GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">GlMatrixTransformation</a></code>, <code><a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></code>, <code><a href="RgbMatrix.html" title="interface in com.google.android.exoplayer2.effect">RgbMatrix</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="Contrast.html" title="class in com.google.android.exoplayer2.effect">Contrast</a></code>, <code><a href="Crop.html" title="class in com.google.android.exoplayer2.effect">Crop</a></code>, <code><a href="HslAdjustment.html" title="class in com.google.android.exoplayer2.effect">HslAdjustment</a></code>, <code><a href="Presentation.html" title="class in com.google.android.exoplayer2.effect">Presentation</a></code>, <code><a href="RgbAdjustment.html" title="class in com.google.android.exoplayer2.effect">RgbAdjustment</a></code>, <code><a href="RgbFilter.html" title="class in com.google.android.exoplayer2.effect">RgbFilter</a></code>, <code><a href="ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.effect">ScaleToFitTransformation</a></code>, <code><a href="SingleColorLut.html" title="class in com.google.android.exoplayer2.effect">SingleColorLut</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">GlEffect</span>
extends <a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></pre>
<div class="block">Interface for a video frame effect with a <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> implementation.
<p>Implementations contain information specifying the effect and can be <a href="#toGlTextureProcessor(android.content.Context,boolean)">converted</a> to a <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> which applies
the effect.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect">GlTextureProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="toGlTextureProcessor(android.content.Context,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toGlTextureProcessor</h4>
<pre class="methodSignature"><a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect">GlTextureProcessor</a>&nbsp;toGlTextureProcessor&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)
throws <a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></pre>
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - A <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>useHdr</code> - Whether input textures come from an HDR source. If <code>true</code>, colors will be
in linear RGB BT.2020. If <code>false</code>, colors will be in linear RGB BT.709.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,349 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>GlEffectsFrameProcessor.Factory (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlEffectsFrameProcessor.Factory (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Class GlEffectsFrameProcessor.Factory" class="title">Class GlEffectsFrameProcessor.Factory</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.effect.GlEffectsFrameProcessor.Factory</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../util/FrameProcessor.Factory.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Factory</a></code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor</a></dd>
</dl>
<hr>
<pre>public static class <span class="typeNameLabel">GlEffectsFrameProcessor.Factory</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="../util/FrameProcessor.Factory.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Factory</a></pre>
<div class="block">A factory for <a href="GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>GlEffectsFrameProcessor</code></a> instances.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Factory</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(android.content.Context,com.google.android.exoplayer2.util.FrameProcessor.Listener,java.util.List,com.google.android.exoplayer2.util.DebugViewProvider,com.google.android.exoplayer2.video.ColorInfo,boolean)">create</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="../util/FrameProcessor.Listener.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Listener</a>&nbsp;listener,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util" target="_top">Effect</a>&gt;&nbsp;effects,
<a href="../util/DebugViewProvider.html" title="interface in com.google.android.exoplayer2.util">DebugViewProvider</a>&nbsp;debugViewProvider,
<a href="../video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</a>&nbsp;colorInfo,
boolean&nbsp;releaseFramesAutomatically)</code></th>
<td class="colLast">
<div class="block">Creates a new <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> instance.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Factory</h4>
<pre>public&nbsp;Factory()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="create(android.content.Context,com.google.android.exoplayer2.util.FrameProcessor.Listener,java.util.List,com.google.android.exoplayer2.util.DebugViewProvider,com.google.android.exoplayer2.video.ColorInfo,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>create</h4>
<pre class="methodSignature">public&nbsp;<a href="GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor</a>&nbsp;create&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="../util/FrameProcessor.Listener.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Listener</a>&nbsp;listener,
<a href="https://developer.android.com/reference/java/util/List.html" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util" target="_top">Effect</a>&gt;&nbsp;effects,
<a href="../util/DebugViewProvider.html" title="interface in com.google.android.exoplayer2.util">DebugViewProvider</a>&nbsp;debugViewProvider,
<a href="../video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</a>&nbsp;colorInfo,
boolean&nbsp;releaseFramesAutomatically)
throws <a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></pre>
<div class="block">Creates a new <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> instance.
<p>All <a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util"><code>Effect</code></a> instances must be <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect"><code>GlEffect</code></a> instances.
<p>Using HDR requires the <code>EXT_YUV_target</code> OpenGL extension.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.Factory.html#create(android.content.Context,com.google.android.exoplayer2.util.FrameProcessor.Listener,java.util.List,com.google.android.exoplayer2.util.DebugViewProvider,com.google.android.exoplayer2.video.ColorInfo,boolean)">create</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.Factory.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Factory</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - A <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>listener</code> - A <a href="../util/FrameProcessor.Listener.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor.Listener</code></a>.</dd>
<dd><code>effects</code> - The <a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util"><code>Effect</code></a> instances to apply to each frame.</dd>
<dd><code>debugViewProvider</code> - A <a href="../util/DebugViewProvider.html" title="interface in com.google.android.exoplayer2.util"><code>DebugViewProvider</code></a>.</dd>
<dd><code>colorInfo</code> - The <a href="../video/ColorInfo.html" title="class in com.google.android.exoplayer2.video"><code>ColorInfo</code></a> for input and output frames.</dd>
<dd><code>releaseFramesAutomatically</code> - If <code>true</code>, the <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> will render
output frames to the <a href="../util/FrameProcessor.html#setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">output surface</a>
automatically as <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> is done processing them. If <code>false</code>, the
<a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> will block until <a href="../util/FrameProcessor.html#releaseOutputFrame(long)"><code>FrameProcessor.releaseOutputFrame(long)</code></a> is called, to
render or drop the frame.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></code> - If a problem occurs while creating the <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,525 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>GlEffectsFrameProcessor (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlEffectsFrameProcessor (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Class GlEffectsFrameProcessor" class="title">Class GlEffectsFrameProcessor</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer2.effect.GlEffectsFrameProcessor</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">GlEffectsFrameProcessor</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>
implements <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></pre>
<div class="block">A <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor</code></a> implementation that applies <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect"><code>GlEffect</code></a> instances using OpenGL on a
background thread.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="GlEffectsFrameProcessor.Factory.html" title="class in com.google.android.exoplayer2.effect">GlEffectsFrameProcessor.Factory</a></span></code></th>
<td class="colLast">
<div class="block">A factory for <a href="GlEffectsFrameProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>GlEffectsFrameProcessor</code></a> instances.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.com.google.android.exoplayer2.util.FrameProcessor">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.util.<a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></h3>
<code><a href="../util/FrameProcessor.Listener.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.google.android.exoplayer2.util.FrameProcessor">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;com.google.android.exoplayer2.util.<a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></h3>
<code><a href="../util/FrameProcessor.html#DROP_OUTPUT_FRAME">DROP_OUTPUT_FRAME</a>, <a href="../util/FrameProcessor.html#RELEASE_OUTPUT_FRAME_IMMEDIATELY">RELEASE_OUTPUT_FRAME_IMMEDIATELY</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInputSurface()">getInputSurface</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the input <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink"><code>Surface</code></a>, where <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util" target="_top"><code>FrameProcessor</code></a> consumes input frames from.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPendingInputFrameCount()">getPendingInputFrameCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of input frames that have been <a href="../util/FrameProcessor.html#registerInputFrame()">registered</a>
but not processed off the <a href="../util/FrameProcessor.html#getInputSurface()">input surface</a> yet.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerInputFrame()">registerInputFrame</a></span>()</code></th>
<td class="colLast">
<div class="block">Informs the <code>FrameProcessor</code> that a frame will be queued to its input surface.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release()">release</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases all resources.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#releaseOutputFrame(long)">releaseOutputFrame</a></span>&#8203;(long&nbsp;releaseTimeNs)</code></th>
<td class="colLast">
<div class="block">Releases the oldest unreleased output frame that has become <a href="../util/FrameProcessor.Listener.html#onOutputFrameAvailable(long)">available</a> at the given <code>releaseTimeNs</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInputFrameInfo(com.google.android.exoplayer2.util.FrameInfo)">setInputFrameInfo</a></span>&#8203;(<a href="../util/FrameInfo.html" title="class in com.google.android.exoplayer2.util">FrameInfo</a>&nbsp;inputFrameInfo)</code></th>
<td class="colLast">
<div class="block">Sets information about the input frames.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">setOutputSurfaceInfo</a></span>&#8203;(<a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util">SurfaceInfo</a>&nbsp;outputSurfaceInfo)</code></th>
<td class="colLast">
<div class="block">Sets the output surface and supporting information.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#signalEndOfInput()">signalEndOfInput</a></span>()</code></th>
<td class="colLast">
<div class="block">Informs the <code>FrameProcessor</code> that no further input frames should be accepted.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_top">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getInputSurface()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputSurface</h4>
<pre class="methodSignature">public&nbsp;<a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top">Surface</a>&nbsp;getInputSurface()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#getInputSurface()">FrameProcessor</a></code></span></div>
<div class="block">Returns the input <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink"><code>Surface</code></a>, where <a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util" target="_top"><code>FrameProcessor</code></a> consumes input frames from.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#getInputSurface()">getInputSurface</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="setInputFrameInfo(com.google.android.exoplayer2.util.FrameInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInputFrameInfo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setInputFrameInfo&#8203;(<a href="../util/FrameInfo.html" title="class in com.google.android.exoplayer2.util">FrameInfo</a>&nbsp;inputFrameInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#setInputFrameInfo(com.google.android.exoplayer2.util.FrameInfo)">FrameProcessor</a></code></span></div>
<div class="block">Sets information about the input frames.
<p>The new input information is applied from the next frame <a href="../util/FrameProcessor.html#registerInputFrame()">registered</a> onwards.
<p>Pixels are expanded using the <a href="../util/FrameInfo.html#pixelWidthHeightRatio"><code>FrameInfo.pixelWidthHeightRatio</code></a> so that the output
frames' pixels have a ratio of 1.
<p>The caller should update <a href="../util/FrameInfo.html#streamOffsetUs"><code>FrameInfo.streamOffsetUs</code></a> when switching input streams to
ensure that frame timestamps are always monotonically increasing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#setInputFrameInfo(com.google.android.exoplayer2.util.FrameInfo)">setInputFrameInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="registerInputFrame()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInputFrame</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;registerInputFrame()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#registerInputFrame()">FrameProcessor</a></code></span></div>
<div class="block">Informs the <code>FrameProcessor</code> that a frame will be queued to its input surface.
<p>Must be called before rendering a frame to the frame processor's input surface.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#registerInputFrame()">registerInputFrame</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="getPendingInputFrameCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPendingInputFrameCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getPendingInputFrameCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#getPendingInputFrameCount()">FrameProcessor</a></code></span></div>
<div class="block">Returns the number of input frames that have been <a href="../util/FrameProcessor.html#registerInputFrame()">registered</a>
but not processed off the <a href="../util/FrameProcessor.html#getInputSurface()">input surface</a> yet.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#getPendingInputFrameCount()">getPendingInputFrameCount</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOutputSurfaceInfo</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setOutputSurfaceInfo&#8203;(@Nullable
<a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util">SurfaceInfo</a>&nbsp;outputSurfaceInfo)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">FrameProcessor</a></code></span></div>
<div class="block">Sets the output surface and supporting information. When output frames are released and not
dropped, they will be rendered to this output <a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util"><code>SurfaceInfo</code></a>.
<p>The new output <a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util"><code>SurfaceInfo</code></a> is applied from the next output frame rendered onwards.
If the output <a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util"><code>SurfaceInfo</code></a> is <code>null</code>, the <code>FrameProcessor</code> will stop
rendering pending frames and resume rendering once a non-null <a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util"><code>SurfaceInfo</code></a> is set.
<p>If the dimensions given in <a href="../util/SurfaceInfo.html" title="class in com.google.android.exoplayer2.util"><code>SurfaceInfo</code></a> do not match the <a href="../util/FrameProcessor.Listener.html#onOutputSizeChanged(int,int)">output size after applying the final effect</a> the frames
are resized before rendering to the surface and letter/pillar-boxing is applied.
<p>The caller is responsible for tracking the lifecycle of the <a href="../util/SurfaceInfo.html#surface"><code>SurfaceInfo.surface</code></a>
including calling this method with a new surface if it is destroyed. When this method returns,
the previous output surface is no longer being used and can safely be released by the caller.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">setOutputSurfaceInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="releaseOutputFrame(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseOutputFrame</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;releaseOutputFrame&#8203;(long&nbsp;releaseTimeNs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#releaseOutputFrame(long)">FrameProcessor</a></code></span></div>
<div class="block">Releases the oldest unreleased output frame that has become <a href="../util/FrameProcessor.Listener.html#onOutputFrameAvailable(long)">available</a> at the given <code>releaseTimeNs</code>.
<p>This will either render the output frame to the <a href="../util/FrameProcessor.html#setOutputSurfaceInfo(com.google.android.exoplayer2.util.SurfaceInfo)">output
surface</a>, or drop the frame, per <code>releaseTimeNs</code>.
<p>This method must only be called if <code>releaseFramesAutomatically</code> was set to <code>
false</code> using the <a href="../util/FrameProcessor.Factory.html" title="interface in com.google.android.exoplayer2.util"><code>FrameProcessor.Factory</code></a> and should be called exactly once for each frame that becomes
<a href="../util/FrameProcessor.Listener.html#onOutputFrameAvailable(long)">available</a>.
<p>The <code>releaseTimeNs</code> may be passed to <a href="https://developer.android.com/reference/android/opengl/EGLExt.html#eglPresentationTimeANDROID(android.opengl.EGLDisplay,android.opengl.EGLSurface,long)" title="class or interface in android.opengl" class="externalLink" target="_top"><code>EGLExt.eglPresentationTimeANDROID(android.opengl.EGLDisplay, android.opengl.EGLSurface, long)</code></a>
depending on the implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#releaseOutputFrame(long)">releaseOutputFrame</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>releaseTimeNs</code> - The release time to use for the frame, in nanoseconds. The release time
can be before of after the current system time. Use <a href="../util/FrameProcessor.html#DROP_OUTPUT_FRAME"><code>FrameProcessor.DROP_OUTPUT_FRAME</code></a> to drop the
frame, or <a href="../util/FrameProcessor.html#RELEASE_OUTPUT_FRAME_IMMEDIATELY"><code>FrameProcessor.RELEASE_OUTPUT_FRAME_IMMEDIATELY</code></a> to release the frame immediately.</dd>
</dl>
</li>
</ul>
<a id="signalEndOfInput()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>signalEndOfInput</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;signalEndOfInput()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#signalEndOfInput()">FrameProcessor</a></code></span></div>
<div class="block">Informs the <code>FrameProcessor</code> that no further input frames should be accepted.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#signalEndOfInput()">signalEndOfInput</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
<a id="release()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;release()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../util/FrameProcessor.html#release()">FrameProcessor</a></code></span></div>
<div class="block">Releases all resources.
<p>If the frame processor is released before it has <a href="../util/FrameProcessor.Listener.html#onFrameProcessingEnded()">ended</a>, it will attempt to cancel processing any input frames
that have already become available. Input frames that become available after release are
ignored.
<p>This method blocks until all resources are released or releasing times out.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../util/FrameProcessor.html#release()">release</a></code>&nbsp;in interface&nbsp;<code><a href="../util/FrameProcessor.html" title="interface in com.google.android.exoplayer2.util">FrameProcessor</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -113,7 +113,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.transformer</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Interface GlMatrixTransformation" class="title">Interface GlMatrixTransformation</h2>
</div>
<div class="contentContainer">
@ -122,26 +122,27 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.transformer">GlEffect</a></code></dd>
<dd><code><a href="../util/Effect.html" title="interface in com.google.android.exoplayer2.util">Effect</a></code>, <code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.transformer">MatrixTransformation</a></code></dd>
<dd><code><a href="MatrixTransformation.html" title="interface in com.google.android.exoplayer2.effect">MatrixTransformation</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a></code>, <code><a href="ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.transformer">ScaleToFitTransformation</a></code></dd>
<dd><code><a href="Crop.html" title="class in com.google.android.exoplayer2.effect">Crop</a></code>, <code><a href="Presentation.html" title="class in com.google.android.exoplayer2.effect">Presentation</a></code>, <code><a href="ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.effect">ScaleToFitTransformation</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">GlMatrixTransformation</span>
extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.transformer">GlEffect</a></pre>
extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></pre>
<div class="block">Specifies a 4x4 transformation <a href="https://developer.android.com/reference/android/opengl/Matrix.html" title="class or interface in android.opengl" class="externalLink" target="_top"><code>Matrix</code></a> to apply in the vertex shader for each frame.
<p>The matrix is applied to points given in normalized device coordinates (-1 to 1 on x, y, and z
axes). Transformed pixels that are moved outside of the normal device coordinate range are
clipped.
<p>Output frame pixels outside of the transformed input frame will be black.</div>
<p>Output frame pixels outside of the transformed input frame will be black, with alpha = 0 if
applicable.</div>
</li>
</ul>
</div>
@ -163,7 +164,7 @@ extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default <a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink" target="_top">Size</a></code></td>
<td class="colFirst"><code>default <a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(int,int)">configure</a></span>&#8203;(int&nbsp;inputWidth,
int&nbsp;inputHeight)</code></th>
<td class="colLast">
@ -178,10 +179,11 @@ extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default <a href="SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer">SingleFrameGlTextureProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toGlTextureProcessor()">toGlTextureProcessor</a></span>()</code></th>
<td class="colFirst"><code>default <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)</code></th>
<td class="colLast">
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
</td>
</tr>
</table>
@ -207,8 +209,8 @@ extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature">default&nbsp;<a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink" target="_top">Size</a>&nbsp;configure&#8203;(int&nbsp;inputWidth,
int&nbsp;inputHeight)</pre>
<pre class="methodSignature">default&nbsp;<a href="https://developer.android.com/reference/android/util/Pair.html" title="class or interface in android.util" class="externalLink">Pair</a>&lt;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="https://developer.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_top">Integer</a>&gt;&nbsp;configure&#8203;(int&nbsp;inputWidth,
int&nbsp;inputHeight)</pre>
<div class="block">Configures the input and output dimensions.
<p>Must be called before <a href="#getGlMatrixArray(long)"><code>getGlMatrixArray(long)</code></a>.</div>
@ -217,7 +219,7 @@ extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer
<dd><code>inputWidth</code> - The input frame width, in pixels.</dd>
<dd><code>inputHeight</code> - The input frame height, in pixels.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The output frame <a href="https://developer.android.com/reference/android/util/Size.html" title="class or interface in android.util" class="externalLink" target="_top"><code>Size</code></a>, in pixels.</dd>
<dd>The output frame width and height, in pixels.</dd>
</dl>
</li>
</ul>
@ -231,18 +233,26 @@ extends <a href="GlEffect.html" title="interface in com.google.android.exoplayer
<div class="block">Returns the 4x4 transformation <a href="https://developer.android.com/reference/android/opengl/Matrix.html" title="class or interface in android.opengl" class="externalLink" target="_top"><code>Matrix</code></a> to apply to the frame with the given timestamp.</div>
</li>
</ul>
<a id="toGlTextureProcessor()">
<a id="toGlTextureProcessor(android.content.Context,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toGlTextureProcessor</h4>
<pre class="methodSignature">default&nbsp;<a href="SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer">SingleFrameGlTextureProcessor</a>&nbsp;toGlTextureProcessor()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="GlEffect.html#toGlTextureProcessor()">GlEffect</a></code></span></div>
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
<pre class="methodSignature">default&nbsp;<a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect">SingleFrameGlTextureProcessor</a>&nbsp;toGlTextureProcessor&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
boolean&nbsp;useHdr)
throws <a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="GlEffect.html#toGlTextureProcessor(android.content.Context,boolean)">GlEffect</a></code></span></div>
<div class="block">Returns a <a href="SingleFrameGlTextureProcessor.html" title="class in com.google.android.exoplayer2.effect"><code>SingleFrameGlTextureProcessor</code></a> that applies the effect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="GlEffect.html#toGlTextureProcessor()">toGlTextureProcessor</a></code>&nbsp;in interface&nbsp;<code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.transformer">GlEffect</a></code></dd>
<dd><code><a href="GlEffect.html#toGlTextureProcessor(android.content.Context,boolean)">toGlTextureProcessor</a></code>&nbsp;in interface&nbsp;<code><a href="GlEffect.html" title="interface in com.google.android.exoplayer2.effect">GlEffect</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - A <a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top"><code>Context</code></a>.</dd>
<dd><code>useHdr</code> - Whether input textures come from an HDR source. If <code>true</code>, colors will be
in linear RGB BT.2020. If <code>false</code>, colors will be in linear RGB BT.709.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a></code></dd>
</dl>
</li>
</ul>

View File

@ -0,0 +1,259 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>GlTextureProcessor.ErrorListener (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlTextureProcessor.ErrorListener (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Interface GlTextureProcessor.ErrorListener" class="title">Interface GlTextureProcessor.ErrorListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect">GlTextureProcessor</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">GlTextureProcessor.ErrorListener</span></pre>
<div class="block">Listener for frame processing errors.
<p>This listener can be called from any thread.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onFrameProcessingError(com.google.android.exoplayer2.util.FrameProcessingException)">onFrameProcessingError</a></span>&#8203;(<a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Called when an exception occurs during asynchronous frame processing.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onFrameProcessingError(com.google.android.exoplayer2.util.FrameProcessingException)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onFrameProcessingError</h4>
<pre class="methodSignature">void&nbsp;onFrameProcessingError&#8203;(<a href="../util/FrameProcessingException.html" title="class in com.google.android.exoplayer2.util">FrameProcessingException</a>&nbsp;e)</pre>
<div class="block">Called when an exception occurs during asynchronous frame processing.
<p>If an error occurred, consuming and producing further frames will not work as expected and
the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> should be released.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,282 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>GlTextureProcessor.InputListener (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GlTextureProcessor.InputListener (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":18,"i1":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2.effect</a></div>
<h2 title="Interface GlTextureProcessor.InputListener" class="title">Interface GlTextureProcessor.InputListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect">GlTextureProcessor</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">GlTextureProcessor.InputListener</span></pre>
<div class="block">Listener for input-related frame processing events.
<p>This listener can be called from any thread.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onInputFrameProcessed(com.google.android.exoplayer2.effect.TextureInfo)">onInputFrameProcessed</a></span>&#8203;(<a href="TextureInfo.html" title="class in com.google.android.exoplayer2.effect">TextureInfo</a>&nbsp;inputTexture)</code></th>
<td class="colLast">
<div class="block">Called when the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> has processed an input frame.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onReadyToAcceptInputFrame()">onReadyToAcceptInputFrame</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> is ready to accept another input frame.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onReadyToAcceptInputFrame()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onReadyToAcceptInputFrame</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onReadyToAcceptInputFrame()</pre>
<div class="block">Called when the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> is ready to accept another input frame.
<p>For each time this method is called, <a href="GlTextureProcessor.html#queueInputFrame(com.google.android.exoplayer2.effect.TextureInfo,long)"><code>GlTextureProcessor.queueInputFrame(TextureInfo, long)</code></a> can be
called once.</div>
</li>
</ul>
<a id="onInputFrameProcessed(com.google.android.exoplayer2.effect.TextureInfo)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInputFrameProcessed</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;onInputFrameProcessed&#8203;(<a href="TextureInfo.html" title="class in com.google.android.exoplayer2.effect">TextureInfo</a>&nbsp;inputTexture)</pre>
<div class="block">Called when the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> has processed an input frame.
<p>The implementation shall not assume the <a href="GlTextureProcessor.html" title="interface in com.google.android.exoplayer2.effect"><code>GlTextureProcessor</code></a> is <a href="#onReadyToAcceptInputFrame()">ready to accept another input frame</a> when this method is called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputTexture</code> - The <a href="TextureInfo.html" title="class in com.google.android.exoplayer2.effect"><code>TextureInfo</code></a> that was used to <a href="GlTextureProcessor.html#queueInputFrame(com.google.android.exoplayer2.effect.TextureInfo,long)">queue</a> the input frame.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More