Merge pull request #10001 from google/dev-v2-r2.17.0

r2.17.0
This commit is contained in:
Ian Baker 2022-02-24 12:03:00 +00:00 committed by GitHub
commit f1b37bc547
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1249 changed files with 63716 additions and 32915 deletions

View File

@ -1,5 +1,277 @@
# Release notes # Release notes
### 2.17.0 (2022-02-24)
* Core library:
* Sleep and retry when creating a `MediaCodec` instance fails. This works
around an issue that occurs on some devices when switching a surface
from a secure codec to another codec
([#8696](https://github.com/google/ExoPlayer/issues/8696)).
* Add `MediaCodecAdapter.getMetrics()` to allow users obtain metrics data
from `MediaCodec`.
([#9766](https://github.com/google/ExoPlayer/issues/9766)).
* Fix Maven dependency resolution
([#8353](https://github.com/google/ExoPlayer/issues/8353)).
* Disable automatic speed adjustment for live streams that neither have
low-latency features nor a user request setting the speed
([#9329](https://github.com/google/ExoPlayer/issues/9329)).
* Rename `DecoderCounters#inputBufferCount` to `queuedInputBufferCount`.
* Make `SimpleExoPlayer.renderers` private. Renderers can be accessed via
`ExoPlayer.getRenderer`.
* Updated some `AnalyticsListener.EventFlags` constant values to match
values in `Player.EventFlags`.
* Split `AnalyticsCollector` into an interface and default implementation
to allow it to be stripped by R8 if an app doesn't need it.
* Track selection:
* Support preferred video role flags in track selection
([#9402](https://github.com/google/ExoPlayer/issues/9402)).
* Update video track selection logic to take preferred MIME types and role
flags into account when selecting multiple video tracks for adaptation
([#9519](https://github.com/google/ExoPlayer/issues/9519)).
* Update video and audio track selection logic to only choose formats for
adaptive selections that have the same level of decoder and hardware
support ([#9565](https://github.com/google/ExoPlayer/issues/9565)).
* Update video track selection logic to prefer more efficient codecs if
multiple codecs are supported by primary, hardware-accelerated decoders
([#4835](https://github.com/google/ExoPlayer/issues/4835)).
* Prefer audio content preferences (for example, the "default" audio track
or a track matching the system locale language) over technical track
selection constraints (for example, preferred MIME type, or maximum
channel count).
* Prohibit duplicate `TrackGroup`s in a `TrackGroupArray`. `TrackGroup`s
can always be made distinguishable by setting an `id` in the
`TrackGroup` constructor. This fixes a crash when resuming playback
after backgrounding the app with an active track override
([#9718](https://github.com/google/ExoPlayer/issues/9718)).
* Amend logic in `AdaptiveTrackSelection` to allow a quality increase
under sufficient network bandwidth even if playback is very close to the
live edge ([#9784](https://github.com/google/ExoPlayer/issues/9784)).
* Video:
* Fix decoder fallback logic for Dolby Vision to use a compatible
H264/H265 decoder if needed.
* Audio:
* Fix decoder fallback logic for Dolby Atmos (E-AC3-JOC) to use a
compatible E-AC3 decoder if needed.
* Change `AudioCapabilities` APIs to require passing explicitly
`AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES` instead of `null`.
* Allow customization of the `AudioTrack` buffer size calculation by
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`.
([#8891](https://github.com/google/ExoPlayer/issues/8891)).
* Retry `AudioTrack` creation if the requested buffer size was > 1MB.
([#9712](https://github.com/google/ExoPlayer/issues/9712)).
* Extractors:
* Fix incorrect parsing of H.265 SPS NAL units
([#9719](https://github.com/google/ExoPlayer/issues/9719)).
* Parse Vorbis Comments (including `METADATA_BLOCK_PICTURE`) in Ogg Opus
and Ogg Vorbis files.
* Text:
* Add a `MediaItem.SubtitleConfiguration.id` field which is propagated to
the `Format.id` field of the subtitle track created from the
configuration
([#9673](https://github.com/google/ExoPlayer/issues/9673)).
* Add basic support for WebVTT subtitles in Matroska containers
([#9886](https://github.com/google/ExoPlayer/issues/9886)).
* Prevent `Cea708Decoder` from reading more than the declared size of a
service block.
* DRM:
* Remove `playbackLooper` from `DrmSessionManager.(pre)acquireSession`.
When a `DrmSessionManager` is used by an app in a custom `MediaSource`,
the `playbackLooper` needs to be passed to `DrmSessionManager.setPlayer`
instead.
* Ad playback / IMA:
* Add support for
[IMA Dynamic Ad Insertion (DAI)](https://support.google.com/admanager/answer/6147120)
([#8213](https://github.com/google/ExoPlayer/issues/8213)).
* Add a method to `AdPlaybackState` to allow resetting an ad group so that
it can be played again
([#9615](https://github.com/google/ExoPlayer/issues/9615)).
* Enforce playback speed of 1.0 during ad playback
([#9018](https://github.com/google/ExoPlayer/issues/9018)).
* Fix issue where an ad group that failed to load caused an immediate
playback reset
([#9929](https://github.com/google/ExoPlayer/issues/9929)).
* UI:
* Fix the color of the numbers in `StyledPlayerView` rewind and
fastforward buttons when using certain themes
([#9765](https://github.com/google/ExoPlayer/issues/9765)).
* Correctly translate playback speed strings
([#9811](https://github.com/google/ExoPlayer/issues/9811)).
* DASH:
* Support the `forced-subtitle` track role
([#9727](https://github.com/google/ExoPlayer/issues/9727)).
* Stop interpreting the `main` track role as `C.SELECTION_FLAG_DEFAULT`.
* Fix base URL exclusion logic for manifests that do not declare the DVB
namespace ([#9856](https://github.com/google/ExoPlayer/issues/9856)).
* Support relative `MPD.Location` URLs
([#9939](https://github.com/google/ExoPlayer/issues/9939)).
* HLS:
* Use chunkless preparation by default to improve start up time. If your
renditions contain muxed closed-caption tracks that are **not** declared
in the master playlist, you should add them to the master playlist to be
available for playback, or turn off chunkless preparation with
`HlsMediaSource.Factory.setAllowChunklessPreparation(false)`.
* Support key-frame accurate seeking in HLS
([#2882](https://github.com/google/ExoPlayer/issues/2882)).
* Correctly populate `Format.label` for audio only HLS streams
([#9608](https://github.com/google/ExoPlayer/issues/9608)).
* RTSP:
* Provide a client API to override the `SocketFactory` used for any server
connection ([#9606](https://github.com/google/ExoPlayer/pull/9606)).
* Prefer DIGEST authentication method over BASIC if both are present
([#9800](https://github.com/google/ExoPlayer/issues/9800)).
* Handle when RTSP track timing is not available
([#9775](https://github.com/google/ExoPlayer/issues/9775)).
* Ignore invalid RTP-Info header values
([#9619](https://github.com/google/ExoPlayer/issues/9619)).
* Transformer:
* Increase required min API version to 21.
* `TransformationException` is now used to describe errors that occur
during a transformation.
* Add `TransformationRequest` for specifying the transformation options.
* Allow multiple listeners to be registered.
* Fix Transformer being stuck when the codec output is partially read.
* Fix potential NPE in `Transformer.getProgress` when releasing the muxer
throws.
* Add a demo app for applying transformations.
* The transformer module is no longer included by depending on
`com.google.android.exoplayer:exoplayer`. To continue using transformer,
add an additional dependency on
`com.google.android.exoplayer:exoplayer-transformer`.
* MediaSession extension:
* By default, `MediaSessionConnector` now clears the playlist on stop.
Apps that want the playlist to be retained can call
`setClearMediaItemsOnStop(false)` on the connector.
* Cast extension:
* Fix bug that prevented `CastPlayer` from calling `onIsPlayingChanged`
correctly ([#9792](https://github.com/google/ExoPlayer/issues/9792)).
* Support audio metadata including artwork with
`DefaultMediaItemConverter`
([#9663](https://github.com/google/ExoPlayer/issues/9663)).
* FFmpeg extension:
* Make `build_ffmpeg.sh` depend on LLVM's bin utils instead of GNU's
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* Android 12 compatibility:
* Upgrade the Cast extension to depend on
`com.google.android.gms:play-services-cast-framework:20.1.0`. Earlier
versions of `play-services-cast-framework` are not compatible with apps
targeting Android 12, and will crash with an `IllegalArgumentException`
when creating `PendingIntent`s
([#9528](https://github.com/google/ExoPlayer/issues/9528)).
* Remove deprecated symbols:
* Remove `Player.EventLister`. Use `Player.Listener` instead.
* Remove `MediaSourceFactory#setDrmSessionManager`,
`MediaSourceFactory#setDrmHttpDataSourceFactory`, and
`MediaSourceFactory#setDrmUserAgent`. Use
`MediaSourceFactory#setDrmSessionManagerProvider` instead.
* Remove `MediaSourceFactory#setStreamKeys`. Use
`MediaItem.Builder#setStreamKeys` instead.
* Remove `MediaSourceFactory#createMediaSource(Uri)`. Use
`MediaSourceFactory#createMediaSource(MediaItem)` instead.
* Remove `setTag` from `DashMediaSource`, `HlsMediaSource` and
`SsMediaSource`. Use `MediaItem.Builder#setTag` instead.
* Remove `DashMediaSource#setLivePresentationDelayMs(long, boolean)`. Use
`MediaItem.Builder#setLiveConfiguration` and
`MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the
manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide
a fallback value.
* Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of
the thread enforcement is no longer possible.
* Remove `ActionFile` and `ActionFileUpgradeUtil`. Use ExoPlayer 2.16.1 or
before to use `ActionFileUpgradeUtil` to merge legacy action files into
`DefaultDownloadIndex`.
* Remove `ProgressiveMediaSource#setExtractorsFactory`. Use
`ProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)`
constructor instead.
* Remove `ProgressiveMediaSource.Factory#setTag` and, and
`ProgressiveMediaSource.Factory#setCustomCacheKey`. Use
`MediaItem.Builder#setTag` and `MediaItem.Builder#setCustomCacheKey`
instead.
* Remove `DefaultRenderersFactory(Context, @ExtensionRendererMode int)`
and `DefaultRenderersFactory(Context, @ExtensionRendererMode int, long)`
constructors. Use the `DefaultRenderersFactory(Context)` constructor,
`DefaultRenderersFactory#setExtensionRendererMode`, and
`DefaultRenderersFactory#setAllowedVideoJoiningTimeMs` instead.
* Remove all public `CronetDataSource` constructors. Use
`CronetDataSource.Factory` instead.
* Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break
the compilation of usages in Kotlin, which can be fixed by moving the
annotation to annotate the type (`Int`).
* `@AacAudioObjectType`
* `@Ac3Util.SyncFrameInfo.StreamType`
* `@AdLoadException.Type`
* `@AdtsExtractor.Flags`
* `@AmrExtractor.Flags`
* `@AspectRatioFrameLayout.ResizeMode`
* `@AudioFocusManager.PlayerCommand`
* `@AudioSink.SinkFormatSupport`
* `@BinarySearchSeeker.TimestampSearchResult.Type`
* `@BufferReplacementMode`
* `@C.BufferFlags`
* `@C.ColorRange`
* `@C.ColorSpace`
* `@C.ColorTransfer`
* `@C.CryptoMode`
* `@C.Encoding`
* `@C.PcmEncoding`
* `@C.Projection`
* `@C.SelectionReason`
* `@C.StereoMode`
* `@C.VideoOutputMode`
* `@CacheDataSource.Flags`
* `@CaptionStyleCompat.EdgeType`
* `@DataSpec.Flags`
* `@DataSpec.HttpMethods`
* `@DecoderDiscardReasons`
* `@DecoderReuseResult`
* `@DefaultAudioSink.OutputMode`
* `@DefaultDrmSessionManager.Mode`
* `@DefaultTrackSelector.SelectionEligibility`
* `@DefaultTsPayloadReaderFactory.Flags`
* `@EGLSurfaceTexture.SecureMode`
* `@EbmlProcessor.ElementType`
* `@ExoMediaDrm.KeyRequest.RequestType`
* `@ExtensionRendererMode`
* `@Extractor.ReadResult`
* `@FileTypes.Type`
* `@FlacExtractor.Flags` (in `com.google.android.exoplayer2.ext.flac`
package)
* `@FlacExtractor.Flags` (in
`com.google.android.exoplayer2.extractor.flac` package)
* `@FragmentedMp4Extractor.Flags`
* `@HlsMediaPlaylist.PlaylistType`
* `@HttpDataSourceException.Type`
* `@IllegalClippingException.Reason`
* `@IllegalMergeException.Reason`
* `@LoadErrorHandlingPolicy.FallbackType`
* `@MatroskaExtractor.Flags`
* `@Mp3Extractor.Flags`
* `@Mp4Extractor.Flags`
* `@NotificationUtil.Importance`
* `@PlaybackException.FieldNumber`
* `@PlayerNotificationManager.Priority`
* `@PlayerNotificationManager.Visibility`
* `@PlayerView.ShowBuffering`
* `@Renderer.State`
* `@RendererCapabilities.AdaptiveSupport`
* `@RendererCapabilities.Capabilities`
* `@RendererCapabilities.DecoderSupport`
* `@RendererCapabilities.FormatSupport`
* `@RendererCapabilities.HardwareAccelerationSupport`
* `@RendererCapabilities.TunnelingSupport`
* `@SampleStream.ReadDataResult`
* `@SampleStream.ReadFlags`
* `@StyledPlayerView.ShowBuffering`
* `@SubtitleView.ViewType`
* `@TextAnnotation.Position`
* `@TextEmphasisSpan.MarkFill`
* `@TextEmphasisSpan.MarkShape`
* `@Track.Transformation`
* `@TrackOutput.SampleDataPart`
* `@Transformer.ProgressState`
* `@TsExtractor.Mode`
* `@TsPayloadReader.Flags`
* `@WebvttCssStyle.FontSizeUnit`
### 2.16.1 (2021-11-18) ### 2.16.1 (2021-11-18)
* Core Library: * Core Library:
@ -522,8 +794,8 @@
* The most used methods of `Player`'s audio, video, text and metadata * The most used methods of `Player`'s audio, video, text and metadata
components have been added directly to `Player`. components have been added directly to `Player`.
* Add `Player.getAvailableCommands`, `Player.isCommandAvailable` and * Add `Player.getAvailableCommands`, `Player.isCommandAvailable` and
`Listener.onAvailableCommandsChanged` to query which commands `Listener.onAvailableCommandsChanged` to query which commands that can
that can be executed on the player. be executed on the player.
* Add a `Player.Listener` interface to receive all player events. * Add a `Player.Listener` interface to receive all player events.
Component listeners and `EventListener` have been deprecated. Component listeners and `EventListener` have been deprecated.
* Add `Player.getMediaMetadata`, which returns a combined and structured * Add `Player.getMediaMetadata`, which returns a combined and structured
@ -532,8 +804,8 @@
* `Player.setPlaybackParameters` no longer accepts null, use * `Player.setPlaybackParameters` no longer accepts null, use
`PlaybackParameters.DEFAULT` instead. `PlaybackParameters.DEFAULT` instead.
* Report information about the old and the new playback positions to * Report information about the old and the new playback positions to
`Listener.onPositionDiscontinuity`. Add `DISCONTINUITY_REASON_SKIP` `Listener.onPositionDiscontinuity`. Add `DISCONTINUITY_REASON_SKIP` and
and `DISCONTINUITY_REASON_REMOVE` as discontinuity reasons, and rename `DISCONTINUITY_REASON_REMOVE` as discontinuity reasons, and rename
`DISCONTINUITY_REASON_PERIOD_TRANSITION` to `DISCONTINUITY_REASON_PERIOD_TRANSITION` to
`DISCONTINUITY_REASON_AUTO_TRANSITION`. Remove `DISCONTINUITY_REASON_AUTO_TRANSITION`. Remove
`DISCONTINUITY_REASON_AD_INSERTION`, for which `DISCONTINUITY_REASON_AD_INSERTION`, for which
@ -588,8 +860,8 @@
dispatched for each track in each period. dispatched for each track in each period.
* Include the session state in DRM session-acquired listener methods. * Include the session state in DRM session-acquired listener methods.
* UI: * UI:
* Add `PlayerNotificationManager.Builder`, with the ability to * Add `PlayerNotificationManager.Builder`, with the ability to specify
specify which group the notification should belong to. which group the notification should belong to.
* Remove `setUseSensorRotation` from `PlayerView` and `StyledPlayerView`. * Remove `setUseSensorRotation` from `PlayerView` and `StyledPlayerView`.
Instead, cast the view returned by `getVideoSurfaceView` to Instead, cast the view returned by `getVideoSurfaceView` to
`SphericalGLSurfaceView`, and then call `setUseSensorRotation` on the `SphericalGLSurfaceView`, and then call `setUseSensorRotation` on the
@ -661,7 +933,8 @@
### 2.13.3 (2021-04-14) ### 2.13.3 (2021-04-14)
* Published via the Google Maven repository (i.e., google()) rather than JCenter. * Published via the Google Maven repository (i.e., google()) rather than
JCenter.
* Core: * Core:
* Reset playback speed when live playback speed control becomes unused * Reset playback speed when live playback speed control becomes unused
([#8664](https://github.com/google/ExoPlayer/issues/8664)). ([#8664](https://github.com/google/ExoPlayer/issues/8664)).
@ -816,8 +1089,8 @@
* Remove `Player.setVideoDecoderOutputBufferRenderer` from Player API. Use * Remove `Player.setVideoDecoderOutputBufferRenderer` from Player API. Use
`setVideoSurfaceView` and `clearVideoSurfaceView` instead. `setVideoSurfaceView` and `clearVideoSurfaceView` instead.
* Default `SingleSampleMediaSource.treatLoadErrorsAsEndOfStream` to `true` * Default `SingleSampleMediaSource.treatLoadErrorsAsEndOfStream` to `true`
so that errors loading external subtitle files do not cause playback so that errors loading external subtitle files do not cause playback to
to fail ([#8430](https://github.com/google/ExoPlayer/issues/8430)). A fail ([#8430](https://github.com/google/ExoPlayer/issues/8430)). A
warning will be logged by `SingleSampleMediaPeriod` whenever a load warning will be logged by `SingleSampleMediaPeriod` whenever a load
error is treated as though the end of the stream has been reached. error is treated as though the end of the stream has been reached.
* Time out on release to prevent ANRs if an underlying platform call is * Time out on release to prevent ANRs if an underlying platform call is
@ -898,9 +1171,8 @@
([#7847](https://github.com/google/ExoPlayer/issues/7847)). ([#7847](https://github.com/google/ExoPlayer/issues/7847)).
* Drop key and provision responses if `DefaultDrmSession` is released * Drop key and provision responses if `DefaultDrmSession` is released
while waiting for the response. This prevents harmless log messages of while waiting for the response. This prevents harmless log messages of
the form: the form: `IllegalStateException: sending message to a Handler on a dead
`IllegalStateException: sending message to a Handler on a dead thread` thread` ([#8328](https://github.com/google/ExoPlayer/issues/8328)).
([#8328](https://github.com/google/ExoPlayer/issues/8328)).
* Allow apps to fully customize DRM behaviour for each `MediaItem` by * Allow apps to fully customize DRM behaviour for each `MediaItem` by
passing a `DrmSessionManagerProvider` to `MediaSourceFactory` passing a `DrmSessionManagerProvider` to `MediaSourceFactory`
([#8466](https://github.com/google/ExoPlayer/issues/8466)). ([#8466](https://github.com/google/ExoPlayer/issues/8466)).
@ -915,8 +1187,8 @@
existing decoder instance for the new format, and if not then the existing decoder instance for the new format, and if not then the
reasons why. reasons why.
* Video: * Video:
* Fall back to AVC/HEVC decoders for Dolby Vision streams with level 10 * Fall back to AVC/HEVC decoders for Dolby Vision streams with level 10 to
to 13 ([#8530](https://github.com/google/ExoPlayer/issues/8530)). 13 ([#8530](https://github.com/google/ExoPlayer/issues/8530)).
* Fix VP9 format capability checks on API level 23 and earlier. The * Fix VP9 format capability checks on API level 23 and earlier. The
platform does not correctly report the VP9 level supported by the platform does not correctly report the VP9 level supported by the
decoder in this case, so we estimate it based on the decoder's maximum decoder in this case, so we estimate it based on the decoder's maximum
@ -998,8 +1270,8 @@
* `ExtractorsMediaSource.Factory.setMinLoadableRetryCount(int)`. Use * `ExtractorsMediaSource.Factory.setMinLoadableRetryCount(int)`. Use
`ExtractorsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)` `ExtractorsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)`
instead. instead.
* `FixedTrackSelection.Factory`. If you need to disable adaptive * `FixedTrackSelection.Factory`. If you need to disable adaptive selection
selection in `DefaultTrackSelector`, enable the in `DefaultTrackSelector`, enable the
`DefaultTrackSelector.Parameters.forceHighestSupportedBitrate` flag. `DefaultTrackSelector.Parameters.forceHighestSupportedBitrate` flag.
* `HlsMediaSource.Factory.setMinLoadableRetryCount(int)`. Use * `HlsMediaSource.Factory.setMinLoadableRetryCount(int)`. Use
`HlsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)` `HlsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)`
@ -1012,8 +1284,8 @@
`MappedTrackInfo.getUnmappedTrackGroups()` instead. `MappedTrackInfo.getUnmappedTrackGroups()` instead.
* `MappedTrackInfo.length`. Use `MappedTrackInfo.getRendererCount()` * `MappedTrackInfo.length`. Use `MappedTrackInfo.getRendererCount()`
instead. instead.
* `Player.DefaultEventListener.onTimelineChanged(Timeline, Object)`. * `Player.DefaultEventListener.onTimelineChanged(Timeline, Object)`. Use
Use `Player.EventListener.onTimelineChanged(Timeline, int)` instead. `Player.EventListener.onTimelineChanged(Timeline, int)` instead.
* `Player.setAudioAttributes(AudioAttributes)`. Use * `Player.setAudioAttributes(AudioAttributes)`. Use
`Player.AudioComponent.setAudioAttributes(AudioAttributes, boolean)` `Player.AudioComponent.setAudioAttributes(AudioAttributes, boolean)`
instead. instead.
@ -1029,8 +1301,8 @@
`SimpleExoPlayer.removeVideoListener(VideoListener)` instead. `SimpleExoPlayer.removeVideoListener(VideoListener)` instead.
* `SimpleExoPlayer.getAudioStreamType()`. Use * `SimpleExoPlayer.getAudioStreamType()`. Use
`SimpleExoPlayer.getAudioAttributes()` instead. `SimpleExoPlayer.getAudioAttributes()` instead.
* `SimpleExoPlayer.setAudioDebugListener(AudioRendererEventListener)`. * `SimpleExoPlayer.setAudioDebugListener(AudioRendererEventListener)`. Use
Use `SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)` instead. `SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)` instead.
* `SimpleExoPlayer.setAudioStreamType(int)`. Use * `SimpleExoPlayer.setAudioStreamType(int)`. Use
`SimpleExoPlayer.setAudioAttributes(AudioAttributes)` instead. `SimpleExoPlayer.setAudioAttributes(AudioAttributes)` instead.
* `SimpleExoPlayer.setMetadataOutput(MetadataOutput)`. Use * `SimpleExoPlayer.setMetadataOutput(MetadataOutput)`. Use
@ -1041,12 +1313,11 @@
* `SimpleExoPlayer.setPlaybackParams(PlaybackParams)`. Use * `SimpleExoPlayer.setPlaybackParams(PlaybackParams)`. Use
`SimpleExoPlayer.setPlaybackParameters(PlaybackParameters)` instead. `SimpleExoPlayer.setPlaybackParameters(PlaybackParameters)` instead.
* `SimpleExoPlayer.setTextOutput(TextOutput)`. Use * `SimpleExoPlayer.setTextOutput(TextOutput)`. Use
`SimpleExoPlayer.addTextOutput(TextOutput)` instead. If your `SimpleExoPlayer.addTextOutput(TextOutput)` instead. If your application
application is calling `SimpleExoPlayer.setTextOutput(null)`, make sure is calling `SimpleExoPlayer.setTextOutput(null)`, make sure to replace
to replace this call with a call to this call with a call to `SimpleExoPlayer.removeTextOutput(TextOutput)`.
`SimpleExoPlayer.removeTextOutput(TextOutput)`. * `SimpleExoPlayer.setVideoDebugListener(VideoRendererEventListener)`. Use
* `SimpleExoPlayer.setVideoDebugListener(VideoRendererEventListener)`. `SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)` instead.
Use `SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)` instead.
* `SimpleExoPlayer.setVideoListener(VideoListener)`. Use * `SimpleExoPlayer.setVideoListener(VideoListener)`. Use
`SimpleExoPlayer.addVideoListener(VideoListener)` instead. If your `SimpleExoPlayer.addVideoListener(VideoListener)` instead. If your
application is calling `SimpleExoPlayer.setVideoListener(null)`, make application is calling `SimpleExoPlayer.setVideoListener(null)`, make
@ -1070,7 +1341,7 @@
`SsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)` `SsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)`
instead. instead.
### 2.12.3 (2021-01-13) ### ### 2.12.3 (2021-01-13)
* Core library: * Core library:
* Fix `MediaCodecRenderer` issue where empty streams would fail to play in * Fix `MediaCodecRenderer` issue where empty streams would fail to play in
@ -1107,7 +1378,7 @@
fix a deadlock while creating PlaybackStateCompat internally. fix a deadlock while creating PlaybackStateCompat internally.
([#8011](https://github.com/google/ExoPlayer/issues/8011)). ([#8011](https://github.com/google/ExoPlayer/issues/8011)).
### 2.12.2 (2020-12-01) ### ### 2.12.2 (2020-12-01)
* Core library: * Core library:
* Suppress exceptions from registering and unregistering the stream volume * Suppress exceptions from registering and unregistering the stream volume
@ -1168,7 +1439,7 @@
* Allow to remove all playlist items that makes the player reset * Allow to remove all playlist items that makes the player reset
([#8047](https://github.com/google/ExoPlayer/issues/8047)). ([#8047](https://github.com/google/ExoPlayer/issues/8047)).
### 2.12.1 (2020-10-23) ### ### 2.12.1 (2020-10-23)
* Core library: * Core library:
* Fix issue where `Player.setMediaItems` would ignore its `resetPosition` * Fix issue where `Player.setMediaItems` would ignore its `resetPosition`
@ -1207,7 +1478,7 @@
([#8058](https://github.com/google/ExoPlayer/issues/8058)). ([#8058](https://github.com/google/ExoPlayer/issues/8058)).
* Extractors: * Extractors:
* MP4: * MP4:
* Add support for `_mp2` boxes * Add support for `_mp2` boxes
([#7967](https://github.com/google/ExoPlayer/issues/7967)). ([#7967](https://github.com/google/ExoPlayer/issues/7967)).
* Fix playback of files containing `pcm_alaw` or `pcm_mulaw` audio * Fix playback of files containing `pcm_alaw` or `pcm_mulaw` audio
tracks, by enabling sample rechunking for such tracks. tracks, by enabling sample rechunking for such tracks.
@ -1243,11 +1514,11 @@
([#7961](https://github.com/google/ExoPlayer/issues/7961)). ([#7961](https://github.com/google/ExoPlayer/issues/7961)).
* Fix incorrect truncation of large cue point positions * Fix incorrect truncation of large cue point positions
([#8067](https://github.com/google/ExoPlayer/issues/8067)). ([#8067](https://github.com/google/ExoPlayer/issues/8067)).
* Upgrade IMA SDK dependency to 3.20.1. This brings in a fix for * Upgrade IMA SDK dependency to 3.20.1. This brings in a fix for companion
companion ads rendering when targeting API 29 ads rendering when targeting API 29
([#6432](https://github.com/google/ExoPlayer/issues/6432)). ([#6432](https://github.com/google/ExoPlayer/issues/6432)).
### 2.12.0 (2020-09-11) ### ### 2.12.0 (2020-09-11)
To learn more about what's new in 2.12, read the corresponding To learn more about what's new in 2.12, read the corresponding
[blog post](https://medium.com/google-exoplayer/exoplayer-2-12-whats-new-e43ef8ff72e7). [blog post](https://medium.com/google-exoplayer/exoplayer-2-12-whats-new-e43ef8ff72e7).
@ -1278,8 +1549,7 @@ To learn more about what's new in 2.12, read the corresponding
* Remove `PlaybackParameters.skipSilence`, and replace it with * Remove `PlaybackParameters.skipSilence`, and replace it with
`AudioComponent.setSkipSilenceEnabled`. This method is also `AudioComponent.setSkipSilenceEnabled`. This method is also
available on `SimpleExoPlayer`. An available on `SimpleExoPlayer`. An
`AudioListener.onSkipSilenceEnabledChanged` callback is also `AudioListener.onSkipSilenceEnabledChanged` callback is also added.
added.
* Add `TextComponent.getCurrentCues` to get the current cues. This * Add `TextComponent.getCurrentCues` to get the current cues. This
method is also available on `SimpleExoPlayer`. The current cues are method is also available on `SimpleExoPlayer`. The current cues are
no longer automatically forwarded to a `TextOutput` when it's added no longer automatically forwarded to a `TextOutput` when it's added
@ -1607,20 +1877,19 @@ To learn more about what's new in 2.12, read the corresponding
* Add support for downloading DRM-protected content using offline Widevine * Add support for downloading DRM-protected content using offline Widevine
licenses. licenses.
### 2.11.8 (2020-08-25) ### ### 2.11.8 (2020-08-25)
* Fix distorted playback of floating point audio when samples exceed the * Fix distorted playback of floating point audio when samples exceed the `[-1,
`[-1, 1]` nominal range. 1]` nominal range.
* MP4: * MP4:
* Add support for `piff` and `isml` brands * Add support for `piff` and `isml` brands
([#7584](https://github.com/google/ExoPlayer/issues/7584)). ([#7584](https://github.com/google/ExoPlayer/issues/7584)).
* Fix playback of very short MP4 files. * Fix playback of very short MP4 files.
* FMP4: * FMP4:
* Fix `saiz` and `senc` sample count checks, resolving a "length * Fix `saiz` and `senc` sample count checks, resolving a "length mismatch"
mismatch" `ParserException` when playing certain protected FMP4 streams `ParserException` when playing certain protected FMP4 streams
([#7592](https://github.com/google/ExoPlayer/issues/7592)). ([#7592](https://github.com/google/ExoPlayer/issues/7592)).
* Fix handling of `traf` boxes containing multiple `sbgp` or `sgpd` * Fix handling of `traf` boxes containing multiple `sbgp` or `sgpd` boxes.
boxes.
* FLV: Ignore `SCRIPTDATA` segments with invalid name types, rather than * FLV: Ignore `SCRIPTDATA` segments with invalid name types, rather than
failing playback ([#7675](https://github.com/google/ExoPlayer/issues/7675)). failing playback ([#7675](https://github.com/google/ExoPlayer/issues/7675)).
* Better infer the content type of `.ism` and `.isml` streaming URLs. * Better infer the content type of `.ism` and `.isml` streaming URLs.
@ -1633,12 +1902,12 @@ To learn more about what's new in 2.12, read the corresponding
* Demo app: Fix playback of ClearKey protected content on API level 26 and * Demo app: Fix playback of ClearKey protected content on API level 26 and
earlier ([#7735](https://github.com/google/ExoPlayer/issues/7735)). earlier ([#7735](https://github.com/google/ExoPlayer/issues/7735)).
### 2.11.7 (2020-06-29) ### ### 2.11.7 (2020-06-29)
* IMA extension: Fix the way postroll "content complete" notifications are * IMA extension: Fix the way postroll "content complete" notifications are
handled to avoid repeatedly refreshing the timeline after playback ends. handled to avoid repeatedly refreshing the timeline after playback ends.
### 2.11.6 (2020-06-19) ### ### 2.11.6 (2020-06-19)
* UI: Prevent `PlayerView` from temporarily hiding the video surface when * UI: Prevent `PlayerView` from temporarily hiding the video surface when
seeking to an unprepared period within the current window. For example when seeking to an unprepared period within the current window. For example when
@ -1653,14 +1922,14 @@ To learn more about what's new in 2.12, read the corresponding
([#7508](https://github.com/google/ExoPlayer/issues/7508)). ([#7508](https://github.com/google/ExoPlayer/issues/7508)).
* Fix a bug where the number of ads in an ad group couldn't change * Fix a bug where the number of ads in an ad group couldn't change
([#7477](https://github.com/google/ExoPlayer/issues/7477)). ([#7477](https://github.com/google/ExoPlayer/issues/7477)).
* Work around unexpected `pauseAd`/`stopAd` for ads that have preloaded * Work around unexpected `pauseAd`/`stopAd` for ads that have preloaded on
on seeking to another position seeking to another position
([#7492](https://github.com/google/ExoPlayer/issues/7492)). ([#7492](https://github.com/google/ExoPlayer/issues/7492)).
* Fix incorrect rounding of ad cue points. * Fix incorrect rounding of ad cue points.
* Fix handling of postrolls preloading * Fix handling of postrolls preloading
([#7518](https://github.com/google/ExoPlayer/issues/7518)). ([#7518](https://github.com/google/ExoPlayer/issues/7518)).
### 2.11.5 (2020-06-05) ### ### 2.11.5 (2020-06-05)
* Improve the smoothness of video playback immediately after starting, seeking * Improve the smoothness of video playback immediately after starting, seeking
or resuming a playback or resuming a playback
@ -1668,8 +1937,8 @@ To learn more about what's new in 2.12, read the corresponding
* Add `SilenceMediaSource.Factory` to support tags. * Add `SilenceMediaSource.Factory` to support tags.
* Enable the configuration of `SilenceSkippingAudioProcessor` * Enable the configuration of `SilenceSkippingAudioProcessor`
([#6705](https://github.com/google/ExoPlayer/issues/6705)). ([#6705](https://github.com/google/ExoPlayer/issues/6705)).
* Fix bug where `PlayerMessages` throw an exception after `MediaSources` * Fix bug where `PlayerMessages` throw an exception after `MediaSources` are
are removed from the playlist removed from the playlist
([#7278](https://github.com/google/ExoPlayer/issues/7278)). ([#7278](https://github.com/google/ExoPlayer/issues/7278)).
* Fix "Not allowed to start service" `IllegalStateException` in * Fix "Not allowed to start service" `IllegalStateException` in
`DownloadService` `DownloadService`
@ -1701,13 +1970,11 @@ To learn more about what's new in 2.12, read the corresponding
([#7303](https://github.com/google/ExoPlayer/issues/7303)). ([#7303](https://github.com/google/ExoPlayer/issues/7303)).
* Add `showScrubber` and `hideScrubber` methods to `DefaultTimeBar`. * Add `showScrubber` and `hideScrubber` methods to `DefaultTimeBar`.
* Text: * Text:
* Use anti-aliasing and bitmap filtering when displaying bitmap * Use anti-aliasing and bitmap filtering when displaying bitmap subtitles.
subtitles.
* Fix `SubtitlePainter` to render `EDGE_TYPE_OUTLINE` using the correct * Fix `SubtitlePainter` to render `EDGE_TYPE_OUTLINE` using the correct
color. color.
* IMA extension: * IMA extension:
* Upgrade to IMA SDK version 3.19.0, and migrate to new * Upgrade to IMA SDK version 3.19.0, and migrate to new preloading APIs
preloading APIs
([#6429](https://github.com/google/ExoPlayer/issues/6429)). This fixes ([#6429](https://github.com/google/ExoPlayer/issues/6429)). This fixes
several issues involving preloading and handling of ad loading error several issues involving preloading and handling of ad loading error
cases: ([#4140](https://github.com/google/ExoPlayer/issues/4140), cases: ([#4140](https://github.com/google/ExoPlayer/issues/4140),

View File

@ -13,8 +13,8 @@
// limitations under the License. // limitations under the License.
project.ext { project.ext {
// ExoPlayer version and version code. // ExoPlayer version and version code.
releaseVersion = '2.16.1' releaseVersion = '2.17.0'
releaseVersionCode = 2016001 releaseVersionCode = 2_017_000
minSdkVersion = 16 minSdkVersion = 16
appTargetSdkVersion = 29 appTargetSdkVersion = 29
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some // Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
@ -25,7 +25,7 @@ project.ext {
junitVersion = '4.13.2' junitVersion = '4.13.2'
// Use the same Guava version as the Android repo: // Use the same Guava version as the Android repo:
// https://cs.android.com/android/platform/superproject/+/master:external/guava/METADATA // https://cs.android.com/android/platform/superproject/+/master:external/guava/METADATA
guavaVersion = '27.1-android' guavaVersion = '31.0.1-android'
mockitoVersion = '3.12.4' mockitoVersion = '3.12.4'
robolectricVersion = '4.6.1' robolectricVersion = '4.6.1'
// Keep this in sync with Google's internal Checker Framework version. // Keep this in sync with Google's internal Checker Framework version.
@ -37,6 +37,7 @@ project.ext {
androidxAnnotationVersion = '1.3.0' androidxAnnotationVersion = '1.3.0'
androidxAppCompatVersion = '1.3.1' androidxAppCompatVersion = '1.3.1'
androidxCollectionVersion = '1.1.0' androidxCollectionVersion = '1.1.0'
androidxConstraintLayoutVersion = '2.0.4'
androidxCoreVersion = '1.7.0' androidxCoreVersion = '1.7.0'
androidxFuturesVersion = '1.1.0' androidxFuturesVersion = '1.1.0'
androidxMediaVersion = '1.4.3' androidxMediaVersion = '1.4.3'

View File

@ -28,7 +28,6 @@ import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.TracksInfo; import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.ext.cast.CastPlayer; import com.google.android.exoplayer2.ext.cast.CastPlayer;
import com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener; import com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.ui.StyledPlayerControlView; import com.google.android.exoplayer2.ui.StyledPlayerControlView;
import com.google.android.exoplayer2.ui.StyledPlayerView; import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.gms.cast.framework.CastContext; import com.google.android.gms.cast.framework.CastContext;
@ -67,7 +66,7 @@ import java.util.ArrayList;
* *
* @param context A {@link Context}. * @param context A {@link Context}.
* @param listener A {@link Listener} for queue position changes. * @param listener A {@link Listener} for queue position changes.
* @param playerView The {@link PlayerView} for playback. * @param playerView The {@link StyledPlayerView} for playback.
* @param castContext The {@link CastContext}. * @param castContext The {@link CastContext}.
*/ */
public PlayerManager( public PlayerManager(
@ -224,10 +223,12 @@ import java.util.ArrayList;
if (currentPlayer != localPlayer || tracksInfo == lastSeenTrackGroupInfo) { if (currentPlayer != localPlayer || tracksInfo == lastSeenTrackGroupInfo) {
return; return;
} }
if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_VIDEO)) { if (!tracksInfo.isTypeSupportedOrEmpty(
C.TRACK_TYPE_VIDEO, /* allowExceedsCapabilities= */ true)) {
listener.onUnsupportedTrack(C.TRACK_TYPE_VIDEO); listener.onUnsupportedTrack(C.TRACK_TYPE_VIDEO);
} }
if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_AUDIO)) { if (!tracksInfo.isTypeSupportedOrEmpty(
C.TRACK_TYPE_AUDIO, /* allowExceedsCapabilities= */ true)) {
listener.onUnsupportedTrack(C.TRACK_TYPE_AUDIO); listener.onUnsupportedTrack(C.TRACK_TYPE_AUDIO);
} }
lastSeenTrackGroupInfo = tracksInfo; lastSeenTrackGroupInfo = tracksInfo;

View File

@ -15,19 +15,19 @@
#extension GL_OES_EGL_image_external : require #extension GL_OES_EGL_image_external : require
precision mediump float; precision mediump float;
// External texture containing video decoder output. // External texture containing video decoder output.
uniform samplerExternalOES tex_sampler_0; uniform samplerExternalOES uTexSampler0;
// Texture containing the overlap bitmap. // Texture containing the overlap bitmap.
uniform sampler2D tex_sampler_1; uniform sampler2D uTexSampler1;
// Horizontal scaling factor for the overlap bitmap. // Horizontal scaling factor for the overlap bitmap.
uniform float scaleX; uniform float uScaleX;
// Vertical scaling factory for the overlap bitmap. // Vertical scaling factory for the overlap bitmap.
uniform float scaleY; uniform float uScaleY;
varying vec2 v_texcoord; varying vec2 vTexCoords;
void main() { void main() {
vec4 videoColor = texture2D(tex_sampler_0, v_texcoord); vec4 videoColor = texture2D(uTexSampler0, vTexCoords);
vec4 overlayColor = texture2D(tex_sampler_1, vec4 overlayColor = texture2D(uTexSampler1,
vec2(v_texcoord.x * scaleX, vec2(vTexCoords.x * uScaleX,
v_texcoord.y * scaleY)); vTexCoords.y * uScaleY));
// Blend the video decoder output and the overlay bitmap. // Blend the video decoder output and the overlay bitmap.
gl_FragColor = videoColor * (1.0 - overlayColor.a) gl_FragColor = videoColor * (1.0 - overlayColor.a)
+ overlayColor * overlayColor.a; + overlayColor * overlayColor.a;

View File

@ -11,11 +11,11 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
attribute vec4 a_position; attribute vec4 aFramePosition;
attribute vec4 a_texcoord; attribute vec4 aTexCoords;
uniform mat4 tex_transform; uniform mat4 uTexTransform;
varying vec2 v_texcoord; varying vec2 vTexCoords;
void main() { void main() {
gl_Position = a_position; gl_Position = aFramePosition;
v_texcoord = (tex_transform * a_texcoord).xy; vTexCoords = (uTexTransform * aTexCoords).xy;
} }

View File

@ -26,7 +26,6 @@ import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.opengl.GLES20; import android.opengl.GLES20;
import android.opengl.GLUtils; import android.opengl.GLUtils;
import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.GlUtil; import com.google.android.exoplayer2.util.GlUtil;
import java.io.IOException; import java.io.IOException;
@ -52,8 +51,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private final Canvas overlayCanvas; private final Canvas overlayCanvas;
private GlUtil.@MonotonicNonNull Program program; private GlUtil.@MonotonicNonNull Program program;
@Nullable private GlUtil.Attribute[] attributes;
@Nullable private GlUtil.Uniform[] uniforms;
private float bitmapScaleX; private float bitmapScaleX;
private float bitmapScaleY; private float bitmapScaleY;
@ -88,31 +85,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
} catch (IOException e) { } catch (IOException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
program.use(); program.setBufferAttribute(
GlUtil.Attribute[] attributes = program.getAttributes(); "aFramePosition", GlUtil.getNormalizedCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT);
for (GlUtil.Attribute attribute : attributes) { program.setBufferAttribute(
if (attribute.name.equals("a_position")) { "aTexCoords", GlUtil.getTextureCoordinateBounds(), GlUtil.RECTANGLE_VERTICES_COUNT);
attribute.setBuffer(
new float[] {
-1, -1, 0, 1,
1, -1, 0, 1,
-1, 1, 0, 1,
1, 1, 0, 1
},
4);
} else if (attribute.name.equals("a_texcoord")) {
attribute.setBuffer(
new float[] {
0, 0, 0, 1,
1, 0, 0, 1,
0, 1, 0, 1,
1, 1, 0, 1
},
4);
}
}
this.attributes = attributes;
this.uniforms = program.getUniforms();
GLES20.glGenTextures(1, textures, 0); GLES20.glGenTextures(1, textures, 0);
GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
GLES20.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); GLES20.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
@ -141,36 +117,22 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
GlUtil.checkGlError(); GlUtil.checkGlError();
// Run the shader program. // Run the shader program.
GlUtil.Uniform[] uniforms = checkNotNull(this.uniforms); GlUtil.Program program = checkNotNull(this.program);
GlUtil.Attribute[] attributes = checkNotNull(this.attributes); program.setSamplerTexIdUniform("uTexSampler0", frameTexture, /* unit= */ 0);
for (GlUtil.Uniform uniform : uniforms) { program.setSamplerTexIdUniform("uTexSampler1", textures[0], /* unit= */ 1);
switch (uniform.name) { program.setFloatUniform("uScaleX", bitmapScaleX);
case "tex_sampler_0": program.setFloatUniform("uScaleY", bitmapScaleY);
uniform.setSamplerTexId(frameTexture, /* unit= */ 0); program.setFloatsUniform("uTexTransform", transformMatrix);
break; program.bindAttributesAndUniforms();
case "tex_sampler_1":
uniform.setSamplerTexId(textures[0], /* unit= */ 1);
break;
case "scaleX":
uniform.setFloat(bitmapScaleX);
break;
case "scaleY":
uniform.setFloat(bitmapScaleY);
break;
case "tex_transform":
uniform.setFloats(transformMatrix);
break;
default: // fall out
}
}
for (GlUtil.Attribute copyExternalAttribute : attributes) {
copyExternalAttribute.bind();
}
for (GlUtil.Uniform copyExternalUniform : uniforms) {
copyExternalUniform.bind();
}
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
GlUtil.checkGlError(); GlUtil.checkGlError();
} }
@Override
public void release() {
if (program != null) {
program.delete();
}
}
} }

View File

@ -34,7 +34,7 @@ import com.google.android.exoplayer2.drm.HttpMediaDrmCallback;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.source.dash.DashMediaSource;
import com.google.android.exoplayer2.ui.PlayerView; import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.upstream.DefaultDataSource;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.DefaultHttpDataSource;
@ -61,7 +61,7 @@ public final class MainActivity extends Activity {
private static final String DRM_SCHEME_EXTRA = "drm_scheme"; private static final String DRM_SCHEME_EXTRA = "drm_scheme";
private static final String DRM_LICENSE_URL_EXTRA = "drm_license_url"; private static final String DRM_LICENSE_URL_EXTRA = "drm_license_url";
@Nullable private PlayerView playerView; @Nullable private StyledPlayerView playerView;
@Nullable private VideoProcessingGLSurfaceView videoProcessingGLSurfaceView; @Nullable private VideoProcessingGLSurfaceView videoProcessingGLSurfaceView;
@Nullable private ExoPlayer player; @Nullable private ExoPlayer player;
@ -161,12 +161,12 @@ public final class MainActivity extends Activity {
if (type == C.TYPE_DASH) { if (type == C.TYPE_DASH) {
mediaSource = mediaSource =
new DashMediaSource.Factory(dataSourceFactory) new DashMediaSource.Factory(dataSourceFactory)
.setDrmSessionManager(drmSessionManager) .setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager)
.createMediaSource(MediaItem.fromUri(uri)); .createMediaSource(MediaItem.fromUri(uri));
} else if (type == C.TYPE_OTHER) { } else if (type == C.TYPE_OTHER) {
mediaSource = mediaSource =
new ProgressiveMediaSource.Factory(dataSourceFactory) new ProgressiveMediaSource.Factory(dataSourceFactory)
.setDrmSessionManager(drmSessionManager) .setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager)
.createMediaSource(MediaItem.fromUri(uri)); .createMediaSource(MediaItem.fromUri(uri));
} else { } else {
throw new IllegalStateException(); throw new IllegalStateException();

View File

@ -64,6 +64,9 @@ public final class VideoProcessingGLSurfaceView extends GLSurfaceView {
* @param transformMatrix The 4 * 4 transform matrix to be applied to the texture. * @param transformMatrix The 4 * 4 transform matrix to be applied to the texture.
*/ */
void draw(int frameTexture, long frameTimestampUs, float[] transformMatrix); void draw(int frameTexture, long frameTimestampUs, float[] transformMatrix);
/** Releases any resources associated with this {@link VideoProcessor}. */
void release();
} }
private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0; private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0;

View File

@ -20,7 +20,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:keepScreenOn="true"> android:keepScreenOn="true">
<com.google.android.exoplayer2.ui.PlayerView <com.google.android.exoplayer2.ui.StyledPlayerView
android:id="@+id/player_view" android:id="@+id/player_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -76,6 +76,7 @@
<data android:scheme="content"/> <data android:scheme="content"/>
<data android:scheme="asset"/> <data android:scheme="asset"/>
<data android:scheme="file"/> <data android:scheme="file"/>
<data android:scheme="ssai"/>
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="com.google.android.exoplayer.demo.action.VIEW_LIST"/> <action android:name="com.google.android.exoplayer.demo.action.VIEW_LIST"/>

View File

@ -35,31 +35,31 @@
"name": "HD (cenc)", "name": "HD (cenc)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "UHD (cenc)", "name": "UHD (cenc)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears_uhd.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears_uhd.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "HD (cbcs)", "name": "HD (cbcs)",
"uri": "https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd", "uri": "https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "UHD (cbcs)", "name": "UHD (cbcs)",
"uri": "https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs_uhd.mpd", "uri": "https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs_uhd.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "Secure -> Clear -> Secure (cenc)", "name": "Secure -> Clear -> Secure (cenc)",
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/widevine/tears_enc_clear_enc.mpd", "uri": "https://storage.googleapis.com/exoplayer-test-media-1/widevine/tears_enc_clear_enc.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test", "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test",
"drm_session_for_clear_content": true "drm_session_for_clear_content": true
} }
] ]
@ -71,25 +71,25 @@
"name": "HD (cenc, full-sample)", "name": "HD (cenc, full-sample)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/tears/tears.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/tears/tears.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "UHD (cenc, full-sample)", "name": "UHD (cenc, full-sample)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/tears/tears_uhd.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/tears/tears_uhd.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "HD (cenc, sub-sample)", "name": "HD (cenc, sub-sample)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/subsample/24fps/tears/tears.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/subsample/24fps/tears/tears.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "UHD (cenc, sub-sample)", "name": "UHD (cenc, sub-sample)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/subsample/24fps/tears/tears_uhd.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/vp9/subsample/24fps/tears/tears_uhd.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
} }
] ]
}, },
@ -100,13 +100,13 @@
"name": "HD (cenc)", "name": "HD (cenc)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/hevc/tears/tears.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/hevc/tears/tears.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
}, },
{ {
"name": "UHD (cenc)", "name": "UHD (cenc)",
"uri": "https://storage.googleapis.com/wvmedia/cenc/hevc/tears/tears_uhd.mpd", "uri": "https://storage.googleapis.com/wvmedia/cenc/hevc/tears/tears_uhd.mpd",
"drm_scheme": "widevine", "drm_scheme": "widevine",
"drm_license_uri": "https://proxy.uat.widevine.com/proxy?provider=widevine_test" "drm_license_uri": "https://proxy.uat.widevine.com/proxy?video_id=2015_tears&provider=widevine_test"
} }
] ]
}, },
@ -237,11 +237,11 @@
"uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8" "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8"
}, },
{ {
"name": "Apple master playlist advanced (TS)", "name": "Apple multivariant playlist advanced (TS)",
"uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8" "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8"
}, },
{ {
"name": "Apple master playlist advanced (FMP4)", "name": "Apple multivariant playlist advanced (FMP4)",
"uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8" "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8"
}, },
{ {
@ -387,6 +387,98 @@
} }
] ]
}, },
{
"name": "IMA DAI streams",
"samples": [
{
"name": "HLS VOD: Demo (skippable pre/post), single ads [30 s]",
"uri": "ssai://dai.google.com/?contentSourceId=2483977&videoId=ima-vod-skippable-test&format=2&adsId=1"
},
{
"name": "HLS VOD: Tears of Steel (pre/mid/mid/mid/post), single ads [10s]",
"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]",
"uri": "ssai://dai.google.com/?assetKey=sN_IYUG8STe1ZzhIIE_ksA&format=2&adsId=3"
},
{
"name": "DASH VOD: Tears of Steel (11 periods, pre/mid/post), 2/5/2 ads [5/10s]",
"uri": "ssai://dai.google.com/?contentSourceId=2559737&videoId=tos-dash&format=0&adsId=1"
},
{
"name": "Playlist: No ads - HLS VOD: Demo (skippable pre/post) - No ads",
"playlist": [
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
},
{
"uri": "ssai://dai.google.com/?contentSourceId=2483977&videoId=ima-vod-skippable-test&format=2&adsId=1"
},
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
}
]
},
{
"name": "Playlist: No ads - HLS VOD: Tears of steel (pre/mid/mid/mid/post) - No ads",
"playlist": [
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
},
{
"uri": "ssai://dai.google.com/?contentSourceId=2528370&videoId=tears-of-steel&format=2&adsId=1"
},
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
}
]
},
{
"name": "Playlist: No ads - HLS Live: Big Buck Bunny (mid) - No ads",
"playlist": [
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
},
{
"uri": "ssai://dai.google.com/?assetKey=sN_IYUG8STe1ZzhIIE_ksA&format=2&adsId=3"
},
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
}
]
},
{
"name": "Playlist: No ads - DASH VOD: Tears of Steel (11 periods, pre/mid/post) - No ads",
"playlist": [
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
},
{
"uri": "ssai://dai.google.com/?contentSourceId=2559737&videoId=tos-dash&format=0&adsId=1"
},
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
}
]
},
{
"name": "Playlist: Client-side Ads - DASH VOD: Tears of Steel (11 periods, pre/mid/post) - No ads",
"playlist": [
{
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/mkv/android-screens-lavf-56.36.100-aac-avc-main-1280x720.mkv",
"ad_tag_uri": "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpost&cmsid=496&vid=short_onecue&correlator="
},
{
"uri": "ssai://dai.google.com/?contentSourceId=2559737&videoId=tos-dash&format=0&adsId=1"
},
{
"uri": "https://html5demos.com/assets/dizzy.mp4"
}
]
}
]
},
{ {
"name": "Playlists", "name": "Playlists",
"samples": [ "samples": [

View File

@ -22,8 +22,6 @@ import com.google.android.exoplayer2.database.DatabaseProvider;
import com.google.android.exoplayer2.database.StandaloneDatabaseProvider; import com.google.android.exoplayer2.database.StandaloneDatabaseProvider;
import com.google.android.exoplayer2.ext.cronet.CronetDataSource; import com.google.android.exoplayer2.ext.cronet.CronetDataSource;
import com.google.android.exoplayer2.ext.cronet.CronetUtil; import com.google.android.exoplayer2.ext.cronet.CronetUtil;
import com.google.android.exoplayer2.offline.ActionFileUpgradeUtil;
import com.google.android.exoplayer2.offline.DefaultDownloadIndex;
import com.google.android.exoplayer2.offline.DownloadManager; import com.google.android.exoplayer2.offline.DownloadManager;
import com.google.android.exoplayer2.ui.DownloadNotificationHelper; import com.google.android.exoplayer2.ui.DownloadNotificationHelper;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
@ -34,9 +32,7 @@ import com.google.android.exoplayer2.upstream.cache.Cache;
import com.google.android.exoplayer2.upstream.cache.CacheDataSource; import com.google.android.exoplayer2.upstream.cache.CacheDataSource;
import com.google.android.exoplayer2.upstream.cache.NoOpCacheEvictor; import com.google.android.exoplayer2.upstream.cache.NoOpCacheEvictor;
import com.google.android.exoplayer2.upstream.cache.SimpleCache; import com.google.android.exoplayer2.upstream.cache.SimpleCache;
import com.google.android.exoplayer2.util.Log;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.net.CookieHandler; import java.net.CookieHandler;
import java.net.CookieManager; import java.net.CookieManager;
import java.net.CookiePolicy; import java.net.CookiePolicy;
@ -60,8 +56,6 @@ public final class DemoUtil {
private static final boolean USE_CRONET_FOR_NETWORKING = true; private static final boolean USE_CRONET_FOR_NETWORKING = true;
private static final String TAG = "DemoUtil"; private static final String TAG = "DemoUtil";
private static final String DOWNLOAD_ACTION_FILE = "actions";
private static final String DOWNLOAD_TRACKER_ACTION_FILE = "tracked_actions";
private static final String DOWNLOAD_CONTENT_DIRECTORY = "downloads"; private static final String DOWNLOAD_CONTENT_DIRECTORY = "downloads";
private static DataSource.@MonotonicNonNull Factory dataSourceFactory; private static DataSource.@MonotonicNonNull Factory dataSourceFactory;
@ -155,14 +149,6 @@ public final class DemoUtil {
private static synchronized void ensureDownloadManagerInitialized(Context context) { private static synchronized void ensureDownloadManagerInitialized(Context context) {
if (downloadManager == null) { if (downloadManager == null) {
DefaultDownloadIndex downloadIndex = new DefaultDownloadIndex(getDatabaseProvider(context));
upgradeActionFile(
context, DOWNLOAD_ACTION_FILE, downloadIndex, /* addNewDownloadsAsCompleted= */ false);
upgradeActionFile(
context,
DOWNLOAD_TRACKER_ACTION_FILE,
downloadIndex,
/* addNewDownloadsAsCompleted= */ true);
downloadManager = downloadManager =
new DownloadManager( new DownloadManager(
context, context,
@ -175,23 +161,6 @@ public final class DemoUtil {
} }
} }
private static synchronized void upgradeActionFile(
Context context,
String fileName,
DefaultDownloadIndex downloadIndex,
boolean addNewDownloadsAsCompleted) {
try {
ActionFileUpgradeUtil.upgradeAndDelete(
new File(getDownloadDirectory(context), fileName),
/* downloadIdProvider= */ null,
downloadIndex,
/* deleteOnFailure= */ true,
addNewDownloadsAsCompleted);
} catch (IOException e) {
Log.e(TAG, "Failed to upgrade action file: " + fileName, e);
}
}
private static synchronized DatabaseProvider getDatabaseProvider(Context context) { private static synchronized DatabaseProvider getDatabaseProvider(Context context) {
if (databaseProvider == null) { if (databaseProvider == null) {
databaseProvider = new StandaloneDatabaseProvider(context); databaseProvider = new StandaloneDatabaseProvider(context);

View File

@ -15,8 +15,6 @@
*/ */
package com.google.android.exoplayer2.demo; package com.google.android.exoplayer2.demo;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
@ -40,11 +38,12 @@ import com.google.android.exoplayer2.TracksInfo;
import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.drm.FrameworkMediaDrm; import com.google.android.exoplayer2.drm.FrameworkMediaDrm;
import com.google.android.exoplayer2.ext.ima.ImaAdsLoader; import com.google.android.exoplayer2.ext.ima.ImaAdsLoader;
import com.google.android.exoplayer2.ext.ima.ImaServerSideAdInsertionMediaSource;
import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException; import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException;
import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException;
import com.google.android.exoplayer2.offline.DownloadRequest; import com.google.android.exoplayer2.offline.DownloadRequest;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSourceFactory; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ads.AdsLoader; import com.google.android.exoplayer2.source.ads.AdsLoader;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.ui.StyledPlayerControlView; import com.google.android.exoplayer2.ui.StyledPlayerControlView;
@ -57,6 +56,7 @@ import com.google.android.exoplayer2.util.Util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** An activity that plays media using {@link ExoPlayer}. */ /** An activity that plays media using {@link ExoPlayer}. */
public class PlayerActivity extends AppCompatActivity public class PlayerActivity extends AppCompatActivity
@ -65,6 +65,7 @@ public class PlayerActivity extends AppCompatActivity
// Saved instance state keys. // Saved instance state keys.
private static final String KEY_TRACK_SELECTION_PARAMETERS = "track_selection_parameters"; private static final String KEY_TRACK_SELECTION_PARAMETERS = "track_selection_parameters";
private static final String KEY_SERVER_SIDE_ADS_LOADER_STATE = "server_side_ads_loader_state";
private static final String KEY_ITEM_INDEX = "item_index"; private static final String KEY_ITEM_INDEX = "item_index";
private static final String KEY_POSITION = "position"; private static final String KEY_POSITION = "position";
private static final String KEY_AUTO_PLAY = "auto_play"; private static final String KEY_AUTO_PLAY = "auto_play";
@ -88,7 +89,10 @@ public class PlayerActivity extends AppCompatActivity
// For ad playback only. // For ad playback only.
private AdsLoader adsLoader; @Nullable private AdsLoader clientSideAdsLoader;
@Nullable private ImaServerSideAdInsertionMediaSource.AdsLoader serverSideAdsLoader;
private ImaServerSideAdInsertionMediaSource.AdsLoader.@MonotonicNonNull State
serverSideAdsLoaderState;
// Activity lifecycle. // Activity lifecycle.
@ -116,6 +120,12 @@ public class PlayerActivity extends AppCompatActivity
startAutoPlay = savedInstanceState.getBoolean(KEY_AUTO_PLAY); startAutoPlay = savedInstanceState.getBoolean(KEY_AUTO_PLAY);
startItemIndex = savedInstanceState.getInt(KEY_ITEM_INDEX); startItemIndex = savedInstanceState.getInt(KEY_ITEM_INDEX);
startPosition = savedInstanceState.getLong(KEY_POSITION); startPosition = savedInstanceState.getLong(KEY_POSITION);
Bundle adsLoaderStateBundle = savedInstanceState.getBundle(KEY_SERVER_SIDE_ADS_LOADER_STATE);
if (adsLoaderStateBundle != null) {
serverSideAdsLoaderState =
ImaServerSideAdInsertionMediaSource.AdsLoader.State.CREATOR.fromBundle(
adsLoaderStateBundle);
}
} else { } else {
trackSelectionParameters = trackSelectionParameters =
new DefaultTrackSelector.ParametersBuilder(/* context= */ this).build(); new DefaultTrackSelector.ParametersBuilder(/* context= */ this).build();
@ -127,7 +137,7 @@ public class PlayerActivity extends AppCompatActivity
public void onNewIntent(Intent intent) { public void onNewIntent(Intent intent) {
super.onNewIntent(intent); super.onNewIntent(intent);
releasePlayer(); releasePlayer();
releaseAdsLoader(); releaseClientSideAdsLoader();
clearStartPosition(); clearStartPosition();
setIntent(intent); setIntent(intent);
} }
@ -179,7 +189,7 @@ public class PlayerActivity extends AppCompatActivity
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
releaseAdsLoader(); releaseClientSideAdsLoader();
} }
@Override @Override
@ -208,6 +218,9 @@ public class PlayerActivity extends AppCompatActivity
outState.putBoolean(KEY_AUTO_PLAY, startAutoPlay); outState.putBoolean(KEY_AUTO_PLAY, startAutoPlay);
outState.putInt(KEY_ITEM_INDEX, startItemIndex); outState.putInt(KEY_ITEM_INDEX, startItemIndex);
outState.putLong(KEY_POSITION, startPosition); outState.putLong(KEY_POSITION, startPosition);
if (serverSideAdsLoaderState != null) {
outState.putBundle(KEY_SERVER_SIDE_ADS_LOADER_STATE, serverSideAdsLoaderState.toBundle());
}
} }
// Activity input // Activity input
@ -234,7 +247,7 @@ public class PlayerActivity extends AppCompatActivity
} }
} }
// PlayerControlView.VisibilityListener implementation // StyledPlayerControlView.VisibilityListener implementation
@Override @Override
public void onVisibilityChange(int visibility) { public void onVisibilityChange(int visibility) {
@ -261,17 +274,13 @@ public class PlayerActivity extends AppCompatActivity
intent.getBooleanExtra(IntentUtil.PREFER_EXTENSION_DECODERS_EXTRA, false); intent.getBooleanExtra(IntentUtil.PREFER_EXTENSION_DECODERS_EXTRA, false);
RenderersFactory renderersFactory = RenderersFactory renderersFactory =
DemoUtil.buildRenderersFactory(/* context= */ this, preferExtensionDecoders); DemoUtil.buildRenderersFactory(/* context= */ this, preferExtensionDecoders);
MediaSourceFactory mediaSourceFactory =
new DefaultMediaSourceFactory(dataSourceFactory)
.setAdsLoaderProvider(this::getAdsLoader)
.setAdViewProvider(playerView);
trackSelector = new DefaultTrackSelector(/* context= */ this); trackSelector = new DefaultTrackSelector(/* context= */ this);
lastSeenTracksInfo = TracksInfo.EMPTY; lastSeenTracksInfo = TracksInfo.EMPTY;
player = player =
new ExoPlayer.Builder(/* context= */ this) new ExoPlayer.Builder(/* context= */ this)
.setRenderersFactory(renderersFactory) .setRenderersFactory(renderersFactory)
.setMediaSourceFactory(mediaSourceFactory) .setMediaSourceFactory(createMediaSourceFactory())
.setTrackSelector(trackSelector) .setTrackSelector(trackSelector)
.build(); .build();
player.setTrackSelectionParameters(trackSelectionParameters); player.setTrackSelectionParameters(trackSelectionParameters);
@ -280,6 +289,7 @@ public class PlayerActivity extends AppCompatActivity
player.setAudioAttributes(AudioAttributes.DEFAULT, /* handleAudioFocus= */ true); player.setAudioAttributes(AudioAttributes.DEFAULT, /* handleAudioFocus= */ true);
player.setPlayWhenReady(startAutoPlay); player.setPlayWhenReady(startAutoPlay);
playerView.setPlayer(player); playerView.setPlayer(player);
serverSideAdsLoader.setPlayer(player);
debugViewHelper = new DebugTextViewHelper(player, debugTextView); debugViewHelper = new DebugTextViewHelper(player, debugTextView);
debugViewHelper.start(); debugViewHelper.start();
} }
@ -293,6 +303,22 @@ public class PlayerActivity extends AppCompatActivity
return true; return true;
} }
private MediaSource.Factory createMediaSourceFactory() {
ImaServerSideAdInsertionMediaSource.AdsLoader.Builder serverSideAdLoaderBuilder =
new ImaServerSideAdInsertionMediaSource.AdsLoader.Builder(/* context= */ this, playerView);
if (serverSideAdsLoaderState != null) {
serverSideAdLoaderBuilder.setAdsLoaderState(serverSideAdsLoaderState);
}
serverSideAdsLoader = serverSideAdLoaderBuilder.build();
ImaServerSideAdInsertionMediaSource.Factory imaServerSideAdInsertionMediaSourceFactory =
new ImaServerSideAdInsertionMediaSource.Factory(
serverSideAdsLoader, new DefaultMediaSourceFactory(dataSourceFactory));
return new DefaultMediaSourceFactory(dataSourceFactory)
.setAdsLoaderProvider(this::getClientSideAdsLoader)
.setAdViewProvider(playerView)
.setServerSideAdInsertionMediaSourceFactory(imaServerSideAdInsertionMediaSourceFactory);
}
private List<MediaItem> createMediaItems(Intent intent) { private List<MediaItem> createMediaItems(Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
boolean actionIsListView = IntentUtil.ACTION_VIEW_LIST.equals(action); boolean actionIsListView = IntentUtil.ACTION_VIEW_LIST.equals(action);
@ -304,7 +330,6 @@ public class PlayerActivity extends AppCompatActivity
List<MediaItem> mediaItems = List<MediaItem> mediaItems =
createMediaItems(intent, DemoUtil.getDownloadTracker(/* context= */ this)); createMediaItems(intent, DemoUtil.getDownloadTracker(/* context= */ this));
boolean hasAds = false;
for (int i = 0; i < mediaItems.size(); i++) { for (int i = 0; i < mediaItems.size(); i++) {
MediaItem mediaItem = mediaItems.get(i); MediaItem mediaItem = mediaItems.get(i);
@ -318,8 +343,7 @@ public class PlayerActivity extends AppCompatActivity
return Collections.emptyList(); return Collections.emptyList();
} }
MediaItem.DrmConfiguration drmConfiguration = MediaItem.DrmConfiguration drmConfiguration = mediaItem.localConfiguration.drmConfiguration;
checkNotNull(mediaItem.localConfiguration).drmConfiguration;
if (drmConfiguration != null) { if (drmConfiguration != null) {
if (Util.SDK_INT < 18) { if (Util.SDK_INT < 18) {
showToast(R.string.error_drm_unsupported_before_api_18); showToast(R.string.error_drm_unsupported_before_api_18);
@ -331,43 +355,44 @@ public class PlayerActivity extends AppCompatActivity
return Collections.emptyList(); return Collections.emptyList();
} }
} }
hasAds |= mediaItem.localConfiguration.adsConfiguration != null;
}
if (!hasAds) {
releaseAdsLoader();
} }
return mediaItems; return mediaItems;
} }
private AdsLoader getAdsLoader(MediaItem.AdsConfiguration adsConfiguration) { private AdsLoader getClientSideAdsLoader(MediaItem.AdsConfiguration adsConfiguration) {
// The ads loader is reused for multiple playbacks, so that ad playback can resume. // The ads loader is reused for multiple playbacks, so that ad playback can resume.
if (adsLoader == null) { if (clientSideAdsLoader == null) {
adsLoader = new ImaAdsLoader.Builder(/* context= */ this).build(); clientSideAdsLoader = new ImaAdsLoader.Builder(/* context= */ this).build();
} }
adsLoader.setPlayer(player); clientSideAdsLoader.setPlayer(player);
return adsLoader; return clientSideAdsLoader;
} }
protected void releasePlayer() { protected void releasePlayer() {
if (player != null) { if (player != null) {
updateTrackSelectorParameters(); updateTrackSelectorParameters();
updateStartPosition(); updateStartPosition();
serverSideAdsLoaderState = serverSideAdsLoader.release();
serverSideAdsLoader = null;
debugViewHelper.stop(); debugViewHelper.stop();
debugViewHelper = null; debugViewHelper = null;
player.release(); player.release();
player = null; player = null;
playerView.setPlayer(/* player= */ null);
mediaItems = Collections.emptyList(); mediaItems = Collections.emptyList();
} }
if (adsLoader != null) { if (clientSideAdsLoader != null) {
adsLoader.setPlayer(null); clientSideAdsLoader.setPlayer(null);
} else {
playerView.getAdViewGroup().removeAllViews();
} }
} }
private void releaseAdsLoader() { private void releaseClientSideAdsLoader() {
if (adsLoader != null) { if (clientSideAdsLoader != null) {
adsLoader.release(); clientSideAdsLoader.release();
adsLoader = null; clientSideAdsLoader = null;
playerView.getOverlayFrameLayout().removeAllViews(); playerView.getAdViewGroup().removeAllViews();
} }
} }
@ -441,10 +466,12 @@ public class PlayerActivity extends AppCompatActivity
if (tracksInfo == lastSeenTracksInfo) { if (tracksInfo == lastSeenTracksInfo) {
return; return;
} }
if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_VIDEO)) { if (!tracksInfo.isTypeSupportedOrEmpty(
C.TRACK_TYPE_VIDEO, /* allowExceedsCapabilities= */ true)) {
showToast(R.string.error_unsupported_video); showToast(R.string.error_unsupported_video);
} }
if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_AUDIO)) { if (!tracksInfo.isTypeSupportedOrEmpty(
C.TRACK_TYPE_AUDIO, /* allowExceedsCapabilities= */ true)) {
showToast(R.string.error_unsupported_audio); showToast(R.string.error_unsupported_audio);
} }
lastSeenTracksInfo = tracksInfo; lastSeenTracksInfo = tracksInfo;
@ -488,7 +515,7 @@ public class PlayerActivity extends AppCompatActivity
for (MediaItem item : IntentUtil.createMediaItemsFromIntent(intent)) { for (MediaItem item : IntentUtil.createMediaItemsFromIntent(intent)) {
@Nullable @Nullable
DownloadRequest downloadRequest = DownloadRequest downloadRequest =
downloadTracker.getDownloadRequest(checkNotNull(item.localConfiguration).uri); downloadTracker.getDownloadRequest(item.localConfiguration.uri);
if (downloadRequest != null) { if (downloadRequest != null) {
MediaItem.Builder builder = item.buildUpon(); MediaItem.Builder builder = item.buildUpon();
builder builder

View File

@ -22,12 +22,14 @@
<uses-sdk/> <uses-sdk/>
<application <application
android:allowBackup="false" android:allowBackup="false"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/application_name" android:label="@string/application_name"
android:exported="true"> android:exported="true">
<activity android:name=".MainActivity"> <activity
android:name=".MainActivity"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>

View File

@ -206,12 +206,12 @@ public final class MainActivity extends Activity {
if (type == C.TYPE_DASH) { if (type == C.TYPE_DASH) {
mediaSource = mediaSource =
new DashMediaSource.Factory(dataSourceFactory) new DashMediaSource.Factory(dataSourceFactory)
.setDrmSessionManager(drmSessionManager) .setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager)
.createMediaSource(MediaItem.fromUri(uri)); .createMediaSource(MediaItem.fromUri(uri));
} else if (type == C.TYPE_OTHER) { } else if (type == C.TYPE_OTHER) {
mediaSource = mediaSource =
new ProgressiveMediaSource.Factory(dataSourceFactory) new ProgressiveMediaSource.Factory(dataSourceFactory)
.setDrmSessionManager(drmSessionManager) .setDrmSessionManagerProvider(unusedMediaItem -> drmSessionManager)
.createMediaSource(MediaItem.fromUri(uri)); .createMediaSource(MediaItem.fromUri(uri));
} else { } else {
throw new IllegalStateException(); throw new IllegalStateException();

View File

@ -0,0 +1,9 @@
# Transformer demo
This app demonstrates how to use the [Transformer][] API to modify videos, for
example by removing audio or video.
See the [demos README](../README.md) for instructions on how to build and run
this demo.
[Transformer]: https://exoplayer.dev/transforming-media.html

View File

@ -0,0 +1,61 @@
/*
* Copyright 2021 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.
*/
apply from: '../../constants.gradle'
apply plugin: 'com.android.application'
android {
compileSdkVersion project.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
versionName project.ext.releaseVersion
versionCode project.ext.releaseVersionCode
minSdkVersion 21
targetSdkVersion project.ext.appTargetSdkVersion
multiDexEnabled true
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.debug
}
}
lintOptions {
// This demo app isn't indexed and doesn't have translations.
disable 'GoogleAppIndexingWarning','MissingTranslation'
}
}
dependencies {
implementation 'androidx.core:core:' + androidxCoreVersion
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion
implementation 'androidx.constraintlayout:constraintlayout:' + androidxConstraintLayoutVersion
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
implementation 'com.google.android.material:material:' + androidxMaterialVersion
implementation project(modulePrefix + 'library-core')
implementation project(modulePrefix + 'library-transformer')
implementation project(modulePrefix + 'library-ui')
}

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2021 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.google.android.exoplayer2.transformerdemo">
<uses-sdk />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat"
android:taskAffinity=""
tools:targetApi="29">
<activity android:name=".ConfigurationActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:launchMode="singleTop"
android:label="@string/app_name"
android:exported="true"
android:theme="@style/Theme.MaterialComponents.DayNight.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="com.google.android.exoplayer2.transformerdemo.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:scheme="content"/>
<data android:scheme="asset"/>
<data android:scheme="file"/>
</intent-filter>
</activity>
<activity android:name=".TransformerActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:launchMode="singleTop"
android:label="@string/app_name"
android:exported="true"
android:theme="@style/Theme.MaterialComponents.DayNight.NoActionBar"/>
</application>
</manifest>

View File

@ -0,0 +1,313 @@
/*
* Copyright 2021 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.
*/
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.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.exoplayer2.util.MimeTypes;
import java.util.Arrays;
import java.util.List;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull;
/**
* An {@link Activity} that sets the configuration to use for transforming and playing media, using
* {@link TransformerActivity}.
*/
public final class ConfigurationActivity extends AppCompatActivity {
public static final String SHOULD_REMOVE_AUDIO = "should_remove_audio";
public static final String SHOULD_REMOVE_VIDEO = "should_remove_video";
public static final String SHOULD_FLATTEN_FOR_SLOW_MOTION = "should_flatten_for_slow_motion";
public static final String AUDIO_MIME_TYPE = "audio_mime_type";
public static final String VIDEO_MIME_TYPE = "video_mime_type";
public static final String RESOLUTION_HEIGHT = "resolution_height";
public static final String TRANSLATE_X = "translate_x";
public static final String TRANSLATE_Y = "translate_y";
public static final String SCALE_X = "scale_x";
public static final String SCALE_Y = "scale_y";
public static final String ROTATE_DEGREES = "rotate_degrees";
public static final String ENABLE_HDR_EDITING = "enable_hdr_editing";
private static final String[] INPUT_URIS = {
"https://html5demos.com/assets/dizzy.mp4",
"https://storage.googleapis.com/exoplayer-test-media-0/android-block-1080-hevc.mp4",
"https://storage.googleapis.com/exoplayer-test-media-0/BigBuckBunny_320x180.mp4",
"https://html5demos.com/assets/dizzy.webm",
};
private static final String[] URI_DESCRIPTIONS = { // same order as INPUT_URIS
"MP4 with H264 video and AAC audio",
"MP4 with H265 video and AAC audio",
"Long MP4 with H264 video and AAC audio",
"WebM with VP8 video and Vorbis audio",
};
private static final String SAME_AS_INPUT_OPTION = "same as input";
private @MonotonicNonNull Button chooseFileButton;
private @MonotonicNonNull TextView chosenFileTextView;
private @MonotonicNonNull CheckBox removeAudioCheckbox;
private @MonotonicNonNull CheckBox removeVideoCheckbox;
private @MonotonicNonNull CheckBox flattenForSlowMotionCheckbox;
private @MonotonicNonNull Spinner audioMimeSpinner;
private @MonotonicNonNull Spinner videoMimeSpinner;
private @MonotonicNonNull Spinner resolutionHeightSpinner;
private @MonotonicNonNull Spinner translateSpinner;
private @MonotonicNonNull Spinner scaleSpinner;
private @MonotonicNonNull Spinner rotateSpinner;
private @MonotonicNonNull CheckBox enableHdrEditingCheckBox;
private int inputUriPosition;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configuration_activity);
findViewById(R.id.transform_button).setOnClickListener(this::startTransformation);
chooseFileButton = findViewById(R.id.choose_file_button);
chooseFileButton.setOnClickListener(this::chooseFile);
chosenFileTextView = findViewById(R.id.chosen_file_text_view);
chosenFileTextView.setText(URI_DESCRIPTIONS[inputUriPosition]);
removeAudioCheckbox = findViewById(R.id.remove_audio_checkbox);
removeAudioCheckbox.setOnClickListener(this::onRemoveAudio);
removeVideoCheckbox = findViewById(R.id.remove_video_checkbox);
removeVideoCheckbox.setOnClickListener(this::onRemoveVideo);
flattenForSlowMotionCheckbox = findViewById(R.id.flatten_for_slow_motion_checkbox);
ArrayAdapter<String> audioMimeAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
audioMimeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
audioMimeSpinner = findViewById(R.id.audio_mime_spinner);
audioMimeSpinner.setAdapter(audioMimeAdapter);
audioMimeAdapter.addAll(
SAME_AS_INPUT_OPTION, MimeTypes.AUDIO_AAC, MimeTypes.AUDIO_AMR_NB, MimeTypes.AUDIO_AMR_WB);
ArrayAdapter<String> videoMimeAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
videoMimeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
videoMimeSpinner = findViewById(R.id.video_mime_spinner);
videoMimeSpinner.setAdapter(videoMimeAdapter);
videoMimeAdapter.addAll(
SAME_AS_INPUT_OPTION,
MimeTypes.VIDEO_H263,
MimeTypes.VIDEO_H264,
MimeTypes.VIDEO_H265,
MimeTypes.VIDEO_MP4V);
ArrayAdapter<String> resolutionHeightAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
resolutionHeightAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
resolutionHeightSpinner = findViewById(R.id.resolution_height_spinner);
resolutionHeightSpinner.setAdapter(resolutionHeightAdapter);
resolutionHeightAdapter.addAll(
SAME_AS_INPUT_OPTION, "144", "240", "360", "480", "720", "1080", "1440", "2160");
ArrayAdapter<String> translateAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
translateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
translateSpinner = findViewById(R.id.translate_spinner);
translateSpinner.setAdapter(translateAdapter);
translateAdapter.addAll(
SAME_AS_INPUT_OPTION, "-.1, -.1", "0, 0", ".5, 0", "0, .5", "1, 1", "1.9, 0", "0, 1.9");
ArrayAdapter<String> scaleAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
scaleAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
scaleSpinner = findViewById(R.id.scale_spinner);
scaleSpinner.setAdapter(scaleAdapter);
scaleAdapter.addAll(SAME_AS_INPUT_OPTION, "-1, -1", "-1, 1", "1, 1", ".5, 1", ".5, .5", "2, 2");
ArrayAdapter<String> rotateAdapter =
new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item);
rotateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
rotateSpinner = findViewById(R.id.rotate_spinner);
rotateSpinner.setAdapter(rotateAdapter);
rotateAdapter.addAll(SAME_AS_INPUT_OPTION, "0", "10", "45", "90", "180");
enableHdrEditingCheckBox = findViewById(R.id.hdr_editing_checkbox);
}
@Override
protected void onResume() {
super.onResume();
@Nullable Uri intentUri = getIntent().getData();
if (intentUri != null) {
checkNotNull(chooseFileButton).setEnabled(false);
checkNotNull(chosenFileTextView).setText(intentUri.toString());
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
@RequiresNonNull({
"removeAudioCheckbox",
"removeVideoCheckbox",
"flattenForSlowMotionCheckbox",
"audioMimeSpinner",
"videoMimeSpinner",
"resolutionHeightSpinner",
"translateSpinner",
"scaleSpinner",
"rotateSpinner",
"enableHdrEditingCheckBox"
})
private void startTransformation(View view) {
Intent transformerIntent = new Intent(this, TransformerActivity.class);
Bundle bundle = new Bundle();
bundle.putBoolean(SHOULD_REMOVE_AUDIO, removeAudioCheckbox.isChecked());
bundle.putBoolean(SHOULD_REMOVE_VIDEO, removeVideoCheckbox.isChecked());
bundle.putBoolean(SHOULD_FLATTEN_FOR_SLOW_MOTION, flattenForSlowMotionCheckbox.isChecked());
String selectedAudioMimeType = String.valueOf(audioMimeSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedAudioMimeType)) {
bundle.putString(AUDIO_MIME_TYPE, selectedAudioMimeType);
}
String selectedVideoMimeType = String.valueOf(videoMimeSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedVideoMimeType)) {
bundle.putString(VIDEO_MIME_TYPE, selectedVideoMimeType);
}
String selectedResolutionHeight = String.valueOf(resolutionHeightSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedResolutionHeight)) {
bundle.putInt(RESOLUTION_HEIGHT, Integer.parseInt(selectedResolutionHeight));
}
String selectedTranslate = String.valueOf(translateSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedTranslate)) {
List<String> translateXY = Arrays.asList(selectedTranslate.split(", "));
checkState(translateXY.size() == 2);
bundle.putFloat(TRANSLATE_X, Float.parseFloat(translateXY.get(0)));
bundle.putFloat(TRANSLATE_Y, Float.parseFloat(translateXY.get(1)));
}
String selectedScale = String.valueOf(scaleSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedScale)) {
List<String> scaleXY = Arrays.asList(selectedScale.split(", "));
checkState(scaleXY.size() == 2);
bundle.putFloat(SCALE_X, Float.parseFloat(scaleXY.get(0)));
bundle.putFloat(SCALE_Y, Float.parseFloat(scaleXY.get(1)));
}
String selectedRotate = String.valueOf(rotateSpinner.getSelectedItem());
if (!SAME_AS_INPUT_OPTION.equals(selectedRotate)) {
bundle.putFloat(ROTATE_DEGREES, Float.parseFloat(selectedRotate));
}
bundle.putBoolean(ENABLE_HDR_EDITING, enableHdrEditingCheckBox.isChecked());
transformerIntent.putExtras(bundle);
@Nullable Uri intentUri = getIntent().getData();
transformerIntent.setData(
intentUri != null ? intentUri : Uri.parse(INPUT_URIS[inputUriPosition]));
startActivity(transformerIntent);
}
private void chooseFile(View view) {
new AlertDialog.Builder(/* context= */ this)
.setTitle(R.string.choose_file_title)
.setSingleChoiceItems(URI_DESCRIPTIONS, inputUriPosition, this::selectFileInDialog)
.setPositiveButton(android.R.string.ok, /* listener= */ null)
.create()
.show();
}
@RequiresNonNull("chosenFileTextView")
private void selectFileInDialog(DialogInterface dialog, int which) {
inputUriPosition = which;
chosenFileTextView.setText(URI_DESCRIPTIONS[inputUriPosition]);
}
@RequiresNonNull({
"removeVideoCheckbox",
"audioMimeSpinner",
"videoMimeSpinner",
"resolutionHeightSpinner",
"translateSpinner",
"scaleSpinner",
"rotateSpinner",
"enableHdrEditingCheckBox"
})
private void onRemoveAudio(View view) {
if (((CheckBox) view).isChecked()) {
removeVideoCheckbox.setChecked(false);
enableTrackSpecificOptions(/* isAudioEnabled= */ false, /* isVideoEnabled= */ true);
} else {
enableTrackSpecificOptions(/* isAudioEnabled= */ true, /* isVideoEnabled= */ true);
}
}
@RequiresNonNull({
"removeAudioCheckbox",
"audioMimeSpinner",
"videoMimeSpinner",
"resolutionHeightSpinner",
"translateSpinner",
"scaleSpinner",
"rotateSpinner",
"enableHdrEditingCheckBox"
})
private void onRemoveVideo(View view) {
if (((CheckBox) view).isChecked()) {
removeAudioCheckbox.setChecked(false);
enableTrackSpecificOptions(/* isAudioEnabled= */ true, /* isVideoEnabled= */ false);
} else {
enableTrackSpecificOptions(/* isAudioEnabled= */ true, /* isVideoEnabled= */ true);
}
}
@RequiresNonNull({
"audioMimeSpinner",
"videoMimeSpinner",
"resolutionHeightSpinner",
"translateSpinner",
"scaleSpinner",
"rotateSpinner",
"enableHdrEditingCheckBox"
})
private void enableTrackSpecificOptions(boolean isAudioEnabled, boolean isVideoEnabled) {
audioMimeSpinner.setEnabled(isAudioEnabled);
videoMimeSpinner.setEnabled(isVideoEnabled);
resolutionHeightSpinner.setEnabled(isVideoEnabled);
translateSpinner.setEnabled(isVideoEnabled);
scaleSpinner.setEnabled(isVideoEnabled);
rotateSpinner.setEnabled(isVideoEnabled);
enableHdrEditingCheckBox.setEnabled(isVideoEnabled);
findViewById(R.id.audio_mime_text_view).setEnabled(isAudioEnabled);
findViewById(R.id.video_mime_text_view).setEnabled(isVideoEnabled);
findViewById(R.id.resolution_height_text_view).setEnabled(isVideoEnabled);
findViewById(R.id.translate).setEnabled(isVideoEnabled);
findViewById(R.id.scale).setEnabled(isVideoEnabled);
findViewById(R.id.rotate).setEnabled(isVideoEnabled);
findViewById(R.id.hdr_editing).setEnabled(isVideoEnabled);
}
}

View File

@ -0,0 +1,382 @@
/*
* Copyright 2021 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.
*/
package com.google.android.exoplayer2.transformerdemo;
import static android.Manifest.permission.READ_EXTERNAL_STORAGE;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
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.transformer.ProgressHolder;
import com.google.android.exoplayer2.transformer.TransformationException;
import com.google.android.exoplayer2.transformer.TransformationRequest;
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.Log;
import com.google.android.exoplayer2.util.Util;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.google.common.base.Stopwatch;
import com.google.common.base.Ticker;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull;
/** An {@link Activity} that transforms and plays media using {@link Transformer}. */
public final class TransformerActivity extends AppCompatActivity {
private static final String TAG = "TransformerActivity";
private @MonotonicNonNull StyledPlayerView playerView;
private @MonotonicNonNull TextView debugTextView;
private @MonotonicNonNull TextView informationTextView;
private @MonotonicNonNull ViewGroup progressViewGroup;
private @MonotonicNonNull LinearProgressIndicator progressIndicator;
private @MonotonicNonNull Stopwatch transformationStopwatch;
private @MonotonicNonNull AspectRatioFrameLayout debugFrame;
@Nullable private DebugTextViewHelper debugTextViewHelper;
@Nullable private ExoPlayer player;
@Nullable private Transformer transformer;
@Nullable private File externalCacheFile;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.transformer_activity);
playerView = findViewById(R.id.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);
transformationStopwatch =
Stopwatch.createUnstarted(
new Ticker() {
public long read() {
return android.os.SystemClock.elapsedRealtimeNanos();
}
});
}
@Override
protected void onStart() {
super.onStart();
checkNotNull(progressIndicator);
checkNotNull(informationTextView);
checkNotNull(transformationStopwatch);
checkNotNull(playerView);
checkNotNull(debugTextView);
checkNotNull(progressViewGroup);
checkNotNull(debugFrame);
startTransformation();
playerView.onResume();
}
@Override
protected void onStop() {
super.onStop();
checkNotNull(transformer).cancel();
transformer = null;
// The stop watch is reset after cancelling the transformation, in case cancelling causes the
// stop watch to be stopped in a transformer callback.
checkNotNull(transformationStopwatch).reset();
checkNotNull(playerView).onPause();
releasePlayer();
checkNotNull(externalCacheFile).delete();
externalCacheFile = null;
}
@RequiresNonNull({
"playerView",
"debugTextView",
"informationTextView",
"progressIndicator",
"transformationStopwatch",
"progressViewGroup",
"debugFrame",
})
private void startTransformation() {
requestTransformerPermission();
Intent intent = getIntent();
Uri uri = checkNotNull(intent.getData());
try {
externalCacheFile = createExternalCacheFile("transformer-output.mp4");
String filePath = externalCacheFile.getAbsolutePath();
@Nullable Bundle bundle = intent.getExtras();
Transformer transformer = createTransformer(bundle, filePath);
transformationStopwatch.start();
transformer.startTransformation(MediaItem.fromUri(uri), filePath);
this.transformer = transformer;
} catch (IOException e) {
throw new IllegalStateException(e);
}
informationTextView.setText(R.string.transformation_started);
playerView.setVisibility(View.GONE);
Handler mainHandler = new Handler(getMainLooper());
ProgressHolder progressHolder = new ProgressHolder();
mainHandler.post(
new Runnable() {
@Override
public void run() {
if (transformer != null
&& transformer.getProgress(progressHolder)
!= Transformer.PROGRESS_STATE_NO_TRANSFORMATION) {
progressIndicator.setProgress(progressHolder.progress);
informationTextView.setText(
getString(
R.string.transformation_timer,
transformationStopwatch.elapsed(TimeUnit.SECONDS)));
mainHandler.postDelayed(/* r= */ this, /* delayMillis= */ 500);
}
}
});
}
// 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",
"debugTextView",
"informationTextView",
"transformationStopwatch",
"progressViewGroup",
"debugFrame",
})
private Transformer createTransformer(@Nullable Bundle bundle, String filePath) {
Transformer.Builder transformerBuilder = new Transformer.Builder(/* context= */ this);
if (bundle != null) {
TransformationRequest.Builder requestBuilder = new TransformationRequest.Builder();
requestBuilder.setFlattenForSlowMotion(
bundle.getBoolean(ConfigurationActivity.SHOULD_FLATTEN_FOR_SLOW_MOTION));
@Nullable String audioMimeType = bundle.getString(ConfigurationActivity.AUDIO_MIME_TYPE);
if (audioMimeType != null) {
requestBuilder.setAudioMimeType(audioMimeType);
}
@Nullable String videoMimeType = bundle.getString(ConfigurationActivity.VIDEO_MIME_TYPE);
if (videoMimeType != null) {
requestBuilder.setVideoMimeType(videoMimeType);
}
int resolutionHeight =
bundle.getInt(
ConfigurationActivity.RESOLUTION_HEIGHT, /* defaultValue= */ C.LENGTH_UNSET);
if (resolutionHeight != C.LENGTH_UNSET) {
requestBuilder.setResolution(resolutionHeight);
}
Matrix transformationMatrix = getTransformationMatrix(bundle);
if (!transformationMatrix.isIdentity()) {
requestBuilder.setTransformationMatrix(transformationMatrix);
}
requestBuilder.experimental_setEnableHdrEditing(
bundle.getBoolean(ConfigurationActivity.ENABLE_HDR_EDITING));
transformerBuilder
.setTransformationRequest(requestBuilder.build())
.setRemoveAudio(bundle.getBoolean(ConfigurationActivity.SHOULD_REMOVE_AUDIO))
.setRemoveVideo(bundle.getBoolean(ConfigurationActivity.SHOULD_REMOVE_VIDEO));
}
return transformerBuilder
.addListener(
new Transformer.Listener() {
@Override
public void onTransformationCompleted(MediaItem mediaItem) {
TransformerActivity.this.onTransformationCompleted(filePath);
}
@Override
public void onTransformationError(
MediaItem mediaItem, TransformationException exception) {
TransformerActivity.this.onTransformationError(exception);
}
})
.setDebugViewProvider(new DemoDebugViewProvider())
.build();
}
private static Matrix getTransformationMatrix(Bundle bundle) {
Matrix transformationMatrix = new Matrix();
float translateX = bundle.getFloat(ConfigurationActivity.TRANSLATE_X, /* defaultValue= */ 0);
float translateY = bundle.getFloat(ConfigurationActivity.TRANSLATE_Y, /* defaultValue= */ 0);
// TODO(b/213198690): Get resolution for aspect ratio and scale all translations' translateX
// by this aspect ratio.
transformationMatrix.postTranslate(translateX, translateY);
float scaleX = bundle.getFloat(ConfigurationActivity.SCALE_X, /* defaultValue= */ 1);
float scaleY = bundle.getFloat(ConfigurationActivity.SCALE_Y, /* defaultValue= */ 1);
transformationMatrix.postScale(scaleX, scaleY);
float rotateDegrees =
bundle.getFloat(ConfigurationActivity.ROTATE_DEGREES, /* defaultValue= */ 0);
transformationMatrix.postRotate(rotateDegrees);
return transformationMatrix;
}
@RequiresNonNull({
"informationTextView",
"progressViewGroup",
"debugFrame",
"transformationStopwatch",
})
private void onTransformationError(TransformationException exception) {
transformationStopwatch.stop();
informationTextView.setText(R.string.transformation_error);
progressViewGroup.setVisibility(View.GONE);
debugFrame.removeAllViews();
Toast.makeText(
TransformerActivity.this, "Transformation error: " + exception, Toast.LENGTH_LONG)
.show();
Log.e(TAG, "Transformation error", exception);
}
@RequiresNonNull({
"playerView",
"debugTextView",
"informationTextView",
"progressViewGroup",
"debugFrame",
"transformationStopwatch",
})
private void onTransformationCompleted(String filePath) {
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));
Log.d(TAG, "Output file path: file://" + filePath);
}
@RequiresNonNull({"playerView", "debugTextView"})
private void playMediaItem(MediaItem mediaItem) {
playerView.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);
debugTextViewHelper.start();
}
private void releasePlayer() {
if (debugTextViewHelper != null) {
debugTextViewHelper.stop();
debugTextViewHelper = null;
}
if (player != null) {
player.release();
player = null;
}
}
private void requestTransformerPermission() {
if (Util.SDK_INT < 23) {
return;
}
if (checkSelfPermission(READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {READ_EXTERNAL_STORAGE}, /* requestCode= */ 0);
}
}
private final class DemoDebugViewProvider implements Transformer.DebugViewProvider {
@Nullable
@Override
public SurfaceView getDebugPreviewSurfaceView(int width, int 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);
runOnUiThread(
() -> {
AspectRatioFrameLayout debugFrame = checkNotNull(TransformerActivity.this.debugFrame);
debugFrame.addView(surfaceView);
debugFrame.setAspectRatio((float) width / height);
surfaceView
.getHolder()
.addCallback(
new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
surfaceCreatedCountDownLatch.countDown();
}
@Override
public void surfaceChanged(
SurfaceHolder surfaceHolder, int format, int width, int height) {
// Do nothing.
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
// Do nothing.
}
});
});
try {
surfaceCreatedCountDownLatch.await();
} catch (InterruptedException e) {
Log.w(TAG, "Interrupted waiting for debug surface.");
Thread.currentThread().interrupt();
return null;
}
return surfaceView;
}
}
}

View File

@ -0,0 +1,19 @@
/*
* Copyright 2021 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.
*/
@NonNullApi
package com.google.android.exoplayer2.transformerdemo;
import com.google.android.exoplayer2.util.NonNullApi;

View File

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2021 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="match_parent"
android:layout_height="match_parent"
tools:context=".ConfigurationActivity">
<TextView
android:id="@+id/configuration_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:text="@string/configuration"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/choose_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/choose_file_title"
app:layout_constraintTop_toBottomOf="@+id/configuration_text_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/chosen_file_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:paddingLeft="24dp"
android:paddingRight="24dp"
android:textSize="12sp"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/choose_file_button" />
<androidx.core.widget.NestedScrollView
android:layout_width="fill_parent"
android:layout_height="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chosen_file_text_view"
app:layout_constraintBottom_toTopOf="@+id/transform_button">
<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/remove_audio" />
<CheckBox
android:id="@+id/remove_audio_checkbox"
android:layout_gravity="right"/>
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/remove_video"/>
<CheckBox
android:id="@+id/remove_video_checkbox"
android:layout_gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:text="@string/flatten_for_slow_motion"/>
<CheckBox
android:id="@+id/flatten_for_slow_motion_checkbox"
android:layout_gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/audio_mime_text_view"
android:text="@string/audio_mime"/>
<Spinner
android:id="@+id/audio_mime_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/video_mime_text_view"
android:text="@string/video_mime"/>
<Spinner
android:id="@+id/video_mime_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/resolution_height_text_view"
android:text="@string/resolution_height"/>
<Spinner
android:id="@+id/resolution_height_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/translate"
android:text="@string/translate"/>
<Spinner
android:id="@+id/translate_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/scale"
android:text="@string/scale"/>
<Spinner
android:id="@+id/scale_spinner"
android:layout_gravity="right|center_vertical"
android:gravity="right" />
</TableRow>
<TableRow
android:layout_weight="1"
android:gravity="center_vertical" >
<TextView
android:id="@+id/rotate"
android:text="@string/rotate"/>
<Spinner
android:id="@+id/rotate_spinner"
android:layout_gravity="right|center_vertical"
android: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" />
</TableRow>
</TableLayout>
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/transform_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="28dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:text="@string/transform"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2021 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.
-->
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:gravity="left|center_vertical"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:textIsSelectable="false" />

View File

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright 2021 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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:keepScreenOn="true"
android:orientation="vertical">
<com.google.android.material.card.MaterialCardView
android:layout_margin="8dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:cardCornerRadius="4dp"
app:cardElevation="2dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/information_text_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="8dp" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
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"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/debug_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10sp"
tools:ignore="SmallSp"/>
<LinearLayout
android:id="@+id/progress_view_group"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:padding="8dp"
android:orientation="vertical">
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_gravity="center" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="@string/debug_preview" />
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
android:id="@+id/debug_aspect_ratio_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/debug_preview_not_available" />
</com.google.android.exoplayer2.ui.AspectRatioFrameLayout>
</LinearLayout>
</FrameLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright 2021 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.
-->
<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="choose_file_title" translatable="false">Choose 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>
<string name="audio_mime" translatable="false">Output audio MIME type</string>
<string name="video_mime" translatable="false">Output video MIME type</string>
<string name="resolution_height" translatable="false">Output video resolution</string>
<string name="translate" translatable="false">Translate video</string>
<string name="scale" translatable="false">Scale video</string>
<string name="rotate" translatable="false">Rotate video (degrees)</string>
<string name="transform" translatable="false">Transform</string>
<string name="hdr_editing" translatable="false">[Experimental] HDR editing</string>
<string name="debug_preview" translatable="false">Debug preview:</string>
<string name="debug_preview_not_available" translatable="false">No debug preview available.</string>
<string name="transformation_started" translatable="false">Transformation started</string>
<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>
</resources>

View File

@ -46,10 +46,10 @@ MediaItem mediaItem =
To enable player support for media items that specify ad tags, it's necessary to To enable player support for media items that specify ad tags, it's necessary to
build and inject a `DefaultMediaSourceFactory` configured with an build and inject a `DefaultMediaSourceFactory` configured with an
`AdsLoaderProvider` and an `AdViewProvider` when creating the player: `AdsLoader.Provider` and an `AdViewProvider` when creating the player:
~~~ ~~~
MediaSourceFactory mediaSourceFactory = MediaSource.Factory mediaSourceFactory =
new DefaultMediaSourceFactory(context) new DefaultMediaSourceFactory(context)
.setAdsLoaderProvider(adsLoaderProvider) .setAdsLoaderProvider(adsLoaderProvider)
.setAdViewProvider(playerView); .setAdViewProvider(playerView);
@ -61,12 +61,11 @@ ExoPlayer player = new ExoPlayer.Builder(context)
Internally, `DefaultMediaSourceFactory` will wrap the content media source in an Internally, `DefaultMediaSourceFactory` will wrap the content media source in an
`AdsMediaSource`. The `AdsMediaSource` will obtain an `AdsLoader` from the `AdsMediaSource`. The `AdsMediaSource` will obtain an `AdsLoader` from the
`AdsLoaderProvider` and use it to insert ads as defined by the media item's ad `AdsLoader.Provider` and use it to insert ads as defined by the media item's ad
tag. tag.
ExoPlayer's `StyledPlayerView` and `PlayerView` UI components both implement ExoPlayer's `StyledPlayerView` implements `AdViewProvider`. The IMA extension
`AdViewProvider`. The IMA extension provides an easy to use `AdsLoader`, as provides an easy to use `AdsLoader`, as described below.
described below.
### Playlists with ads ### ### Playlists with ads ###
@ -123,11 +122,11 @@ VAST/VMAP ad tags in the sample list.
#### UI considerations #### #### UI considerations ####
`StyledPlayerView` and `PlayerView` hide controls during playback of ads by `StyledPlayerView` hides its transport controls during playback of ads by
default, but apps can toggle this behavior by calling default, but apps can toggle this behavior by calling
`setControllerHideDuringAds`, which is defined on both views. The IMA SDK will `setControllerHideDuringAds`. The IMA SDK will show additional views on top of
show additional views on top of the player while an ad is playing (e.g., a 'more the player while an ad is playing (e.g., a 'more info' link and a skip button,
info' link and a skip button, if applicable). if applicable).
Since advertisers expect a consistent experience across apps, the IMA SDK does Since advertisers expect a consistent experience across apps, the IMA SDK does
not allow customization of the views that it shows while an ad is playing. It is not allow customization of the views that it shows while an ad is playing. It is
@ -139,9 +138,9 @@ The IMA SDK may report whether ads are obscured by application provided views
rendered on top of the player. Apps that need to overlay views that are rendered on top of the player. Apps that need to overlay views that are
essential for controlling playback must register them with the IMA SDK so that essential for controlling playback must register them with the IMA SDK so that
they can be omitted from viewability calculations. When using `StyledPlayerView` they can be omitted from viewability calculations. When using `StyledPlayerView`
or `PlayerView` as the `AdViewProvider`, they will automatically register their as the `AdViewProvider`, it will automatically register its control overlays.
control overlays. Apps that use a custom player UI must register overlay views Apps that use a custom player UI must register overlay views by returning them
by returning them from `AdViewProvider.getAdOverlayInfos`. from `AdViewProvider.getAdOverlayInfos`.
For more information about overlay views, see For more information about overlay views, see
[Open Measurement in the IMA SDK][]. [Open Measurement in the IMA SDK][].
@ -210,17 +209,108 @@ media stream contains both ads and content. A DASH manifest may point to both
content and ad segments, possibly in separate periods. For HLS, see the Apple content and ad segments, possibly in separate periods. For HLS, see the Apple
documentation on [incorporating ads into a playlist][]. documentation on [incorporating ads into a playlist][].
When using server-side ad insertion the client may need to report tracking When using server-side ad insertion, the client may need to resolve the media
events to an ad SDK or ad server. For example, the media stream may include URL dynamically to get the stitched stream, it may need to display ads overlays
timed events that need to be reported by the client (see [supported formats][] in the UI or it may need to report events to an ads SDK or ad server.
for information on what timed metadata formats are supported by ExoPlayer). Apps
ExoPlayer's `DefaultMediaSourceFactory` can delegate all these tasks to a
server-side ad insertion `MediaSource` for URIs using the `ssai://` scheme:
```
Player player =
new ExoPlayer.Builder(context)
.setMediaSourceFactory(
new DefaultMediaSourceFactory(dataSourceFactory)
.setServerSideAdInsertionMediaSourceFactory(ssaiFactory))
.build();
```
### IMA extension ###
The [ExoPlayer IMA extension][] provides `ImaServerSideAdInsertionMediaSource`,
making it easy to integrate with IMA's server-side inserted ad streams in your
app. It wraps the functionality of the [IMA DAI SDK for Android][] and fully
integrates the provided ad metadata into the player. For example, this allows
you to use methods like `Player.isPlayingAd()`, listen to content-ad transitions
and let the player handle ad playback logic like skipping already played ads.
In order to use this class, you need to set up the
`ImaServerSideAdInsertionMediaSource.AdsLoader` and the
`ImaServerSideAdInsertionMediaSource.Factory` and connect them to the player:
```
// MediaSource.Factory to load the actual media stream.
DefaultMediaSourceFactory defaultMediaSourceFactory =
new DefaultMediaSourceFactory(dataSourceFactory);
// AdsLoader that can be reused for multiple playbacks.
ImaServerSideAdInsertionMediaSource.AdsLoader adsLoader =
new ImaServerSideAdInsertionMediaSource.AdsLoader.Builder(context, adViewProvider)
.build();
// MediaSource.Factory to create the ad sources for the current player.
ImaServerSideAdInsertionMediaSource.Factory adsMediaSourceFactory =
new ImaServerSideAdInsertionMediaSource.Factory(adsLoader, defaultMediaSourceFactory);
// Configure DefaultMediaSourceFactory to create both IMA DAI sources and
// regular media sources. If you just play IMA DAI streams, you can also use
// adsMediaSourceFactory directly.
defaultMediaSourceFactory.setServerSideAdInsertionMediaSourceFactory(adsMediaSourceFactory);
// Set the MediaSource.Factory on the Player.
Player player =
new ExoPlayer.Builder(context)
.setMediaSourceFactory(defaultMediaSourceFactory)
.build();
// Set the player on the AdsLoader
adsLoader.setPlayer(player);
```
Load your IMA asset key, or content source id and video id, by building an URL
with `ImaServerSideAdInsertionUriBuilder`:
```
Uri ssaiUri =
new ImaServerSideAdInsertionUriBuilder().setAssetKey(assetKey).build();
player.setMediaItem(MediaItem.fromUri(ssaiUri));
```
Finally, release your ads loader once it's no longer used:
```
adsLoader.release();
```
Currently only a single IMA server-side ad insertion stream is supported in the
same playlist. You can combine the stream with other media but not with another
IMA server-side ad insertion stream.
{:.info}
#### UI considerations ####
The same [UI considerations as for client-side ad insertion][] apply to
server-side ad insertion too.
#### Companion ads ####
Some ad tags contain additional companion ads that can be shown in 'slots' in an
app UI. These slots can be passed via
`ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.setCompanionAdSlots(slots)`.
For more information see [Adding Companion Ads][].
### Using a third-party ads SDK ###
If you need to load ads via a third-party ads SDK, its worth checking whether
it already provides an ExoPlayer integration. If not, it's recommended to
provide a custom `MediaSource` that accepts URIs with the `ssai://` scheme
similar to `ImaServerSideAdInsertionMediaSource`.
The actual logic of creating the ad structure can be delegated to the general
purpose `ServerSideInsertedAdsMediaSource`, which wraps a stream `MediaSource`
and allows the user to set and update the `AdPlaybackState` representing the ad
metadata.
Often, server-side inserted ad streams contain timed events to notify the player
about ad metadata. Please see [supported formats][] for information on what
timed metadata formats are supported by ExoPlayer. Custom ads SDK `MediaSource`s
can listen for timed metadata events from the player, e.g., via can listen for timed metadata events from the player, e.g., via
`ExoPlayer.addMetadataOutput`. `ExoPlayer.addMetadataOutput`.
The IMA extension currently only handles client-side ad insertion. It does not
provide any integration with the DAI part of the IMA SDK.
{:.info}
[VAST]: https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf [VAST]: https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf
[VMAP]: https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/ [VMAP]: https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/
[ExoPlayer UI components]: {{ site.baseurl }}/ui-components.html [ExoPlayer UI components]: {{ site.baseurl }}/ui-components.html
@ -235,3 +325,5 @@ provide any integration with the DAI part of the IMA SDK.
[incorporating ads into a playlist]: https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/incorporating_ads_into_a_playlist [incorporating ads into a playlist]: https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/incorporating_ads_into_a_playlist
[supported formats]: {{ site.baseurl }}/supported-formats.html [supported formats]: {{ site.baseurl }}/supported-formats.html
[Google Mobile Ads SDK]: https://developers.google.com/admob/android/quick-start [Google Mobile Ads SDK]: https://developers.google.com/admob/android/quick-start
[IMA DAI SDK for Android]: https://developers.google.com/interactive-media-ads/docs/sdks/android/dai
[UI considerations as for client-side ad insertion]: #ui-considerations

View File

@ -225,16 +225,16 @@ new PlaybackStatsListener(
In case you need to add custom events to the analytics data, you need to save In case you need to add custom events to the analytics data, you need to save
these events in your own data structure and combine them with the reported these events in your own data structure and combine them with the reported
`PlaybackStats` later. If it helps, you can extend `AnalyticsCollector` to be `PlaybackStats` later. If it helps, you can extend `DefaultAnalyticsCollector`
able to generate `EventTime` instances for your custom events and send them to to be able to generate `EventTime` instances for your custom events and send
the already registered listeners as shown in the following example. them to the already registered listeners as shown in the following example.
~~~ ~~~
interface ExtendedListener extends AnalyticsListener { interface ExtendedListener extends AnalyticsListener {
void onCustomEvent(EventTime eventTime); void onCustomEvent(EventTime eventTime);
} }
class ExtendedCollector extends AnalyticsCollector { class ExtendedCollector extends DefaultAnalyticsCollector {
public void customEvent() { public void customEvent() {
EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime();
sendEvent(eventTime, CUSTOM_EVENT_ID, listener -> { sendEvent(eventTime, CUSTOM_EVENT_ID, listener -> {

View File

@ -14,10 +14,10 @@ Components common to all `ExoPlayer` implementations are:
* `MediaSource` instances that define media to be played, load the media, and * `MediaSource` instances that define media to be played, load the media, and
from which the loaded media can be read. `MediaSource` instances are created from which the loaded media can be read. `MediaSource` instances are created
from `MediaItem`s by a `MediaSourceFactory` inside the player. They can also from `MediaItem`s by a `MediaSource.Factory` inside the player. They can also
be passed directly to the player using the [media source based playlist API]. be passed directly to the player using the [media source based playlist API].
* A `MediaSourceFactory` that converts `MediaItem`s to `MediaSource`s. The * A `MediaSource.Factory` that converts `MediaItem`s to `MediaSource`s. The
`MediaSourceFactory` is injected when the player is created. `MediaSource.Factory` is injected when the player is created.
* `Renderer`s that render individual components of the media. `Renderer`s are * `Renderer`s that render individual components of the media. `Renderer`s are
injected when the player is created. injected when the player is created.
* A `TrackSelector` that selects tracks provided by the `MediaSource` to be * A `TrackSelector` that selects tracks provided by the `MediaSource` to be
@ -245,9 +245,9 @@ required. Some use cases for custom implementations are:
appropriate if you wish to obtain media samples to feed to renderers in a appropriate if you wish to obtain media samples to feed to renderers in a
custom way, or if you wish to implement custom `MediaSource` compositing custom way, or if you wish to implement custom `MediaSource` compositing
behavior. behavior.
* `MediaSourceFactory` &ndash; Implementing a custom `MediaSourceFactory` allows * `MediaSource.Factory` &ndash; Implementing a custom `MediaSource.Factory`
an application to customize the way in which `MediaSource`s are created from allows an application to customize the way in which `MediaSource`s are created
`MediaItem`s. from `MediaItem`s.
* `DataSource` &ndash; ExoPlayers upstream package already contains a number of * `DataSource` &ndash; ExoPlayers upstream package already contains a number of
`DataSource` implementations for different use cases. You may want to `DataSource` implementations for different use cases. You may want to
implement you own `DataSource` class to load data in another way, such as over implement you own `DataSource` class to load data in another way, such as over

File diff suppressed because one or more lines are too long

View File

@ -63,8 +63,6 @@
<li><a href="com/google/android/exoplayer2/testutil/Action.WaitForPlayWhenReady.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPlayWhenReady</a></li> <li><a href="com/google/android/exoplayer2/testutil/Action.WaitForPlayWhenReady.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPlayWhenReady</a></li>
<li><a href="com/google/android/exoplayer2/testutil/Action.WaitForPositionDiscontinuity.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPositionDiscontinuity</a></li> <li><a href="com/google/android/exoplayer2/testutil/Action.WaitForPositionDiscontinuity.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPositionDiscontinuity</a></li>
<li><a href="com/google/android/exoplayer2/testutil/Action.WaitForTimelineChanged.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForTimelineChanged</a></li> <li><a href="com/google/android/exoplayer2/testutil/Action.WaitForTimelineChanged.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForTimelineChanged</a></li>
<li><a href="com/google/android/exoplayer2/offline/ActionFileUpgradeUtil.html" title="class in com.google.android.exoplayer2.offline">ActionFileUpgradeUtil</a></li>
<li><a href="com/google/android/exoplayer2/offline/ActionFileUpgradeUtil.DownloadIdProvider.html" title="interface in com.google.android.exoplayer2.offline"><span class="interfaceName">ActionFileUpgradeUtil.DownloadIdProvider</span></a></li>
<li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule</a></li> <li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule</a></li>
<li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Builder.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule.Builder</a></li> <li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Builder.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule.Builder</a></li>
<li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Callback.html" title="interface in com.google.android.exoplayer2.testutil"><span class="interfaceName">ActionSchedule.Callback</span></a></li> <li><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Callback.html" title="interface in com.google.android.exoplayer2.testutil"><span class="interfaceName">ActionSchedule.Callback</span></a></li>
@ -77,12 +75,14 @@
<li><a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.Factory.html" title="class in com.google.android.exoplayer2.trackselection">AdaptiveTrackSelection.Factory</a></li> <li><a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.Factory.html" title="class in com.google.android.exoplayer2.trackselection">AdaptiveTrackSelection.Factory</a></li>
<li><a href="com/google/android/exoplayer2/testutil/AdditionalFailureInfo.html" title="class in com.google.android.exoplayer2.testutil">AdditionalFailureInfo</a></li> <li><a href="com/google/android/exoplayer2/testutil/AdditionalFailureInfo.html" title="class in com.google.android.exoplayer2.testutil">AdditionalFailureInfo</a></li>
<li><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.html" title="class in com.google.android.exoplayer2.ui">AdOverlayInfo</a></li> <li><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.html" title="class in com.google.android.exoplayer2.ui">AdOverlayInfo</a></li>
<li><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.Builder.html" title="class in com.google.android.exoplayer2.ui">AdOverlayInfo.Builder</a></li>
<li><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.Purpose.html" title="annotation in com.google.android.exoplayer2.ui">AdOverlayInfo.Purpose</a></li> <li><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.Purpose.html" title="annotation in com.google.android.exoplayer2.ui">AdOverlayInfo.Purpose</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdGroup</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdGroup</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdState.html" title="annotation in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdState</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdState.html" title="annotation in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdState</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsLoader.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">AdsLoader</span></a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdsLoader.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">AdsLoader</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsLoader.EventListener.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">AdsLoader.EventListener</span></a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdsLoader.EventListener.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">AdsLoader.EventListener</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsLoader.Provider.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">AdsLoader.Provider</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.Type.html" title="annotation in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException.Type</a></li> <li><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.Type.html" title="annotation in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException.Type</a></li>
@ -95,9 +95,10 @@
<li><a href="com/google/android/exoplayer2/upstream/crypto/AesFlushingCipher.html" title="class in com.google.android.exoplayer2.upstream.crypto">AesFlushingCipher</a></li> <li><a href="com/google/android/exoplayer2/upstream/crypto/AesFlushingCipher.html" title="class in com.google.android.exoplayer2.upstream.crypto">AesFlushingCipher</a></li>
<li><a href="com/google/android/exoplayer2/upstream/Allocation.html" title="class in com.google.android.exoplayer2.upstream">Allocation</a></li> <li><a href="com/google/android/exoplayer2/upstream/Allocation.html" title="class in com.google.android.exoplayer2.upstream">Allocation</a></li>
<li><a href="com/google/android/exoplayer2/upstream/Allocator.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">Allocator</span></a></li> <li><a href="com/google/android/exoplayer2/upstream/Allocator.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">Allocator</span></a></li>
<li><a href="com/google/android/exoplayer2/upstream/Allocator.AllocationNode.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">Allocator.AllocationNode</span></a></li>
<li><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.html" title="class in com.google.android.exoplayer2.extractor.amr">AmrExtractor</a></li> <li><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.html" title="class in com.google.android.exoplayer2.extractor.amr">AmrExtractor</a></li>
<li><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.amr">AmrExtractor.Flags</a></li> <li><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.amr">AmrExtractor.Flags</a></li>
<li><a href="com/google/android/exoplayer2/analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a></li> <li><a href="com/google/android/exoplayer2/analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><span class="interfaceName">AnalyticsCollector</span></a></li>
<li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><span class="interfaceName">AnalyticsListener</span></a></li> <li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><span class="interfaceName">AnalyticsListener</span></a></li>
<li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.EventFlags.html" title="annotation in com.google.android.exoplayer2.analytics">AnalyticsListener.EventFlags</a></li> <li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.EventFlags.html" title="annotation in com.google.android.exoplayer2.analytics">AnalyticsListener.EventFlags</a></li>
<li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.Events.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsListener.Events</a></li> <li><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.Events.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsListener.Events</a></li>
@ -170,8 +171,6 @@
<li><a href="com/google/android/exoplayer2/C.AudioAllowedCapturePolicy.html" title="annotation in com.google.android.exoplayer2">C.AudioAllowedCapturePolicy</a></li> <li><a href="com/google/android/exoplayer2/C.AudioAllowedCapturePolicy.html" title="annotation in com.google.android.exoplayer2">C.AudioAllowedCapturePolicy</a></li>
<li><a href="com/google/android/exoplayer2/C.AudioContentType.html" title="annotation in com.google.android.exoplayer2">C.AudioContentType</a></li> <li><a href="com/google/android/exoplayer2/C.AudioContentType.html" title="annotation in com.google.android.exoplayer2">C.AudioContentType</a></li>
<li><a href="com/google/android/exoplayer2/C.AudioFlags.html" title="annotation in com.google.android.exoplayer2">C.AudioFlags</a></li> <li><a href="com/google/android/exoplayer2/C.AudioFlags.html" title="annotation in com.google.android.exoplayer2">C.AudioFlags</a></li>
<li><a href="com/google/android/exoplayer2/C.AudioFocusGain.html" title="annotation in com.google.android.exoplayer2">C.AudioFocusGain</a></li>
<li><a href="com/google/android/exoplayer2/C.AudioManagerOffloadMode.html" title="annotation in com.google.android.exoplayer2">C.AudioManagerOffloadMode</a></li>
<li><a href="com/google/android/exoplayer2/C.AudioUsage.html" title="annotation in com.google.android.exoplayer2">C.AudioUsage</a></li> <li><a href="com/google/android/exoplayer2/C.AudioUsage.html" title="annotation in com.google.android.exoplayer2">C.AudioUsage</a></li>
<li><a href="com/google/android/exoplayer2/C.BufferFlags.html" title="annotation in com.google.android.exoplayer2">C.BufferFlags</a></li> <li><a href="com/google/android/exoplayer2/C.BufferFlags.html" title="annotation in com.google.android.exoplayer2">C.BufferFlags</a></li>
<li><a href="com/google/android/exoplayer2/C.ColorRange.html" title="annotation in com.google.android.exoplayer2">C.ColorRange</a></li> <li><a href="com/google/android/exoplayer2/C.ColorRange.html" title="annotation in com.google.android.exoplayer2">C.ColorRange</a></li>
@ -189,6 +188,7 @@
<li><a href="com/google/android/exoplayer2/C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">C.RoleFlags</a></li> <li><a href="com/google/android/exoplayer2/C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">C.RoleFlags</a></li>
<li><a href="com/google/android/exoplayer2/C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">C.SelectionFlags</a></li> <li><a href="com/google/android/exoplayer2/C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">C.SelectionFlags</a></li>
<li><a href="com/google/android/exoplayer2/C.SelectionReason.html" title="annotation in com.google.android.exoplayer2">C.SelectionReason</a></li> <li><a href="com/google/android/exoplayer2/C.SelectionReason.html" title="annotation in com.google.android.exoplayer2">C.SelectionReason</a></li>
<li><a href="com/google/android/exoplayer2/C.SpatializationBehavior.html" title="annotation in com.google.android.exoplayer2">C.SpatializationBehavior</a></li>
<li><a href="com/google/android/exoplayer2/C.StereoMode.html" title="annotation in com.google.android.exoplayer2">C.StereoMode</a></li> <li><a href="com/google/android/exoplayer2/C.StereoMode.html" title="annotation in com.google.android.exoplayer2">C.StereoMode</a></li>
<li><a href="com/google/android/exoplayer2/C.StreamType.html" title="annotation in com.google.android.exoplayer2">C.StreamType</a></li> <li><a href="com/google/android/exoplayer2/C.StreamType.html" title="annotation in com.google.android.exoplayer2">C.StreamType</a></li>
<li><a href="com/google/android/exoplayer2/C.TrackType.html" title="annotation in com.google.android.exoplayer2">C.TrackType</a></li> <li><a href="com/google/android/exoplayer2/C.TrackType.html" title="annotation in com.google.android.exoplayer2">C.TrackType</a></li>
@ -241,6 +241,9 @@
<li><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException</a></li> <li><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException</a></li>
<li><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.Reason.html" title="annotation in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException.Reason</a></li> <li><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.Reason.html" title="annotation in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException.Reason</a></li>
<li><a href="com/google/android/exoplayer2/util/Clock.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">Clock</span></a></li> <li><a href="com/google/android/exoplayer2/util/Clock.html" title="interface in com.google.android.exoplayer2.util"><span class="interfaceName">Clock</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/Codec.html" title="class in com.google.android.exoplayer2.transformer">Codec</a></li>
<li><a href="com/google/android/exoplayer2/transformer/Codec.DecoderFactory.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">Codec.DecoderFactory</span></a></li>
<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/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/video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</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/util/ColorParser.html" title="class in com.google.android.exoplayer2.util">ColorParser</a></li>
@ -323,11 +326,16 @@
<li><a href="com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.DecoderReuseResult.html" title="annotation in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation.DecoderReuseResult</a></li> <li><a href="com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.DecoderReuseResult.html" title="annotation in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation.DecoderReuseResult</a></li>
<li><a href="com/google/android/exoplayer2/video/DecoderVideoRenderer.html" title="class in com.google.android.exoplayer2.video">DecoderVideoRenderer</a></li> <li><a href="com/google/android/exoplayer2/video/DecoderVideoRenderer.html" title="class in com.google.android.exoplayer2.video">DecoderVideoRenderer</a></li>
<li><a href="com/google/android/exoplayer2/upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream">DefaultAllocator</a></li> <li><a href="com/google/android/exoplayer2/upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream">DefaultAllocator</a></li>
<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.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.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.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.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> <li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.InvalidAudioTrackTimestampException.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.InvalidAudioTrackTimestampException</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.OffloadMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OffloadMode</a></li> <li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.OffloadMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OffloadMode</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.OutputMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OutputMode</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider</a></li>
<li><a href="com/google/android/exoplayer2/audio/DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a></li>
<li><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter</a></li> <li><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter</a></li>
<li><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.Builder.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter.Builder</a></li> <li><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.Builder.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter.Builder</a></li>
<li><a href="com/google/android/exoplayer2/ext/cast/DefaultCastOptionsProvider.html" title="class in com.google.android.exoplayer2.ext.cast">DefaultCastOptionsProvider</a></li> <li><a href="com/google/android/exoplayer2/ext/cast/DefaultCastOptionsProvider.html" title="class in com.google.android.exoplayer2.ext.cast">DefaultCastOptionsProvider</a></li>
@ -377,13 +385,10 @@
<li><a href="com/google/android/exoplayer2/ui/DefaultTimeBar.html" title="class in com.google.android.exoplayer2.ui">DefaultTimeBar</a></li> <li><a href="com/google/android/exoplayer2/ui/DefaultTimeBar.html" title="class in com.google.android.exoplayer2.ui">DefaultTimeBar</a></li>
<li><a href="com/google/android/exoplayer2/ui/DefaultTrackNameProvider.html" title="class in com.google.android.exoplayer2.ui">DefaultTrackNameProvider</a></li> <li><a href="com/google/android/exoplayer2/ui/DefaultTrackNameProvider.html" title="class in com.google.android.exoplayer2.ui">DefaultTrackNameProvider</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector</a></li> <li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.AudioTrackScore.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.AudioTrackScore</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.OtherTrackScore.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.OtherTrackScore</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.Parameters</a></li> <li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.Parameters</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.ParametersBuilder</a></li> <li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.ParametersBuilder</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.SelectionEligibility.html" title="annotation in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.SelectionEligibility</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.SelectionOverride.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.SelectionOverride</a></li> <li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.SelectionOverride.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.SelectionOverride</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.TextTrackScore.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.TextTrackScore</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.VideoTrackScore.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.VideoTrackScore</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory</a></li> <li><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory.Flags</a></li> <li><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory.Flags</a></li>
<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/source/dash/manifest/Descriptor.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Descriptor</a></li>
@ -446,6 +451,7 @@
<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/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/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/source/EmptySampleStream.html" title="class in com.google.android.exoplayer2.source">EmptySampleStream</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> <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>
<li><a href="com/google/android/exoplayer2/drm/ErrorStateDrmSession.html" title="class in com.google.android.exoplayer2.drm">ErrorStateDrmSession</a></li> <li><a href="com/google/android/exoplayer2/drm/ErrorStateDrmSession.html" title="class in com.google.android.exoplayer2.drm">ErrorStateDrmSession</a></li>
<li><a href="com/google/android/exoplayer2/util/EventLogger.html" title="class in com.google.android.exoplayer2.util">EventLogger</a></li> <li><a href="com/google/android/exoplayer2/util/EventLogger.html" title="class in com.google.android.exoplayer2.util">EventLogger</a></li>
@ -585,11 +591,8 @@
<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/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/metadata/id3/GeobFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">GeobFrame</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.html" title="class in com.google.android.exoplayer2.util">GlUtil</a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.Attribute.html" title="class in com.google.android.exoplayer2.util">GlUtil.Attribute</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/util/GlUtil.GlException.html" title="class in com.google.android.exoplayer2.util">GlUtil.GlException</a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.Program.html" title="class in com.google.android.exoplayer2.util">GlUtil.Program</a></li> <li><a href="com/google/android/exoplayer2/util/GlUtil.Program.html" title="class in com.google.android.exoplayer2.util">GlUtil.Program</a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.Uniform.html" title="class in com.google.android.exoplayer2.util">GlUtil.Uniform</a></li>
<li><a href="com/google/android/exoplayer2/util/GlUtil.UnsupportedEglVersionException.html" title="class in com.google.android.exoplayer2.util">GlUtil.UnsupportedEglVersionException</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> <li><a href="com/google/android/exoplayer2/extractor/ts/H262Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H262Reader</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/H263Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H263Reader</a></li> <li><a href="com/google/android/exoplayer2/extractor/ts/H263Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H263Reader</a></li>
<li><a href="com/google/android/exoplayer2/extractor/ts/H264Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H264Reader</a></li> <li><a href="com/google/android/exoplayer2/extractor/ts/H264Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H264Reader</a></li>
@ -603,8 +606,6 @@
<li><a href="com/google/android/exoplayer2/source/hls/HlsExtractorFactory.html" title="interface in com.google.android.exoplayer2.source.hls"><span class="interfaceName">HlsExtractorFactory</span></a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsExtractorFactory.html" title="interface in com.google.android.exoplayer2.source.hls"><span class="interfaceName">HlsExtractorFactory</span></a></li>
<li><a href="com/google/android/exoplayer2/source/hls/HlsManifest.html" title="class in com.google.android.exoplayer2.source.hls">HlsManifest</a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsManifest.html" title="class in com.google.android.exoplayer2.source.hls">HlsManifest</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMasterPlaylist</a></li> <li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMasterPlaylist</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.Rendition.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMasterPlaylist.Rendition</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.Variant.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMasterPlaylist.Variant</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/HlsMediaChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.hls"><span class="interfaceName">HlsMediaChunkExtractor</span></a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsMediaChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.hls"><span class="interfaceName">HlsMediaChunkExtractor</span></a></li>
<li><a href="com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaPeriod</a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaPeriod</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist</a></li> <li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist</a></li>
@ -617,6 +618,9 @@
<li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource</a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource.Factory</a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html" title="annotation in com.google.android.exoplayer2.source.hls">HlsMediaSource.MetadataType</a></li> <li><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html" title="annotation in com.google.android.exoplayer2.source.hls">HlsMediaSource.MetadataType</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.Rendition.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist.Rendition</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.Variant.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist.Variant</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylist</a></li> <li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylist</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser</a></li> <li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.DeltaUpdateException.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser.DeltaUpdateException</a></li> <li><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.DeltaUpdateException.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser.DeltaUpdateException</a></li>
@ -655,6 +659,12 @@
<li><a href="com/google/android/exoplayer2/IllegalSeekPositionException.html" title="class in com.google.android.exoplayer2">IllegalSeekPositionException</a></li> <li><a href="com/google/android/exoplayer2/IllegalSeekPositionException.html" title="class in com.google.android.exoplayer2">IllegalSeekPositionException</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader</a></li> <li><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader.Builder</a></li> <li><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader.Builder</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.State.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.State</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.Factory.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionUriBuilder</a></li>
<li><a href="com/google/android/exoplayer2/extractor/IndexSeekMap.html" title="class in com.google.android.exoplayer2.extractor">IndexSeekMap</a></li> <li><a href="com/google/android/exoplayer2/extractor/IndexSeekMap.html" title="class in com.google.android.exoplayer2.extractor">IndexSeekMap</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/InitializationChunk.html" title="class in com.google.android.exoplayer2.source.chunk">InitializationChunk</a></li> <li><a href="com/google/android/exoplayer2/source/chunk/InitializationChunk.html" title="class in com.google.android.exoplayer2.source.chunk">InitializationChunk</a></li>
<li><a href="com/google/android/exoplayer2/source/mediaparser/InputReaderAdapterV30.html" title="class in com.google.android.exoplayer2.source.mediaparser">InputReaderAdapterV30</a></li> <li><a href="com/google/android/exoplayer2/source/mediaparser/InputReaderAdapterV30.html" title="class in com.google.android.exoplayer2.source.mediaparser">InputReaderAdapterV30</a></li>
@ -691,16 +701,19 @@
<li><a href="com/google/android/exoplayer2/source/LoadEventInfo.html" title="class in com.google.android.exoplayer2.source">LoadEventInfo</a></li> <li><a href="com/google/android/exoplayer2/source/LoadEventInfo.html" title="class in com.google.android.exoplayer2.source">LoadEventInfo</a></li>
<li><a href="com/google/android/exoplayer2/drm/LocalMediaDrmCallback.html" title="class in com.google.android.exoplayer2.drm">LocalMediaDrmCallback</a></li> <li><a href="com/google/android/exoplayer2/drm/LocalMediaDrmCallback.html" title="class in com.google.android.exoplayer2.drm">LocalMediaDrmCallback</a></li>
<li><a href="com/google/android/exoplayer2/util/Log.html" title="class in com.google.android.exoplayer2.util">Log</a></li> <li><a href="com/google/android/exoplayer2/util/Log.html" title="class in com.google.android.exoplayer2.util">Log</a></li>
<li><a href="com/google/android/exoplayer2/util/Log.LogLevel.html" title="annotation in com.google.android.exoplayer2.util">Log.LogLevel</a></li>
<li><a href="com/google/android/exoplayer2/util/LongArray.html" title="class in com.google.android.exoplayer2.util">LongArray</a></li> <li><a href="com/google/android/exoplayer2/util/LongArray.html" title="class in com.google.android.exoplayer2.util">LongArray</a></li>
<li><a href="com/google/android/exoplayer2/source/LoopingMediaSource.html" title="class in com.google.android.exoplayer2.source">LoopingMediaSource</a></li> <li><a href="com/google/android/exoplayer2/source/LoopingMediaSource.html" title="class in com.google.android.exoplayer2.source">LoopingMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector</a></li> <li><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector.MappedTrackInfo</a></li> <li><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector.MappedTrackInfo</a></li>
<li><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.RendererSupport.html" title="annotation in com.google.android.exoplayer2.trackselection">MappingTrackSelector.MappedTrackInfo.RendererSupport</a></li>
<li><a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.html" title="class in com.google.android.exoplayer2.source">MaskingMediaPeriod</a></li> <li><a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.html" title="class in com.google.android.exoplayer2.source">MaskingMediaPeriod</a></li>
<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/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.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/source/MaskingMediaSource.PlaceholderTimeline.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource.PlaceholderTimeline</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.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.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>
<li><a href="com/google/android/exoplayer2/metadata/mp4/MdtaMetadataEntry.html" title="class in com.google.android.exoplayer2.metadata.mp4">MdtaMetadataEntry</a></li> <li><a href="com/google/android/exoplayer2/metadata/mp4/MdtaMetadataEntry.html" title="class in com.google.android.exoplayer2.metadata.mp4">MdtaMetadataEntry</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/MediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">MediaChunk</a></li> <li><a href="com/google/android/exoplayer2/source/chunk/MediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">MediaChunk</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><span class="interfaceName">MediaChunkIterator</span></a></li> <li><a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><span class="interfaceName">MediaChunkIterator</span></a></li>
@ -746,6 +759,7 @@
<li><a href="com/google/android/exoplayer2/MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></li> <li><a href="com/google/android/exoplayer2/MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.FolderType</a></li> <li><a href="com/google/android/exoplayer2/MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.FolderType</a></li>
<li><a href="com/google/android/exoplayer2/MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></li> <li><a href="com/google/android/exoplayer2/MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></li>
<li><a href="com/google/android/exoplayer2/analytics/MediaMetricsListener.html" title="class in com.google.android.exoplayer2.analytics">MediaMetricsListener</a></li>
<li><a href="com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html" title="class in com.google.android.exoplayer2.source.chunk">MediaParserChunkExtractor</a></li> <li><a href="com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html" title="class in com.google.android.exoplayer2.source.chunk">MediaParserChunkExtractor</a></li>
<li><a href="com/google/android/exoplayer2/source/MediaParserExtractorAdapter.html" title="class in com.google.android.exoplayer2.source">MediaParserExtractorAdapter</a></li> <li><a href="com/google/android/exoplayer2/source/MediaParserExtractorAdapter.html" title="class in com.google.android.exoplayer2.source">MediaParserExtractorAdapter</a></li>
<li><a href="com/google/android/exoplayer2/source/hls/MediaParserHlsMediaChunkExtractor.html" title="class in com.google.android.exoplayer2.source.hls">MediaParserHlsMediaChunkExtractor</a></li> <li><a href="com/google/android/exoplayer2/source/hls/MediaParserHlsMediaChunkExtractor.html" title="class in com.google.android.exoplayer2.source.hls">MediaParserHlsMediaChunkExtractor</a></li>
@ -768,6 +782,7 @@
<li><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueNavigator.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><span class="interfaceName">MediaSessionConnector.QueueNavigator</span></a></li> <li><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueNavigator.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><span class="interfaceName">MediaSessionConnector.QueueNavigator</span></a></li>
<li><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.RatingCallback.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><span class="interfaceName">MediaSessionConnector.RatingCallback</span></a></li> <li><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.RatingCallback.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><span class="interfaceName">MediaSessionConnector.RatingCallback</span></a></li>
<li><a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSource</span></a></li> <li><a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSource</span></a></li>
<li><a href="com/google/android/exoplayer2/source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSource.Factory</span></a></li>
<li><a href="com/google/android/exoplayer2/source/MediaSource.MediaPeriodId.html" title="class in com.google.android.exoplayer2.source">MediaSource.MediaPeriodId</a></li> <li><a href="com/google/android/exoplayer2/source/MediaSource.MediaPeriodId.html" title="class in com.google.android.exoplayer2.source">MediaSource.MediaPeriodId</a></li>
<li><a href="com/google/android/exoplayer2/source/MediaSource.MediaSourceCaller.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSource.MediaSourceCaller</span></a></li> <li><a href="com/google/android/exoplayer2/source/MediaSource.MediaSourceCaller.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSource.MediaSourceCaller</span></a></li>
<li><a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSourceEventListener</span></a></li> <li><a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">MediaSourceEventListener</span></a></li>
@ -852,7 +867,6 @@
<li><a href="com/google/android/exoplayer2/Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></li> <li><a href="com/google/android/exoplayer2/Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></li>
<li><a href="com/google/android/exoplayer2/Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a></li> <li><a href="com/google/android/exoplayer2/Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a></li>
<li><a href="com/google/android/exoplayer2/Player.Event.html" title="annotation in com.google.android.exoplayer2">Player.Event</a></li> <li><a href="com/google/android/exoplayer2/Player.Event.html" title="annotation in com.google.android.exoplayer2">Player.Event</a></li>
<li><a href="com/google/android/exoplayer2/Player.EventListener.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">Player.EventListener</span></a></li>
<li><a href="com/google/android/exoplayer2/Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></li> <li><a href="com/google/android/exoplayer2/Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></li>
<li><a href="com/google/android/exoplayer2/Player.Listener.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">Player.Listener</span></a></li> <li><a href="com/google/android/exoplayer2/Player.Listener.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">Player.Listener</span></a></li>
<li><a href="com/google/android/exoplayer2/Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></li> <li><a href="com/google/android/exoplayer2/Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></li>
@ -867,6 +881,7 @@
<li><a href="com/google/android/exoplayer2/ui/PlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui"><span class="interfaceName">PlayerControlView.VisibilityListener</span></a></li> <li><a href="com/google/android/exoplayer2/ui/PlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui"><span class="interfaceName">PlayerControlView.VisibilityListener</span></a></li>
<li><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.html" title="class in com.google.android.exoplayer2.source.dash">PlayerEmsgHandler</a></li> <li><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.html" title="class in com.google.android.exoplayer2.source.dash">PlayerEmsgHandler</a></li>
<li><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.PlayerEmsgCallback.html" title="interface in com.google.android.exoplayer2.source.dash"><span class="interfaceName">PlayerEmsgHandler.PlayerEmsgCallback</span></a></li> <li><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.PlayerEmsgCallback.html" title="interface in com.google.android.exoplayer2.source.dash"><span class="interfaceName">PlayerEmsgHandler.PlayerEmsgCallback</span></a></li>
<li><a href="com/google/android/exoplayer2/analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a></li>
<li><a href="com/google/android/exoplayer2/PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></li> <li><a href="com/google/android/exoplayer2/PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></li>
<li><a href="com/google/android/exoplayer2/PlayerMessage.Sender.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">PlayerMessage.Sender</span></a></li> <li><a href="com/google/android/exoplayer2/PlayerMessage.Sender.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">PlayerMessage.Sender</span></a></li>
<li><a href="com/google/android/exoplayer2/PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">PlayerMessage.Target</span></a></li> <li><a href="com/google/android/exoplayer2/PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">PlayerMessage.Target</span></a></li>
@ -911,7 +926,9 @@
<li><a href="com/google/android/exoplayer2/RendererCapabilities.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">RendererCapabilities</span></a></li> <li><a href="com/google/android/exoplayer2/RendererCapabilities.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">RendererCapabilities</span></a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a></li> <li><a href="com/google/android/exoplayer2/RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a></li> <li><a href="com/google/android/exoplayer2/RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></li> <li><a href="com/google/android/exoplayer2/RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a></li>
<li><a href="com/google/android/exoplayer2/RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></li> <li><a href="com/google/android/exoplayer2/RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></li>
<li><a href="com/google/android/exoplayer2/RendererConfiguration.html" title="class in com.google.android.exoplayer2">RendererConfiguration</a></li> <li><a href="com/google/android/exoplayer2/RendererConfiguration.html" title="class in com.google.android.exoplayer2">RendererConfiguration</a></li>
<li><a href="com/google/android/exoplayer2/RenderersFactory.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">RenderersFactory</span></a></li> <li><a href="com/google/android/exoplayer2/RenderersFactory.html" title="interface in com.google.android.exoplayer2"><span class="interfaceName">RenderersFactory</span></a></li>
@ -969,8 +986,9 @@
<li><a href="com/google/android/exoplayer2/extractor/ts/SeiReader.html" title="class in com.google.android.exoplayer2.extractor.ts">SeiReader</a></li> <li><a href="com/google/android/exoplayer2/extractor/ts/SeiReader.html" title="class in com.google.android.exoplayer2.extractor.ts">SeiReader</a></li>
<li><a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">SequenceableLoader</span></a></li> <li><a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">SequenceableLoader</span></a></li>
<li><a href="com/google/android/exoplayer2/source/SequenceableLoader.Callback.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">SequenceableLoader.Callback</span></a></li> <li><a href="com/google/android/exoplayer2/source/SequenceableLoader.Callback.html" title="interface in com.google.android.exoplayer2.source"><span class="interfaceName">SequenceableLoader.Callback</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ads/ServerSideInsertedAdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideInsertedAdsMediaSource</a></li> <li><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/ads/ServerSideInsertedAdsUtil.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideInsertedAdsUtil</a></li> <li><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater.html" title="interface in com.google.android.exoplayer2.source.ads"><span class="interfaceName">ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater</span></a></li>
<li><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionUtil.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionUtil</a></li>
<li><a href="com/google/android/exoplayer2/source/dash/manifest/ServiceDescriptionElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">ServiceDescriptionElement</a></li> <li><a href="com/google/android/exoplayer2/source/dash/manifest/ServiceDescriptionElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">ServiceDescriptionElement</a></li>
<li><a href="com/google/android/exoplayer2/ext/cast/SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast"><span class="interfaceName">SessionAvailabilityListener</span></a></li> <li><a href="com/google/android/exoplayer2/ext/cast/SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast"><span class="interfaceName">SessionAvailabilityListener</span></a></li>
<li><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.html" title="class in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder</a></li> <li><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.html" title="class in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder</a></li>
@ -1132,13 +1150,14 @@
<li><a href="com/google/android/exoplayer2/trackselection/TrackSelectorResult.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectorResult</a></li> <li><a href="com/google/android/exoplayer2/trackselection/TrackSelectorResult.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectorResult</a></li>
<li><a href="com/google/android/exoplayer2/TracksInfo.html" title="class in com.google.android.exoplayer2">TracksInfo</a></li> <li><a href="com/google/android/exoplayer2/TracksInfo.html" title="class in com.google.android.exoplayer2">TracksInfo</a></li>
<li><a href="com/google/android/exoplayer2/TracksInfo.TrackGroupInfo.html" title="class in com.google.android.exoplayer2">TracksInfo.TrackGroupInfo</a></li> <li><a href="com/google/android/exoplayer2/TracksInfo.TrackGroupInfo.html" title="class in com.google.android.exoplayer2">TracksInfo.TrackGroupInfo</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TranscodingTransformer.html" title="class in com.google.android.exoplayer2.transformer">TranscodingTransformer</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TranscodingTransformer.Builder.html" title="class in com.google.android.exoplayer2.transformer">TranscodingTransformer.Builder</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TranscodingTransformer.Listener.html" title="interface in com.google.android.exoplayer2.transformer"><span class="interfaceName">TranscodingTransformer.Listener</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/TranscodingTransformer.ProgressState.html" title="annotation in com.google.android.exoplayer2.transformer">TranscodingTransformer.ProgressState</a></li>
<li><a href="com/google/android/exoplayer2/upstream/TransferListener.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">TransferListener</span></a></li> <li><a href="com/google/android/exoplayer2/upstream/TransferListener.html" title="interface in com.google.android.exoplayer2.upstream"><span class="interfaceName">TransferListener</span></a></li>
<li><a href="com/google/android/exoplayer2/transformer/TransformationException.html" title="class in com.google.android.exoplayer2.transformer">TransformationException</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TransformationException.ErrorCode.html" title="annotation in com.google.android.exoplayer2.transformer">TransformationException.ErrorCode</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TransformationRequest.html" title="class in com.google.android.exoplayer2.transformer">TransformationRequest</a></li>
<li><a href="com/google/android/exoplayer2/transformer/TransformationRequest.Builder.html" title="class in com.google.android.exoplayer2.transformer">TransformationRequest.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.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.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.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/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> <li><a href="com/google/android/exoplayer2/extractor/TrueHdSampleRechunker.html" title="class in com.google.android.exoplayer2.extractor">TrueHdSampleRechunker</a></li>
@ -1175,6 +1194,7 @@
<li><a href="com/google/android/exoplayer2/video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></li> <li><a href="com/google/android/exoplayer2/video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></li>
<li><a href="com/google/android/exoplayer2/extractor/VorbisBitArray.html" title="class in com.google.android.exoplayer2.extractor">VorbisBitArray</a></li> <li><a href="com/google/android/exoplayer2/extractor/VorbisBitArray.html" title="class in com.google.android.exoplayer2.extractor">VorbisBitArray</a></li>
<li><a href="com/google/android/exoplayer2/metadata/flac/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.flac">VorbisComment</a></li> <li><a href="com/google/android/exoplayer2/metadata/flac/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.flac">VorbisComment</a></li>
<li><a href="com/google/android/exoplayer2/metadata/vorbis/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.vorbis">VorbisComment</a></li>
<li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil</a></li> <li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil</a></li>
<li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.CommentHeader.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.CommentHeader</a></li> <li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.CommentHeader.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.CommentHeader</a></li>
<li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.Mode.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.Mode</a></li> <li><a href="com/google/android/exoplayer2/extractor/VorbisUtil.Mode.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.Mode</a></li>

View File

@ -268,158 +268,162 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colLast">&nbsp;</td> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<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">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/offline/package-summary.html">com.google.android.exoplayer2.offline</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/robolectric/package-summary.html">com.google.android.exoplayer2.robolectric</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/scheduler/package-summary.html">com.google.android.exoplayer2.scheduler</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/package-summary.html">com.google.android.exoplayer2.source</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/ads/package-summary.html">com.google.android.exoplayer2.source.ads</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/chunk/package-summary.html">com.google.android.exoplayer2.source.chunk</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/dash/package-summary.html">com.google.android.exoplayer2.source.dash</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/hls/package-summary.html">com.google.android.exoplayer2.source.hls</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/mediaparser/package-summary.html">com.google.android.exoplayer2.source.mediaparser</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/rtsp/package-summary.html">com.google.android.exoplayer2.source.rtsp</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/source/smoothstreaming/package-summary.html">com.google.android.exoplayer2.source.smoothstreaming</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<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> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/testutil/package-summary.html">com.google.android.exoplayer2.testutil</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/testutil/truth/package-summary.html">com.google.android.exoplayer2.testutil.truth</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/package-summary.html">com.google.android.exoplayer2.text</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/cea/package-summary.html">com.google.android.exoplayer2.text.cea</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/dvb/package-summary.html">com.google.android.exoplayer2.text.dvb</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/pgs/package-summary.html">com.google.android.exoplayer2.text.pgs</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/span/package-summary.html">com.google.android.exoplayer2.text.span</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/ssa/package-summary.html">com.google.android.exoplayer2.text.ssa</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/subrip/package-summary.html">com.google.android.exoplayer2.text.subrip</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/ttml/package-summary.html">com.google.android.exoplayer2.text.ttml</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/tx3g/package-summary.html">com.google.android.exoplayer2.text.tx3g</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/text/webvtt/package-summary.html">com.google.android.exoplayer2.text.webvtt</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/trackselection/package-summary.html">com.google.android.exoplayer2.trackselection</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/transformer/package-summary.html">com.google.android.exoplayer2.transformer</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/ui/package-summary.html">com.google.android.exoplayer2.ui</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/package-summary.html">com.google.android.exoplayer2.upstream</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/cache/package-summary.html">com.google.android.exoplayer2.upstream.cache</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/upstream/crypto/package-summary.html">com.google.android.exoplayer2.upstream.crypto</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/util/package-summary.html">com.google.android.exoplayer2.util</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/video/package-summary.html">com.google.android.exoplayer2.video</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<th class="colFirst" scope="row"><a href="com/google/android/exoplayer2/video/spherical/package-summary.html">com.google.android.exoplayer2.video.spherical</a></th> <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> <td class="colLast">&nbsp;</td>
</tr> </tr>

File diff suppressed because one or more lines are too long

View File

@ -25,7 +25,7 @@
catch(err) { catch(err) {
} }
//--> //-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10}; var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor"; var altColor = "altColor";
var rowColor = "rowColor"; var rowColor = "rowColor";
@ -166,7 +166,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- --> <!-- -->
</a> </a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.<a href="RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3> <h3>Nested classes/interfaces 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.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a>, <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a>, <a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></code></li> <code><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a>, <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a>, <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a>, <a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></code></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -190,7 +190,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- --> <!-- -->
</a> </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> <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#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#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_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> </ul>
</li> </li>
</ul> </ul>
@ -316,56 +316,71 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</td> </td>
</tr> </tr>
<tr id="i10" class="altColor"> <tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPlayerId()">getPlayerId</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player using this renderer.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReadingPositionUs()">getReadingPositionUs</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReadingPositionUs()">getReadingPositionUs</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the renderer time up to which the renderer has read samples, in microseconds, or <a href="C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a> if the renderer has read the current <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> to the end.</div> <div class="block">Returns the renderer time up to which the renderer has read samples, in microseconds, or <a href="C.html#TIME_END_OF_SOURCE"><code>C.TIME_END_OF_SOURCE</code></a> if the renderer has read the current <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> to the end.</div>
</td> </td>
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getState()">getState</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getState()">getState</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the current state of the renderer.</div> <div class="block">Returns the current state of the renderer.</div>
</td> </td>
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a></code></td> <td class="colFirst"><code><a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStream()">getStream</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStream()">getStream</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> being consumed, or null if the renderer is disabled.</div> <div class="block">Returns the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> being consumed, or null if the renderer is disabled.</div>
</td> </td>
</tr> </tr>
<tr id="i13" class="rowColor"> <tr id="i14" class="altColor">
<td class="colFirst"><code>protected <a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]</code></td> <td class="colFirst"><code>protected <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="#getStreamFormats()">getStreamFormats</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStreamFormats()">getStreamFormats</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the formats of the currently enabled stream.</div> <div class="block">Returns the formats of the currently enabled stream.</div>
</td> </td>
</tr> </tr>
<tr id="i14" class="altColor"> <tr id="i15" class="rowColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.TrackType int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.TrackType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackType()">getTrackType</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackType()">getTrackType</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the track type that the renderer handles.</div> <div class="block">Returns the track type that the renderer handles.</div>
</td> </td>
</tr> </tr>
<tr id="i15" class="rowColor"> <tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(int,java.lang.Object)">handleMessage</a></span>&#8203;(int&nbsp;messageType, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></span>&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
<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;message)</code></th> <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;message)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Handles a message delivered to the target.</div> <div class="block">Handles a message delivered to the target.</div>
</td> </td>
</tr> </tr>
<tr id="i16" class="altColor"> <tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasReadStreamToEnd()">hasReadStreamToEnd</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasReadStreamToEnd()">hasReadStreamToEnd</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns whether the renderer has read the current <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> to the end.</div> <div class="block">Returns whether the renderer has read the current <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> to the end.</div>
</td> </td>
</tr> </tr>
<tr id="i17" class="rowColor"> <tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(int,com.google.android.exoplayer2.analytics.PlayerId)">init</a></span>&#8203;(int&nbsp;index,
<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">Initializes the renderer for playback with a player.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -373,28 +388,28 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
renderer is next disabled or reset.</div> renderer is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i20" class="altColor">
<td class="colFirst"><code>protected boolean</code></td> <td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSourceReady()">isSourceReady</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSourceReady()">isSourceReady</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns whether the upstream source is ready.</div> <div class="block">Returns whether the upstream source is ready.</div>
</td> </td>
</tr> </tr>
<tr id="i19" class="rowColor"> <tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div> <div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i20" class="altColor"> <tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisabled()">onDisabled</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisabled()">onDisabled</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is disabled.</div> <div class="block">Called when the renderer is disabled.</div>
</td> </td>
</tr> </tr>
<tr id="i21" class="rowColor"> <tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEnabled(boolean,boolean)">onEnabled</a></span>&#8203;(boolean&nbsp;joining, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEnabled(boolean,boolean)">onEnabled</a></span>&#8203;(boolean&nbsp;joining,
boolean&nbsp;mayRenderStartOfStream)</code></th> boolean&nbsp;mayRenderStartOfStream)</code></th>
@ -402,7 +417,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Called when the renderer is enabled.</div> <div class="block">Called when the renderer is enabled.</div>
</td> </td>
</tr> </tr>
<tr id="i22" class="altColor"> <tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td> <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, <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> boolean&nbsp;joining)</code></th>
@ -410,28 +425,28 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Called when the position is reset.</div> <div class="block">Called when the position is reset.</div>
</td> </td>
</tr> </tr>
<tr id="i23" class="rowColor"> <tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onReset()">onReset</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is reset.</div> <div class="block">Called when the renderer is reset.</div>
</td> </td>
</tr> </tr>
<tr id="i24" class="altColor"> <tr id="i26" class="altColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStarted()">onStarted</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is started.</div> <div class="block">Called when the renderer is started.</div>
</td> </td>
</tr> </tr>
<tr id="i25" class="rowColor"> <tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStopped()">onStopped</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is stopped.</div> <div class="block">Called when the renderer is stopped.</div>
</td> </td>
</tr> </tr>
<tr id="i26" class="altColor"> <tr id="i28" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStreamChanged(com.google.android.exoplayer2.Format%5B%5D,long,long)">onStreamChanged</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStreamChanged(com.google.android.exoplayer2.Format%5B%5D,long,long)">onStreamChanged</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats,
long&nbsp;startPositionUs, long&nbsp;startPositionUs,
@ -440,16 +455,16 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Called when the renderer's stream has changed.</div> <div class="block">Called when the renderer's stream has changed.</div>
</td> </td>
</tr> </tr>
<tr id="i27" class="rowColor"> <tr id="i29" class="rowColor">
<td class="colFirst"><code>protected int</code></td> <td class="colFirst"><code>protected @com.google.android.exoplayer2.source.SampleStream.ReadDataResult int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,int)">readSource</a></span>&#8203;(<a href="FormatHolder.html" title="class in com.google.android.exoplayer2">FormatHolder</a>&nbsp;formatHolder, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)">readSource</a></span>&#8203;(<a href="FormatHolder.html" title="class in com.google.android.exoplayer2">FormatHolder</a>&nbsp;formatHolder,
<a href="decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>&nbsp;buffer, <a href="decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>&nbsp;buffer,
int&nbsp;readFlags)</code></th> @com.google.android.exoplayer2.source.SampleStream.ReadFlags int&nbsp;readFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Reads from the enabled upstream source.</div> <div class="block">Reads from the enabled upstream source.</div>
</td> </td>
</tr> </tr>
<tr id="i28" class="altColor"> <tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats,
<a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream, <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream,
@ -459,21 +474,21 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div> <div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div>
</td> </td>
</tr> </tr>
<tr id="i29" class="rowColor"> <tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Forces the renderer to give up any resources (e.g.</div> <div class="block">Forces the renderer to give up any resources (e.g.</div>
</td> </td>
</tr> </tr>
<tr id="i30" class="altColor"> <tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Signals to the renderer that a position discontinuity has occurred.</div> <div class="block">Signals to the renderer that a position discontinuity has occurred.</div>
</td> </td>
</tr> </tr>
<tr id="i31" class="rowColor"> <tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -481,14 +496,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
before it is next disabled or reset.</div> before it is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i32" class="altColor"> <tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIndex(int)">setIndex</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Sets the index of this renderer within the player.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected int</code></td> <td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#skipSource(long)">skipSource</a></span>&#8203;(long&nbsp;positionUs)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#skipSource(long)">skipSource</a></span>&#8203;(long&nbsp;positionUs)</code></th>
<td class="colLast"> <td class="colLast">
@ -496,7 +504,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<code>positionUs</code> is beyond it.</div> <code>positionUs</code> is beyond it.</div>
</td> </td>
</tr> </tr>
<tr id="i34" class="altColor"> <tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start()">start</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start()">start</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -504,15 +512,15 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
rendered.</div> rendered.</div>
</td> </td>
</tr> </tr>
<tr id="i35" class="rowColor"> <tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Stops the renderer, transitioning it to the <a href="Renderer.html#STATE_ENABLED"><code>Renderer.STATE_ENABLED</code></a> state.</div> <div class="block">Stops the renderer, transitioning it to the <a href="Renderer.html#STATE_ENABLED"><code>Renderer.STATE_ENABLED</code></a> state.</div>
</td> </td>
</tr> </tr>
<tr id="i36" class="altColor"> <tr id="i37" class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
@ -619,20 +627,22 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setIndex(int)"> <a id="init(int,com.google.android.exoplayer2.analytics.PlayerId)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setIndex</h4> <h4>init</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;setIndex&#8203;(int&nbsp;index)</pre> <pre class="methodSignature">public final&nbsp;void&nbsp;init&#8203;(int&nbsp;index,
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Renderer.html#setIndex(int)">Renderer</a></code></span></div> <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;playerId)</pre>
<div class="block">Sets the index of this renderer within the player.</div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Renderer.html#init(int,com.google.android.exoplayer2.analytics.PlayerId)">Renderer</a></code></span></div>
<div class="block">Initializes the renderer for playback with a player.</div>
<dl> <dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Renderer.html#setIndex(int)">setIndex</a></code>&nbsp;in interface&nbsp;<code><a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></code></dd> <dd><code><a href="Renderer.html#init(int,com.google.android.exoplayer2.analytics.PlayerId)">init</a></code>&nbsp;in interface&nbsp;<code><a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The renderer index.</dd> <dd><code>index</code> - The renderer index within the player.</dd>
<dd><code>playerId</code> - The <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -950,9 +960,8 @@ public final&nbsp;<a href="source/SampleStream.html" title="interface in com.goo
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>supportsMixedMimeTypeAdaptation</h4> <h4>supportsMixedMimeTypeAdaptation</h4>
<pre class="methodSignature"><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">@AdaptiveSupport</a> <pre class="methodSignature">public&nbsp;@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;supportsMixedMimeTypeAdaptation()
public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation() throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsMixedMimeTypeAdaptation()">RendererCapabilities</a></code></span></div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsMixedMimeTypeAdaptation()">RendererCapabilities</a></code></span></div>
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
that have different MIME types.</div> that have different MIME types.</div>
@ -967,22 +976,21 @@ public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation()
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="handleMessage(int,java.lang.Object)"> <a id="handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>handleMessage</h4> <h4>handleMessage</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;handleMessage&#8203;(<a href="Renderer.MessageType.html" title="annotation in com.google.android.exoplayer2">@MessageType</a> <pre class="methodSignature">public&nbsp;void&nbsp;handleMessage&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
int&nbsp;messageType,
@Nullable @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;message) <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;message)
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre> throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)">PlayerMessage.Target</a></code></span></div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">PlayerMessage.Target</a></code></span></div>
<div class="block">Handles a message delivered to the target.</div> <div class="block">Handles a message delivered to the target.</div>
<dl> <dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)">handleMessage</a></code>&nbsp;in interface&nbsp;<code><a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></code></dd> <dd><code><a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></code>&nbsp;in interface&nbsp;<code><a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>messageType</code> - The message type.</dd> <dd><code>messageType</code> - The message type.</dd>
<dd><code>message</code> - The message payload.</dd> <dd><code>message</code> - The message payload.</dd>
@ -1033,7 +1041,7 @@ public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation()
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>formats</code> - The enabled formats.</dd> <dd><code>formats</code> - The enabled formats.</dd>
<dd><code>startPositionUs</code> - The start position of the new stream in renderer time (microseconds).</dd> <dd><code>startPositionUs</code> - The start position of the new stream in renderer time (microseconds).</dd>
<dd><code>offsetUs</code> - The offset that will be added to the timestamps of buffers read via <a href="#readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,int)"><code>readSource(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, int)</code></a> so that decoder input buffers have monotonically increasing timestamps.</dd> <dd><code>offsetUs</code> - The offset that will be added to the timestamps of buffers read via <a href="#readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)"><code>readSource(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)</code></a> so that decoder input buffers have monotonically increasing timestamps.</dd>
<dt><span class="throwsLabel">Throws:</span></dt> <dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code> - If an error occurs.</dd> <dd><code><a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code> - If an error occurs.</dd>
</dl> </dl>
@ -1168,7 +1176,21 @@ public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation()
<li class="blockList"> <li class="blockList">
<h4>getIndex</h4> <h4>getIndex</h4>
<pre class="methodSignature">protected final&nbsp;int&nbsp;getIndex()</pre> <pre class="methodSignature">protected final&nbsp;int&nbsp;getIndex()</pre>
<div class="block">Returns the index of the renderer within the player.</div> <div class="block">Returns the index of the renderer within the player.
<p>Must only be used after the renderer has been initialized by the player.</div>
</li>
</ul>
<a id="getPlayerId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlayerId</h4>
<pre class="methodSignature">protected final&nbsp;<a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;getPlayerId()</pre>
<div class="block">Returns the <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player using this renderer.
<p>Must only be used after the renderer has been initialized by the player.</div>
</li> </li>
</ul> </ul>
<a id="createRendererException(java.lang.Throwable,com.google.android.exoplayer2.Format,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)"> <a id="createRendererException(java.lang.Throwable,com.google.android.exoplayer2.Format,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">
@ -1222,17 +1244,15 @@ public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation()
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,int)"> <a id="readSource(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>readSource</h4> <h4>readSource</h4>
<pre class="methodSignature"><a href="source/SampleStream.ReadDataResult.html" title="annotation in com.google.android.exoplayer2.source">@ReadDataResult</a> <pre class="methodSignature">protected final&nbsp;@com.google.android.exoplayer2.source.SampleStream.ReadDataResult int&nbsp;readSource&#8203;(<a href="FormatHolder.html" title="class in com.google.android.exoplayer2">FormatHolder</a>&nbsp;formatHolder,
protected final&nbsp;int&nbsp;readSource&#8203;(<a href="FormatHolder.html" title="class in com.google.android.exoplayer2">FormatHolder</a>&nbsp;formatHolder, <a href="decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>&nbsp;buffer,
<a href="decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>&nbsp;buffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int&nbsp;readFlags)</pre>
<a href="source/SampleStream.ReadFlags.html" title="annotation in com.google.android.exoplayer2.source">@ReadFlags</a>
int&nbsp;readFlags)</pre>
<div class="block">Reads from the enabled upstream source. If the upstream source has been read to the end then <div class="block">Reads from the enabled upstream source. If the upstream source has been read to the end then
<a href="C.html#RESULT_BUFFER_READ"><code>C.RESULT_BUFFER_READ</code></a> is only returned if <a href="#setCurrentStreamFinal()"><code>setCurrentStreamFinal()</code></a> has been <a href="C.html#RESULT_BUFFER_READ"><code>C.RESULT_BUFFER_READ</code></a> is only returned if <a href="#setCurrentStreamFinal()"><code>setCurrentStreamFinal()</code></a> has been
called. <a href="C.html#RESULT_NOTHING_READ"><code>C.RESULT_NOTHING_READ</code></a> is returned otherwise. called. <a href="C.html#RESULT_NOTHING_READ"><code>C.RESULT_NOTHING_READ</code></a> is returned otherwise.

View File

@ -238,7 +238,7 @@ extends <a href="https://developer.android.com/reference/android/os/Binder.html"
<th class="colLast" scope="col">Description</th> <th class="colLast" scope="col">Description</th>
</tr> </tr>
<tr id="i0" class="altColor"> <tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&gt;</code></td> <td class="colFirst"><code>static <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getList(android.os.IBinder)">getList</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/IBinder.html" title="class or interface in android.os" class="externalLink" target="_top">IBinder</a>&nbsp;binder)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getList(android.os.IBinder)">getList</a></span>&#8203;(<a href="https://developer.android.com/reference/android/os/IBinder.html" title="class or interface in android.os" class="externalLink" target="_top">IBinder</a>&nbsp;binder)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Gets a list of <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundles</code></a> from a <a href="BundleListRetriever.html" title="class in com.google.android.exoplayer2" target="_top"><code>BundleListRetriever</code></a>.</div> <div class="block">Gets a list of <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundles</code></a> from a <a href="BundleListRetriever.html" title="class in com.google.android.exoplayer2" target="_top"><code>BundleListRetriever</code></a>.</div>
@ -329,7 +329,7 @@ extends <a href="https://developer.android.com/reference/android/os/Binder.html"
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>getList</h4> <h4>getList</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink">Bundle</a>&gt;&nbsp;getList&#8203;(<a href="https://developer.android.com/reference/android/os/IBinder.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top">IBinder</a>&nbsp;binder)</pre> <pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink">Bundle</a>&gt;&nbsp;getList&#8203;(<a href="https://developer.android.com/reference/android/os/IBinder.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top">IBinder</a>&nbsp;binder)</pre>
<div class="block">Gets a list of <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundles</code></a> from a <a href="BundleListRetriever.html" title="class in com.google.android.exoplayer2" target="_top"><code>BundleListRetriever</code></a>.</div> <div class="block">Gets a list of <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundles</code></a> from a <a href="BundleListRetriever.html" title="class in com.google.android.exoplayer2" target="_top"><code>BundleListRetriever</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>

File diff suppressed because one or more lines are too long

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.BufferFlags</span></pre> public static @interface <span class="memberNameLabel">C.BufferFlags</span></pre>
<div class="block">Flags which can apply to a buffer containing a media sample. Possible flag values are <a href="C.html#BUFFER_FLAG_KEY_FRAME"><code>C.BUFFER_FLAG_KEY_FRAME</code></a>, <a href="C.html#BUFFER_FLAG_END_OF_STREAM"><code>C.BUFFER_FLAG_END_OF_STREAM</code></a>, <a href="C.html#BUFFER_FLAG_LAST_SAMPLE"><code>C.BUFFER_FLAG_LAST_SAMPLE</code></a>, <div class="block">Flags which can apply to a buffer containing a media sample. Possible flag values are <a href="C.html#BUFFER_FLAG_KEY_FRAME"><code>C.BUFFER_FLAG_KEY_FRAME</code></a>, <a href="C.html#BUFFER_FLAG_END_OF_STREAM"><code>C.BUFFER_FLAG_END_OF_STREAM</code></a>, <a href="C.html#BUFFER_FLAG_LAST_SAMPLE"><code>C.BUFFER_FLAG_LAST_SAMPLE</code></a>,
<a href="C.html#BUFFER_FLAG_ENCRYPTED"><code>C.BUFFER_FLAG_ENCRYPTED</code></a> and <a href="C.html#BUFFER_FLAG_DECODE_ONLY"><code>C.BUFFER_FLAG_DECODE_ONLY</code></a>.</div> <a href="C.html#BUFFER_FLAG_ENCRYPTED"><code>C.BUFFER_FLAG_ENCRYPTED</code></a> and <a href="C.html#BUFFER_FLAG_DECODE_ONLY"><code>C.BUFFER_FLAG_DECODE_ONLY</code></a>.</div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.ColorRange</span></pre> public static @interface <span class="memberNameLabel">C.ColorRange</span></pre>
<div class="block">Video color range. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_RANGE_LIMITED"><code>C.COLOR_RANGE_LIMITED</code></a> or <a href="C.html#COLOR_RANGE_FULL"><code>C.COLOR_RANGE_FULL</code></a>.</div> <div class="block">Video color range. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_RANGE_LIMITED"><code>C.COLOR_RANGE_LIMITED</code></a> or <a href="C.html#COLOR_RANGE_FULL"><code>C.COLOR_RANGE_FULL</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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> 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_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>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.ColorTransfer</span></pre> public static @interface <span class="memberNameLabel">C.ColorTransfer</span></pre>
<div class="block">Video color transfer characteristics. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_TRANSFER_SDR"><code>C.COLOR_TRANSFER_SDR</code></a>, <a href="C.html#COLOR_TRANSFER_ST2084"><code>C.COLOR_TRANSFER_ST2084</code></a> or <a href="C.html#COLOR_TRANSFER_HLG"><code>C.COLOR_TRANSFER_HLG</code></a>.</div> <div class="block">Video color transfer characteristics. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#COLOR_TRANSFER_SDR"><code>C.COLOR_TRANSFER_SDR</code></a>, <a href="C.html#COLOR_TRANSFER_ST2084"><code>C.COLOR_TRANSFER_ST2084</code></a> or <a href="C.html#COLOR_TRANSFER_HLG"><code>C.COLOR_TRANSFER_HLG</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.ContentType</span></pre> public static @interface <span class="memberNameLabel">C.ContentType</span></pre>
<div class="block">Represents a streaming or other media type. One of <a href="C.html#TYPE_DASH"><code>C.TYPE_DASH</code></a>, <a href="C.html#TYPE_SS"><code>C.TYPE_SS</code></a>, <a href="C.html#TYPE_HLS"><code>C.TYPE_HLS</code></a>, <a href="C.html#TYPE_RTSP"><code>C.TYPE_RTSP</code></a> or <a href="C.html#TYPE_OTHER"><code>C.TYPE_OTHER</code></a>.</div> <div class="block">Represents a streaming or other media type. One of <a href="C.html#TYPE_DASH"><code>C.TYPE_DASH</code></a>, <a href="C.html#TYPE_SS"><code>C.TYPE_SS</code></a>, <a href="C.html#TYPE_HLS"><code>C.TYPE_HLS</code></a>, <a href="C.html#TYPE_RTSP"><code>C.TYPE_RTSP</code></a> or <a href="C.html#TYPE_OTHER"><code>C.TYPE_OTHER</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.CryptoMode</span></pre> public static @interface <span class="memberNameLabel">C.CryptoMode</span></pre>
<div class="block">Crypto modes for a codec. One of <a href="C.html#CRYPTO_MODE_UNENCRYPTED"><code>C.CRYPTO_MODE_UNENCRYPTED</code></a>, <a href="C.html#CRYPTO_MODE_AES_CTR"><code>C.CRYPTO_MODE_AES_CTR</code></a> <div class="block">Crypto modes for a codec. One of <a href="C.html#CRYPTO_MODE_UNENCRYPTED"><code>C.CRYPTO_MODE_UNENCRYPTED</code></a>, <a href="C.html#CRYPTO_MODE_AES_CTR"><code>C.CRYPTO_MODE_AES_CTR</code></a>
or <a href="C.html#CRYPTO_MODE_AES_CBC"><code>C.CRYPTO_MODE_AES_CBC</code></a>.</div> or <a href="C.html#CRYPTO_MODE_AES_CBC"><code>C.CRYPTO_MODE_AES_CBC</code></a>.</div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.DataType</span></pre> public static @interface <span class="memberNameLabel">C.DataType</span></pre>
<div class="block">Represents a type of data. May be one of <a href="C.html#DATA_TYPE_UNKNOWN"><code>C.DATA_TYPE_UNKNOWN</code></a>, <a href="C.html#DATA_TYPE_MEDIA"><code>C.DATA_TYPE_MEDIA</code></a>, <div class="block">Represents a type of data. May be one of <a href="C.html#DATA_TYPE_UNKNOWN"><code>C.DATA_TYPE_UNKNOWN</code></a>, <a href="C.html#DATA_TYPE_MEDIA"><code>C.DATA_TYPE_MEDIA</code></a>,
<a href="C.html#DATA_TYPE_MEDIA_INITIALIZATION"><code>C.DATA_TYPE_MEDIA_INITIALIZATION</code></a>, <a href="C.html#DATA_TYPE_DRM"><code>C.DATA_TYPE_DRM</code></a>, <a href="C.html#DATA_TYPE_MANIFEST"><code>C.DATA_TYPE_MANIFEST</code></a>, <a href="C.html#DATA_TYPE_MEDIA_INITIALIZATION"><code>C.DATA_TYPE_MEDIA_INITIALIZATION</code></a>, <a href="C.html#DATA_TYPE_DRM"><code>C.DATA_TYPE_DRM</code></a>, <a href="C.html#DATA_TYPE_MANIFEST"><code>C.DATA_TYPE_MANIFEST</code></a>,

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.Encoding</span></pre> public static @interface <span class="memberNameLabel">C.Encoding</span></pre>
<div class="block">Represents an audio encoding, or an invalid or unset value. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <div class="block">Represents an audio encoding, or an invalid or unset value. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>,
<a href="C.html#ENCODING_INVALID"><code>C.ENCODING_INVALID</code></a>, <a href="C.html#ENCODING_PCM_8BIT"><code>C.ENCODING_PCM_8BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT"><code>C.ENCODING_PCM_16BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT_BIG_ENDIAN"><code>C.ENCODING_PCM_16BIT_BIG_ENDIAN</code></a>, <a href="C.html#ENCODING_PCM_24BIT"><code>C.ENCODING_PCM_24BIT</code></a>, <a href="C.html#ENCODING_PCM_32BIT"><code>C.ENCODING_PCM_32BIT</code></a>, <a href="C.html#ENCODING_INVALID"><code>C.ENCODING_INVALID</code></a>, <a href="C.html#ENCODING_PCM_8BIT"><code>C.ENCODING_PCM_8BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT"><code>C.ENCODING_PCM_16BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT_BIG_ENDIAN"><code>C.ENCODING_PCM_16BIT_BIG_ENDIAN</code></a>, <a href="C.html#ENCODING_PCM_24BIT"><code>C.ENCODING_PCM_24BIT</code></a>, <a href="C.html#ENCODING_PCM_32BIT"><code>C.ENCODING_PCM_32BIT</code></a>,

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.FormatSupport</span></pre> public static @interface <span class="memberNameLabel">C.FormatSupport</span></pre>
<div class="block">Level of renderer support for a format. One of <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a>, <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>, <a href="C.html#FORMAT_UNSUPPORTED_DRM"><code>C.FORMAT_UNSUPPORTED_DRM</code></a>, <a href="C.html#FORMAT_UNSUPPORTED_SUBTYPE"><code>C.FORMAT_UNSUPPORTED_SUBTYPE</code></a> or <a href="C.html#FORMAT_UNSUPPORTED_TYPE"><code>C.FORMAT_UNSUPPORTED_TYPE</code></a>.</div> <div class="block">Level of renderer support for a format. One of <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a>, <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>, <a href="C.html#FORMAT_UNSUPPORTED_DRM"><code>C.FORMAT_UNSUPPORTED_DRM</code></a>, <a href="C.html#FORMAT_UNSUPPORTED_SUBTYPE"><code>C.FORMAT_UNSUPPORTED_SUBTYPE</code></a> or <a href="C.html#FORMAT_UNSUPPORTED_TYPE"><code>C.FORMAT_UNSUPPORTED_TYPE</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.NetworkType</span></pre> public static @interface <span class="memberNameLabel">C.NetworkType</span></pre>
<div class="block">Network connection type. One of <a href="C.html#NETWORK_TYPE_UNKNOWN"><code>C.NETWORK_TYPE_UNKNOWN</code></a>, <a href="C.html#NETWORK_TYPE_OFFLINE"><code>C.NETWORK_TYPE_OFFLINE</code></a>, <div class="block">Network connection type. One of <a href="C.html#NETWORK_TYPE_UNKNOWN"><code>C.NETWORK_TYPE_UNKNOWN</code></a>, <a href="C.html#NETWORK_TYPE_OFFLINE"><code>C.NETWORK_TYPE_OFFLINE</code></a>,
<a href="C.html#NETWORK_TYPE_WIFI"><code>C.NETWORK_TYPE_WIFI</code></a>, <a href="C.html#NETWORK_TYPE_2G"><code>C.NETWORK_TYPE_2G</code></a>, <a href="C.html#NETWORK_TYPE_3G"><code>C.NETWORK_TYPE_3G</code></a>, <a href="C.html#NETWORK_TYPE_4G"><code>C.NETWORK_TYPE_4G</code></a>, <a href="C.html#NETWORK_TYPE_5G_SA"><code>C.NETWORK_TYPE_5G_SA</code></a>, <a href="C.html#NETWORK_TYPE_5G_NSA"><code>C.NETWORK_TYPE_5G_NSA</code></a>, <a href="C.html#NETWORK_TYPE_CELLULAR_UNKNOWN"><code>C.NETWORK_TYPE_CELLULAR_UNKNOWN</code></a>, <a href="C.html#NETWORK_TYPE_ETHERNET"><code>C.NETWORK_TYPE_ETHERNET</code></a> or <a href="C.html#NETWORK_TYPE_OTHER"><code>C.NETWORK_TYPE_OTHER</code></a>.</div> <a href="C.html#NETWORK_TYPE_WIFI"><code>C.NETWORK_TYPE_WIFI</code></a>, <a href="C.html#NETWORK_TYPE_2G"><code>C.NETWORK_TYPE_2G</code></a>, <a href="C.html#NETWORK_TYPE_3G"><code>C.NETWORK_TYPE_3G</code></a>, <a href="C.html#NETWORK_TYPE_4G"><code>C.NETWORK_TYPE_4G</code></a>, <a href="C.html#NETWORK_TYPE_5G_SA"><code>C.NETWORK_TYPE_5G_SA</code></a>, <a href="C.html#NETWORK_TYPE_5G_NSA"><code>C.NETWORK_TYPE_5G_NSA</code></a>, <a href="C.html#NETWORK_TYPE_CELLULAR_UNKNOWN"><code>C.NETWORK_TYPE_CELLULAR_UNKNOWN</code></a>, <a href="C.html#NETWORK_TYPE_ETHERNET"><code>C.NETWORK_TYPE_ETHERNET</code></a> or <a href="C.html#NETWORK_TYPE_OTHER"><code>C.NETWORK_TYPE_OTHER</code></a>.</div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.PcmEncoding</span></pre> public static @interface <span class="memberNameLabel">C.PcmEncoding</span></pre>
<div class="block">Represents a PCM audio encoding, or an invalid or unset value. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <div class="block">Represents a PCM audio encoding, or an invalid or unset value. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>,
<a href="C.html#ENCODING_INVALID"><code>C.ENCODING_INVALID</code></a>, <a href="C.html#ENCODING_PCM_8BIT"><code>C.ENCODING_PCM_8BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT"><code>C.ENCODING_PCM_16BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT_BIG_ENDIAN"><code>C.ENCODING_PCM_16BIT_BIG_ENDIAN</code></a>, <a href="C.html#ENCODING_PCM_24BIT"><code>C.ENCODING_PCM_24BIT</code></a>, <a href="C.html#ENCODING_PCM_32BIT"><code>C.ENCODING_PCM_32BIT</code></a>, <a href="C.html#ENCODING_INVALID"><code>C.ENCODING_INVALID</code></a>, <a href="C.html#ENCODING_PCM_8BIT"><code>C.ENCODING_PCM_8BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT"><code>C.ENCODING_PCM_16BIT</code></a>, <a href="C.html#ENCODING_PCM_16BIT_BIG_ENDIAN"><code>C.ENCODING_PCM_16BIT_BIG_ENDIAN</code></a>, <a href="C.html#ENCODING_PCM_24BIT"><code>C.ENCODING_PCM_24BIT</code></a>, <a href="C.html#ENCODING_PCM_32BIT"><code>C.ENCODING_PCM_32BIT</code></a>,

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.Projection</span></pre> public static @interface <span class="memberNameLabel">C.Projection</span></pre>
<div class="block">Video projection types.</div> <div class="block">Video projection types.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.SelectionReason</span></pre> public static @interface <span class="memberNameLabel">C.SelectionReason</span></pre>
<div class="block">Represents a reason for selection. May be one of <a href="C.html#SELECTION_REASON_UNKNOWN"><code>C.SELECTION_REASON_UNKNOWN</code></a>, <a href="C.html#SELECTION_REASON_INITIAL"><code>C.SELECTION_REASON_INITIAL</code></a>, <a href="C.html#SELECTION_REASON_MANUAL"><code>C.SELECTION_REASON_MANUAL</code></a>, <a href="C.html#SELECTION_REASON_ADAPTIVE"><code>C.SELECTION_REASON_ADAPTIVE</code></a> or <a href="C.html#SELECTION_REASON_TRICK_PLAY"><code>C.SELECTION_REASON_TRICK_PLAY</code></a>. May also be an app-defined <div class="block">Represents a reason for selection. May be one of <a href="C.html#SELECTION_REASON_UNKNOWN"><code>C.SELECTION_REASON_UNKNOWN</code></a>, <a href="C.html#SELECTION_REASON_INITIAL"><code>C.SELECTION_REASON_INITIAL</code></a>, <a href="C.html#SELECTION_REASON_MANUAL"><code>C.SELECTION_REASON_MANUAL</code></a>, <a href="C.html#SELECTION_REASON_ADAPTIVE"><code>C.SELECTION_REASON_ADAPTIVE</code></a> or <a href="C.html#SELECTION_REASON_TRICK_PLAY"><code>C.SELECTION_REASON_TRICK_PLAY</code></a>. May also be an app-defined
value (see <a href="C.html#SELECTION_REASON_CUSTOM_BASE"><code>C.SELECTION_REASON_CUSTOM_BASE</code></a>).</div> value (see <a href="C.html#SELECTION_REASON_CUSTOM_BASE"><code>C.SELECTION_REASON_CUSTOM_BASE</code></a>).</div>

View File

@ -2,7 +2,7 @@
<!-- NewPage --> <!-- NewPage -->
<html lang="en"> <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 --> <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>C.AudioFocusGain (ExoPlayer library)</title> <title>C.SpatializationBehavior (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <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="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style"> <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
@ -19,7 +19,7 @@
<script type="text/javascript"><!-- <script type="text/javascript"><!--
try { try {
if (location.href.indexOf('is-external=true') == -1) { if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="C.AudioFocusGain (ExoPlayer library)"; parent.document.title="C.SpatializationBehavior (ExoPlayer library)";
} }
} }
catch(err) { catch(err) {
@ -106,7 +106,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<main role="main"> <main role="main">
<div class="header"> <div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div> <div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div>
<h2 title="Annotation Type C.AudioFocusGain" class="title">Annotation Type C.AudioFocusGain</h2> <h2 title="Annotation Type C.SpatializationBehavior" class="title">Annotation Type C.SpatializationBehavior</h2>
</div> </div>
<div class="contentContainer"> <div class="contentContainer">
<div class="description"> <div class="description">
@ -115,8 +115,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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>)
public static @interface <span class="memberNameLabel">C.AudioFocusGain</span></pre> <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>)
<div class="block">Audio focus types. One of <a href="C.html#AUDIOFOCUS_NONE"><code>C.AUDIOFOCUS_NONE</code></a>, <a href="C.html#AUDIOFOCUS_GAIN"><code>C.AUDIOFOCUS_GAIN</code></a>, <a href="C.html#AUDIOFOCUS_GAIN_TRANSIENT"><code>C.AUDIOFOCUS_GAIN_TRANSIENT</code></a>, <a href="C.html#AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK"><code>C.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK</code></a> or <a href="C.html#AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE"><code>C.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE</code></a>.</div> public static @interface <span class="memberNameLabel">C.SpatializationBehavior</span></pre>
<div class="block">Represents the behavior affecting whether spatialization will be used.</div>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.StereoMode</span></pre> public static @interface <span class="memberNameLabel">C.StereoMode</span></pre>
<div class="block">The stereo mode for 360/3D/VR videos. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#STEREO_MODE_MONO"><code>C.STEREO_MODE_MONO</code></a>, <a href="C.html#STEREO_MODE_TOP_BOTTOM"><code>C.STEREO_MODE_TOP_BOTTOM</code></a>, <a href="C.html#STEREO_MODE_LEFT_RIGHT"><code>C.STEREO_MODE_LEFT_RIGHT</code></a> or <a href="C.html#STEREO_MODE_STEREO_MESH"><code>C.STEREO_MODE_STEREO_MESH</code></a>.</div> <div class="block">The stereo mode for 360/3D/VR videos. One of <a href="Format.html#NO_VALUE"><code>Format.NO_VALUE</code></a>, <a href="C.html#STEREO_MODE_MONO"><code>C.STEREO_MODE_MONO</code></a>, <a href="C.html#STEREO_MODE_TOP_BOTTOM"><code>C.STEREO_MODE_TOP_BOTTOM</code></a>, <a href="C.html#STEREO_MODE_LEFT_RIGHT"><code>C.STEREO_MODE_LEFT_RIGHT</code></a> or <a href="C.html#STEREO_MODE_STEREO_MESH"><code>C.STEREO_MODE_STEREO_MESH</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.StreamType</span></pre> public static @interface <span class="memberNameLabel">C.StreamType</span></pre>
<div class="block">Stream types for an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink"><code>AudioTrack</code></a>. One of <a href="C.html#STREAM_TYPE_ALARM"><code>C.STREAM_TYPE_ALARM</code></a>, <a href="C.html#STREAM_TYPE_DTMF"><code>C.STREAM_TYPE_DTMF</code></a>, <a href="C.html#STREAM_TYPE_MUSIC"><code>C.STREAM_TYPE_MUSIC</code></a>, <a href="C.html#STREAM_TYPE_NOTIFICATION"><code>C.STREAM_TYPE_NOTIFICATION</code></a>, <a href="C.html#STREAM_TYPE_RING"><code>C.STREAM_TYPE_RING</code></a>, <a href="C.html#STREAM_TYPE_SYSTEM"><code>C.STREAM_TYPE_SYSTEM</code></a>, <a href="C.html#STREAM_TYPE_VOICE_CALL"><code>C.STREAM_TYPE_VOICE_CALL</code></a> or <a href="C.html#STREAM_TYPE_DEFAULT" target="_top"><code>C.STREAM_TYPE_DEFAULT</code></a>.</div> <div class="block">Stream types for an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink"><code>AudioTrack</code></a>. One of <a href="C.html#STREAM_TYPE_ALARM"><code>C.STREAM_TYPE_ALARM</code></a>, <a href="C.html#STREAM_TYPE_DTMF"><code>C.STREAM_TYPE_DTMF</code></a>, <a href="C.html#STREAM_TYPE_MUSIC"><code>C.STREAM_TYPE_MUSIC</code></a>, <a href="C.html#STREAM_TYPE_NOTIFICATION"><code>C.STREAM_TYPE_NOTIFICATION</code></a>, <a href="C.html#STREAM_TYPE_RING"><code>C.STREAM_TYPE_RING</code></a>, <a href="C.html#STREAM_TYPE_SYSTEM"><code>C.STREAM_TYPE_SYSTEM</code></a>, <a href="C.html#STREAM_TYPE_VOICE_CALL"><code>C.STREAM_TYPE_VOICE_CALL</code></a> or <a href="C.html#STREAM_TYPE_DEFAULT" target="_top"><code>C.STREAM_TYPE_DEFAULT</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.VideoChangeFrameRateStrategy</span></pre> public static @interface <span class="memberNameLabel">C.VideoChangeFrameRateStrategy</span></pre>
<div class="block">Strategies for calling <a href="https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float,int,int)" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.setFrameRate(float, int, int)</code></a>.</div> <div class="block">Strategies for calling <a href="https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float,int,int)" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.setFrameRate(float, int, int)</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.VideoOutputMode</span></pre> public static @interface <span class="memberNameLabel">C.VideoOutputMode</span></pre>
<div class="block">Video decoder output modes. Possible modes are <a href="C.html#VIDEO_OUTPUT_MODE_NONE"><code>C.VIDEO_OUTPUT_MODE_NONE</code></a>, <a href="C.html#VIDEO_OUTPUT_MODE_YUV"><code>C.VIDEO_OUTPUT_MODE_YUV</code></a> and <a href="C.html#VIDEO_OUTPUT_MODE_SURFACE_YUV"><code>C.VIDEO_OUTPUT_MODE_SURFACE_YUV</code></a>.</div> <div class="block">Video decoder output modes. Possible modes are <a href="C.html#VIDEO_OUTPUT_MODE_NONE"><code>C.VIDEO_OUTPUT_MODE_NONE</code></a>, <a href="C.html#VIDEO_OUTPUT_MODE_YUV"><code>C.VIDEO_OUTPUT_MODE_YUV</code></a> and <a href="C.html#VIDEO_OUTPUT_MODE_SURFACE_YUV"><code>C.VIDEO_OUTPUT_MODE_SURFACE_YUV</code></a>.</div>
</li> </li>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">C.VideoScalingMode</span></pre> public static @interface <span class="memberNameLabel">C.VideoScalingMode</span></pre>
<div class="block">Video scaling modes for <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based renderers. One of <a href="C.html#VIDEO_SCALING_MODE_SCALE_TO_FIT"><code>C.VIDEO_SCALING_MODE_SCALE_TO_FIT</code></a>, <a href="C.html#VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING" target="_top"><code>C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING</code></a> or <div class="block">Video scaling modes for <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based renderers. One of <a href="C.html#VIDEO_SCALING_MODE_SCALE_TO_FIT"><code>C.VIDEO_SCALING_MODE_SCALE_TO_FIT</code></a>, <a href="C.html#VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING" target="_top"><code>C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING</code></a> or
<a href="C.html#VIDEO_SCALING_MODE_DEFAULT"><code>C.VIDEO_SCALING_MODE_DEFAULT</code></a>.</div> <a href="C.html#VIDEO_SCALING_MODE_DEFAULT"><code>C.VIDEO_SCALING_MODE_DEFAULT</code></a>.</div>

File diff suppressed because it is too large Load Diff

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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">DefaultRenderersFactory.ExtensionRendererMode</span></pre> public static @interface <span class="memberNameLabel">DefaultRenderersFactory.ExtensionRendererMode</span></pre>
<div class="block">Modes for using extension renderers. One of <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_OFF"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF</code></a>, <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_ON"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON</code></a> or <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_PREFER"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER</code></a>.</div> <div class="block">Modes for using extension renderers. One of <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_OFF"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF</code></a>, <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_ON"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON</code></a> or <a href="DefaultRenderersFactory.html#EXTENSION_RENDERER_MODE_PREFER"><code>DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER</code></a>.</div>
</li> </li>

View File

@ -239,25 +239,6 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context)">DefaultRenderersFactory</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context)</code></th> <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context)">DefaultRenderersFactory</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context)</code></th>
<td class="colLast">&nbsp;</td> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,int)">DefaultRenderersFactory</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;extensionRendererMode)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(android.content.Context)"><code>DefaultRenderersFactory(Context)</code></a> and <a href="#setExtensionRendererMode(int)"><code>setExtensionRendererMode(int)</code></a>.</div>
</div>
</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,int,long)">DefaultRenderersFactory</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;extensionRendererMode,
long&nbsp;allowedVideoJoiningTimeMs)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(android.content.Context)"><code>DefaultRenderersFactory(Context)</code></a>, <a href="#setExtensionRendererMode(int)"><code>setExtensionRendererMode(int)</code></a> and <a href="#setAllowedVideoJoiningTimeMs(long)"><code>setAllowedVideoJoiningTimeMs(long)</code></a>.</div>
</div>
</td>
</tr>
</table> </table>
</li> </li>
</ul> </ul>
@ -278,8 +259,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i0" class="altColor"> <tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildAudioRenderers(android.content.Context,int,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)">buildAudioRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildAudioRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)">buildAudioRenderers</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;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector, <a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
boolean&nbsp;enableDecoderFallback, boolean&nbsp;enableDecoderFallback,
<a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>&nbsp;audioSink, <a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>&nbsp;audioSink,
@ -302,8 +283,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i2" class="altColor"> <tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildCameraMotionRenderers(android.content.Context,int,java.util.ArrayList)">buildCameraMotionRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildCameraMotionRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">buildCameraMotionRenderers</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;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Builds camera motion renderers for use by the player.</div> <div class="block">Builds camera motion renderers for use by the player.</div>
@ -311,10 +292,10 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i3" class="rowColor"> <tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildMetadataRenderers(android.content.Context,com.google.android.exoplayer2.metadata.MetadataOutput,android.os.Looper,int,java.util.ArrayList)">buildMetadataRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildMetadataRenderers(android.content.Context,com.google.android.exoplayer2.metadata.MetadataOutput,android.os.Looper,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">buildMetadataRenderers</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="metadata/MetadataOutput.html" title="interface in com.google.android.exoplayer2.metadata">MetadataOutput</a>&nbsp;output, <a href="metadata/MetadataOutput.html" title="interface in com.google.android.exoplayer2.metadata">MetadataOutput</a>&nbsp;output,
<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;outputLooper, <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;outputLooper,
int&nbsp;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Builds metadata renderers for use by the player.</div> <div class="block">Builds metadata renderers for use by the player.</div>
@ -322,9 +303,9 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i4" class="altColor"> <tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildMiscellaneousRenderers(android.content.Context,android.os.Handler,int,java.util.ArrayList)">buildMiscellaneousRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildMiscellaneousRenderers(android.content.Context,android.os.Handler,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">buildMiscellaneousRenderers</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;eventHandler, <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;eventHandler,
int&nbsp;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Builds any miscellaneous renderers used by the player.</div> <div class="block">Builds any miscellaneous renderers used by the player.</div>
@ -332,10 +313,10 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i5" class="rowColor"> <tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildTextRenderers(android.content.Context,com.google.android.exoplayer2.text.TextOutput,android.os.Looper,int,java.util.ArrayList)">buildTextRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildTextRenderers(android.content.Context,com.google.android.exoplayer2.text.TextOutput,android.os.Looper,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">buildTextRenderers</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="text/TextOutput.html" title="interface in com.google.android.exoplayer2.text">TextOutput</a>&nbsp;output, <a href="text/TextOutput.html" title="interface in com.google.android.exoplayer2.text">TextOutput</a>&nbsp;output,
<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;outputLooper, <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;outputLooper,
int&nbsp;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Builds text renderers for use by the player.</div> <div class="block">Builds text renderers for use by the player.</div>
@ -343,8 +324,8 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i6" class="altColor"> <tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildVideoRenderers(android.content.Context,int,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener,long,java.util.ArrayList)">buildVideoRenderers</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildVideoRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener,long,java.util.ArrayList)">buildVideoRenderers</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;extensionRendererMode, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector, <a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
boolean&nbsp;enableDecoderFallback, boolean&nbsp;enableDecoderFallback,
<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;eventHandler, <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;eventHandler,
@ -443,7 +424,7 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i18" class="altColor">
<td class="colFirst"><code><a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a></code></td> <td class="colFirst"><code><a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExtensionRendererMode(int)">setExtensionRendererMode</a></span>&#8203;(int&nbsp;extensionRendererMode)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExtensionRendererMode(@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint)">setExtensionRendererMode</a></span>&#8203;(@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the extension renderer mode, which determines if and how available extension renderers are <div class="block">Sets the extension renderer mode, which determines if and how available extension renderers are
used.</div> used.</div>
@ -570,7 +551,7 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
<a id="&lt;init&gt;(android.content.Context)"> <a id="&lt;init&gt;(android.content.Context)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>DefaultRenderersFactory</h4> <h4>DefaultRenderersFactory</h4>
<pre>public&nbsp;DefaultRenderersFactory&#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)</pre> <pre>public&nbsp;DefaultRenderersFactory&#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)</pre>
@ -580,37 +561,6 @@ implements <a href="RenderersFactory.html" title="interface in com.google.androi
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="&lt;init&gt;(android.content.Context,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultRenderersFactory</h4>
<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&nbsp;DefaultRenderersFactory&#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="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a>
int&nbsp;extensionRendererMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(android.content.Context)"><code>DefaultRenderersFactory(Context)</code></a> and <a href="#setExtensionRendererMode(int)"><code>setExtensionRendererMode(int)</code></a>.</div>
</div>
</li>
</ul>
<a id="&lt;init&gt;(android.content.Context,int,long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultRenderersFactory</h4>
<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&nbsp;DefaultRenderersFactory&#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="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a>
int&nbsp;extensionRendererMode,
long&nbsp;allowedVideoJoiningTimeMs)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(android.content.Context)"><code>DefaultRenderersFactory(Context)</code></a>, <a href="#setExtensionRendererMode(int)"><code>setExtensionRendererMode(int)</code></a> and <a href="#setAllowedVideoJoiningTimeMs(long)"><code>setAllowedVideoJoiningTimeMs(long)</code></a>.</div>
</div>
</li>
</ul>
</li> </li>
</ul> </ul>
</section> </section>
@ -621,14 +571,13 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
<!-- --> <!-- -->
</a> </a>
<h3>Method Detail</h3> <h3>Method Detail</h3>
<a id="setExtensionRendererMode(int)"> <a id="setExtensionRendererMode(@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setExtensionRendererMode</h4> <h4>setExtensionRendererMode</h4>
<pre class="methodSignature">public&nbsp;<a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a>&nbsp;setExtensionRendererMode&#8203;(<a href="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> <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>
int&nbsp;extensionRendererMode)</pre>
<div class="block">Sets the extension renderer mode, which determines if and how available extension renderers are <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 used. Note that extensions must be included in the application build for them to be considered
available. available.
@ -873,15 +822,14 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildVideoRenderers(android.content.Context,int,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener,long,java.util.ArrayList)"> <a id="buildVideoRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,android.os.Handler,com.google.android.exoplayer2.video.VideoRendererEventListener,long,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>buildVideoRenderers</h4> <h4>buildVideoRenderers</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;buildVideoRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildVideoRenderers&#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="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector, <a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
boolean&nbsp;enableDecoderFallback, boolean&nbsp;enableDecoderFallback,
<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;eventHandler, <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;eventHandler,
@ -905,15 +853,14 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildAudioRenderers(android.content.Context,int,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)"> <a id="buildAudioRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>buildAudioRenderers</h4> <h4>buildAudioRenderers</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;buildAudioRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildAudioRenderers&#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="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector, <a href="mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a>&nbsp;mediaCodecSelector,
boolean&nbsp;enableDecoderFallback, boolean&nbsp;enableDecoderFallback,
<a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>&nbsp;audioSink, <a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a>&nbsp;audioSink,
@ -936,7 +883,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildTextRenderers(android.content.Context,com.google.android.exoplayer2.text.TextOutput,android.os.Looper,int,java.util.ArrayList)"> <a id="buildTextRenderers(android.content.Context,com.google.android.exoplayer2.text.TextOutput,android.os.Looper,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -945,8 +892,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
<pre class="methodSignature">protected&nbsp;void&nbsp;buildTextRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildTextRenderers&#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="text/TextOutput.html" title="interface in com.google.android.exoplayer2.text">TextOutput</a>&nbsp;output, <a href="text/TextOutput.html" title="interface in com.google.android.exoplayer2.text">TextOutput</a>&nbsp;output,
<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;outputLooper, <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;outputLooper,
<a href="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre>
<div class="block">Builds text renderers for use by the player.</div> <div class="block">Builds text renderers for use by the player.</div>
<dl> <dl>
@ -959,7 +905,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildMetadataRenderers(android.content.Context,com.google.android.exoplayer2.metadata.MetadataOutput,android.os.Looper,int,java.util.ArrayList)"> <a id="buildMetadataRenderers(android.content.Context,com.google.android.exoplayer2.metadata.MetadataOutput,android.os.Looper,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -968,8 +914,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
<pre class="methodSignature">protected&nbsp;void&nbsp;buildMetadataRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildMetadataRenderers&#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="metadata/MetadataOutput.html" title="interface in com.google.android.exoplayer2.metadata">MetadataOutput</a>&nbsp;output, <a href="metadata/MetadataOutput.html" title="interface in com.google.android.exoplayer2.metadata">MetadataOutput</a>&nbsp;output,
<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;outputLooper, <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;outputLooper,
<a href="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre>
<div class="block">Builds metadata renderers for use by the player.</div> <div class="block">Builds metadata renderers for use by the player.</div>
<dl> <dl>
@ -982,15 +927,14 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildCameraMotionRenderers(android.content.Context,int,java.util.ArrayList)"> <a id="buildCameraMotionRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>buildCameraMotionRenderers</h4> <h4>buildCameraMotionRenderers</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;buildCameraMotionRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildCameraMotionRenderers&#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="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre>
<div class="block">Builds camera motion renderers for use by the player.</div> <div class="block">Builds camera motion renderers for use by the player.</div>
<dl> <dl>
@ -1001,7 +945,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="buildMiscellaneousRenderers(android.content.Context,android.os.Handler,int,java.util.ArrayList)"> <a id="buildMiscellaneousRenderers(android.content.Context,android.os.Handler,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,java.util.ArrayList)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -1009,8 +953,7 @@ public&nbsp;DefaultRenderersFactory&#8203;(<a href="https://developer.android.co
<h4>buildMiscellaneousRenderers</h4> <h4>buildMiscellaneousRenderers</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;buildMiscellaneousRenderers&#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, <pre class="methodSignature">protected&nbsp;void&nbsp;buildMiscellaneousRenderers&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html" title="class or interface in android.content" class="externalLink" target="_top">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top">Handler</a>&nbsp;eventHandler, <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;eventHandler,
<a href="DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">@ExtensionRendererMode</a> @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int&nbsp;extensionRendererMode,
int&nbsp;extensionRendererMode,
<a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre> <a href="https://developer.android.com/reference/java/util/ArrayList.html" title="class or interface in java.util" class="externalLink">ArrayList</a>&lt;<a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top">Renderer</a>&gt;&nbsp;out)</pre>
<div class="block">Builds any miscellaneous renderers used by the player.</div> <div class="block">Builds any miscellaneous renderers used by the player.</div>
<dl> <dl>
@ -1043,7 +986,7 @@ protected&nbsp;<a href="audio/AudioSink.html" title="interface in com.google.and
available.</dd> available.</dd>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioSink</code></a> to which the audio renderers will output. May be <code>null</code> if <dd>The <a href="audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioSink</code></a> to which the audio renderers will output. May be <code>null</code> if
no audio renderers are required. If <code>null</code> is returned then <a href="#buildAudioRenderers(android.content.Context,int,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)"><code>buildAudioRenderers(android.content.Context, int, com.google.android.exoplayer2.mediacodec.MediaCodecSelector, boolean, com.google.android.exoplayer2.audio.AudioSink, android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, java.util.ArrayList&lt;com.google.android.exoplayer2.Renderer&gt;)</code></a> will not be called.</dd> no audio renderers are required. If <code>null</code> is returned then <a href="#buildAudioRenderers(android.content.Context,@com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererModeint,com.google.android.exoplayer2.mediacodec.MediaCodecSelector,boolean,com.google.android.exoplayer2.audio.AudioSink,android.os.Handler,com.google.android.exoplayer2.audio.AudioRendererEventListener,java.util.ArrayList)"><code>buildAudioRenderers(android.content.Context, @com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode int, com.google.android.exoplayer2.mediacodec.MediaCodecSelector, boolean, com.google.android.exoplayer2.audio.AudioSink, android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, java.util.ArrayList&lt;com.google.android.exoplayer2.Renderer&gt;)</code></a> will not be called.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">ExoPlaybackException.Type</span></pre> public static @interface <span class="memberNameLabel">ExoPlaybackException.Type</span></pre>
<div class="block">The type of source that produced the error. One of <a href="ExoPlaybackException.html#TYPE_SOURCE"><code>ExoPlaybackException.TYPE_SOURCE</code></a>, <a href="ExoPlaybackException.html#TYPE_RENDERER"><code>ExoPlaybackException.TYPE_RENDERER</code></a> <div class="block">The type of source that produced the error. One of <a href="ExoPlaybackException.html#TYPE_SOURCE"><code>ExoPlaybackException.TYPE_SOURCE</code></a>, <a href="ExoPlaybackException.html#TYPE_RENDERER"><code>ExoPlaybackException.TYPE_RENDERER</code></a>
<a href="ExoPlaybackException.html#TYPE_UNEXPECTED"><code>ExoPlaybackException.TYPE_UNEXPECTED</code></a> or <a href="ExoPlaybackException.html#TYPE_REMOTE"><code>ExoPlaybackException.TYPE_REMOTE</code></a>. Note that new types may be added in the <a href="ExoPlaybackException.html#TYPE_UNEXPECTED"><code>ExoPlaybackException.TYPE_UNEXPECTED</code></a> or <a href="ExoPlaybackException.html#TYPE_REMOTE"><code>ExoPlaybackException.TYPE_REMOTE</code></a>. Note that new types may be added in the

View File

@ -237,7 +237,7 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.FormatSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rendererFormatSupport">rendererFormatSupport</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rendererFormatSupport">rendererFormatSupport</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">If <a href="#type"><code>type</code></a> is <a href="#TYPE_RENDERER"><code>TYPE_RENDERER</code></a>, this is the level of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> of the <div class="block">If <a href="#type"><code>type</code></a> is <a href="#TYPE_RENDERER"><code>TYPE_RENDERER</code></a>, this is the level of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> of the
@ -259,7 +259,7 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.ExoPlaybackException.Type int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type">type</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type">type</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The <a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2"><code>ExoPlaybackException.Type</code></a> of the playback failure.</div> <div class="block">The <a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2"><code>ExoPlaybackException.Type</code></a> of the playback failure.</div>
@ -327,11 +327,11 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
</tr> </tr>
<tr id="i1" class="rowColor"> <tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code></td> <td class="colFirst"><code>static <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createForRenderer(java.lang.Throwable,java.lang.String,int,com.google.android.exoplayer2.Format,int,boolean,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">createForRenderer</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createForRenderer(java.lang.Throwable,java.lang.String,int,com.google.android.exoplayer2.Format,@com.google.android.exoplayer2.C.FormatSupportint,boolean,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">createForRenderer</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause,
<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;rendererName, <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;rendererName,
int&nbsp;rendererIndex, int&nbsp;rendererIndex,
<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;rendererFormat, <a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;rendererFormat,
int&nbsp;rendererFormatSupport, @com.google.android.exoplayer2.C.FormatSupport int&nbsp;rendererFormatSupport,
boolean&nbsp;isRecoverable, boolean&nbsp;isRecoverable,
@com.google.android.exoplayer2.PlaybackException.ErrorCode int&nbsp;errorCode)</code></th> @com.google.android.exoplayer2.PlaybackException.ErrorCode int&nbsp;errorCode)</code></th>
<td class="colLast"> <td class="colLast">
@ -405,7 +405,7 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
<!-- --> <!-- -->
</a> </a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a></h3> <h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.<a href="PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a></h3>
<code><a href="PlaybackException.html#getErrorCodeName()">getErrorCodeName</a>, <a href="PlaybackException.html#getErrorCodeName(@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">getErrorCodeName</a>, <a href="PlaybackException.html#keyForField(int)">keyForField</a></code></li> <code><a href="PlaybackException.html#getErrorCodeName()">getErrorCodeName</a>, <a href="PlaybackException.html#getErrorCodeName(@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">getErrorCodeName</a>, <a href="PlaybackException.html#keyForField(@com.google.android.exoplayer2.PlaybackException.FieldNumberint)">keyForField</a></code></li>
</ul> </ul>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable"> <li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
@ -508,7 +508,7 @@ extends <a href="PlaybackException.html" title="class in com.google.android.exop
<li class="blockList"> <li class="blockList">
<h4>type</h4> <h4>type</h4>
<pre><a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2">@Type</a> <pre><a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2">@Type</a>
public final&nbsp;int type</pre> public final&nbsp;@com.google.android.exoplayer2.ExoPlaybackException.Type int type</pre>
<div class="block">The <a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2"><code>ExoPlaybackException.Type</code></a> of the playback failure.</div> <div class="block">The <a href="ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2"><code>ExoPlaybackException.Type</code></a> of the playback failure.</div>
</li> </li>
</ul> </ul>
@ -552,7 +552,7 @@ public final&nbsp;<a href="Format.html" title="class in com.google.android.exopl
<li class="blockList"> <li class="blockList">
<h4>rendererFormatSupport</h4> <h4>rendererFormatSupport</h4>
<pre><a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a> <pre><a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
public final&nbsp;int rendererFormatSupport</pre> public final&nbsp;@com.google.android.exoplayer2.C.FormatSupport int rendererFormatSupport</pre>
<div class="block">If <a href="#type"><code>type</code></a> is <a href="#TYPE_RENDERER"><code>TYPE_RENDERER</code></a>, this is the level of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> of the <div class="block">If <a href="#type"><code>type</code></a> is <a href="#TYPE_RENDERER"><code>TYPE_RENDERER</code></a>, this is the level of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> of the
renderer for <a href="#rendererFormat"><code>rendererFormat</code></a>. If <a href="#rendererFormat"><code>rendererFormat</code></a> is null, this is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a>.</div> renderer for <a href="#rendererFormat"><code>rendererFormat</code></a>. If <a href="#rendererFormat"><code>rendererFormat</code></a> is null, this is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a>.</div>
</li> </li>
@ -606,7 +606,7 @@ public final&nbsp;<a href="source/MediaPeriodId.html" title="class in com.google
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="createForRenderer(java.lang.Throwable,java.lang.String,int,com.google.android.exoplayer2.Format,int,boolean,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)"> <a id="createForRenderer(java.lang.Throwable,java.lang.String,int,com.google.android.exoplayer2.Format,@com.google.android.exoplayer2.C.FormatSupportint,boolean,@com.google.android.exoplayer2.PlaybackException.ErrorCodeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -618,7 +618,7 @@ public final&nbsp;<a href="source/MediaPeriodId.html" title="class in com.google
@Nullable @Nullable
<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;rendererFormat, <a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;rendererFormat,
<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a> <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
int&nbsp;rendererFormatSupport, @com.google.android.exoplayer2.C.FormatSupport int&nbsp;rendererFormatSupport,
boolean&nbsp;isRecoverable, boolean&nbsp;isRecoverable,
<a href="PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2">@ErrorCode</a> <a href="PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2">@ErrorCode</a>
@com.google.android.exoplayer2.PlaybackException.ErrorCode int&nbsp;errorCode)</pre> @com.google.android.exoplayer2.PlaybackException.ErrorCode int&nbsp;errorCode)</pre>

View File

@ -171,30 +171,30 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory)">Builder</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, <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory)">Builder</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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</code></th> <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Creates a builder with a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> and <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>.</div> <div class="block">Creates a builder with a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> and <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">Builder</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, <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">Builder</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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector, <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector,
<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl, <a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl,
<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter, <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter,
<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th> <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Creates a builder with the specified custom components.</div> <div class="block">Creates a builder with the specified custom components.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSourceFactory)">Builder</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, <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSource.Factory)">Builder</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="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</code></th> <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Creates a builder with a custom <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>.</div> <div class="block">Creates a builder with a custom <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.</div>
</td> </td>
</tr> </tr>
</table> </table>
@ -231,9 +231,9 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i2" class="altColor"> <tr id="i2" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnalyticsCollector(com.google.android.exoplayer2.analytics.AnalyticsCollector)">setAnalyticsCollector</a></span>&#8203;(<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnalyticsCollector(com.google.android.exoplayer2.analytics.AnalyticsCollector)">setAnalyticsCollector</a></span>&#8203;(<a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the <a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> that will collect and forward all player events.</div> <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>
</td> </td>
</tr> </tr>
<tr id="i3" class="rowColor"> <tr id="i3" class="rowColor">
@ -299,9 +299,9 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)">setMediaSourceFactory</a></span>&#8203;(<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSource.Factory)">setMediaSourceFactory</a></span>&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a> that will be used by the player.</div> <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>
</td> </td>
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i12" class="altColor">
@ -376,7 +376,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i22" class="altColor"> <tr id="i22" class="altColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoChangeFrameRateStrategy(int)">setVideoChangeFrameRateStrategy</a></span>&#8203;(int&nbsp;videoChangeFrameRateStrategy)</code></th> <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"> <td class="colLast">
<div class="block">Sets a <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a> that will be used by the player when provided <div class="block">Sets a <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a> that will be used by the player when provided
with a video output <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</div> 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>
@ -384,7 +384,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i23" class="rowColor"> <tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(int)">setVideoScalingMode</a></span>&#8203;(int&nbsp;videoScalingMode)</code></th> <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"> <td class="colLast">
<div class="block">Sets the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a> that will be used by the player.</div> <div class="block">Sets the <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a> that will be used by the player.</div>
</td> </td>
@ -429,8 +429,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<pre>public&nbsp;Builder&#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)</pre> <pre>public&nbsp;Builder&#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)</pre>
<div class="block">Creates a builder. <div class="block">Creates a builder.
<p>Use <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory)"><code>Builder(Context, RenderersFactory)</code></a>, <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, <p>Use <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory)"><code>Builder(Context, RenderersFactory)</code></a>, <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context,
MediaSourceFactory)</code></a> or <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, RenderersFactory, MediaSourceFactory)</code></a> MediaSource.Factory)</code></a> or <a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context, RenderersFactory, MediaSource.Factory)</code></a>
instead, if you intend to provide a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a>, <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorsFactory</code></a> or <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a>. This is to ensure that ProGuard or instead, if you intend to provide a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a>, <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorsFactory</code></a> or <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a>. This is to ensure that ProGuard or
R8 can remove ExoPlayer's <a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2"><code>DefaultRenderersFactory</code></a>, <a href="extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor"><code>DefaultExtractorsFactory</code></a> R8 can remove ExoPlayer's <a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2"><code>DefaultRenderersFactory</code></a>, <a href="extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor"><code>DefaultExtractorsFactory</code></a>
and <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> from the APK. and <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> from the APK.
@ -440,12 +440,12 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul> <ul>
<li><a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a>: <a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2"><code>DefaultRenderersFactory</code></a> <li><a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a>: <a href="DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2"><code>DefaultRenderersFactory</code></a>
<li><a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a>: <a href="trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector</code></a> <li><a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a>: <a href="trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector</code></a>
<li><a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>: <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> <li><a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>: <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a>
<li><a href="LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a>: <a href="DefaultLoadControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLoadControl</code></a> <li><a href="LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a>: <a href="DefaultLoadControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLoadControl</code></a>
<li><a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a>: <a href="upstream/DefaultBandwidthMeter.html#getSingletonInstance(android.content.Context)"><code>DefaultBandwidthMeter.getSingletonInstance(Context)</code></a> <li><a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a>: <a href="upstream/DefaultBandwidthMeter.html#getSingletonInstance(android.content.Context)"><code>DefaultBandwidthMeter.getSingletonInstance(Context)</code></a>
<li><a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2"><code>LivePlaybackSpeedControl</code></a>: <a href="DefaultLivePlaybackSpeedControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLivePlaybackSpeedControl</code></a> <li><a href="LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2"><code>LivePlaybackSpeedControl</code></a>: <a href="DefaultLivePlaybackSpeedControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLivePlaybackSpeedControl</code></a>
<li><a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink"><code>Looper</code></a>: The <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> associated with the current thread, or the <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> of the application's main thread if the current thread doesn't have a <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> <li><a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink"><code>Looper</code></a>: The <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> associated with the current thread, or the <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink"><code>Looper</code></a> of the application's main thread if the current thread doesn't have a <a href="https://developer.android.com/reference/android/os/Looper.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a>
<li><a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>: <a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> with <a href="util/Clock.html#DEFAULT"><code>Clock.DEFAULT</code></a> <li><a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>: <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> with <a href="util/Clock.html#DEFAULT"><code>Clock.DEFAULT</code></a>
<li><a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>: <code>null</code> (not used) <li><a href="util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>: <code>null</code> (not used)
<li><a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>: <a href="audio/AudioAttributes.html#DEFAULT"><code>AudioAttributes.DEFAULT</code></a>, not handling audio focus <li><a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>: <a href="audio/AudioAttributes.html#DEFAULT"><code>AudioAttributes.DEFAULT</code></a>, not handling audio focus
<li><a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2"><code>C.WakeMode</code></a>: <a href="C.html#WAKE_MODE_NONE"><code>C.WAKE_MODE_NONE</code></a> <li><a href="C.WakeMode.html" title="annotation in com.google.android.exoplayer2"><code>C.WakeMode</code></a>: <a href="C.html#WAKE_MODE_NONE"><code>C.WAKE_MODE_NONE</code></a>
@ -489,15 +489,15 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.source.MediaSourceFactory)"> <a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.source.MediaSource.Factory)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>Builder</h4> <h4>Builder</h4>
<pre>public&nbsp;Builder&#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, <pre>public&nbsp;Builder&#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="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</pre> <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</pre>
<div class="block">Creates a builder with a custom <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>. <div class="block">Creates a builder with a custom <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.
<p>See <a href="#%3Cinit%3E(android.content.Context)"><code>Builder(Context)</code></a> for a list of default values. <p>See <a href="#%3Cinit%3E(android.content.Context)"><code>Builder(Context)</code></a> for a list of default values.
@ -510,7 +510,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory)"> <a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -518,8 +518,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h4>Builder</h4> <h4>Builder</h4>
<pre>public&nbsp;Builder&#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, <pre>public&nbsp;Builder&#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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</pre> <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</pre>
<div class="block">Creates a builder with a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> and <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>. <div class="block">Creates a builder with a custom <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> and <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.
<p>See <a href="#%3Cinit%3E(android.content.Context)"><code>Builder(Context)</code></a> for a list of default values. <p>See <a href="#%3Cinit%3E(android.content.Context)"><code>Builder(Context)</code></a> for a list of default values.
@ -533,7 +533,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"> <a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
@ -541,11 +541,11 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h4>Builder</h4> <h4>Builder</h4>
<pre>public&nbsp;Builder&#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, <pre>public&nbsp;Builder&#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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector, <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector,
<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl, <a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl,
<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter, <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter,
<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre> <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre>
<div class="block">Creates a builder with the specified custom components. <div class="block">Creates a builder with the specified custom components.
<p>Note that this constructor is only useful to try and ensure that ExoPlayer's default <p>Note that this constructor is only useful to try and ensure that ExoPlayer's default
@ -555,11 +555,11 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<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>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>renderersFactory</code> - A factory for creating <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderers</code></a> to be used by the <dd><code>renderersFactory</code> - A factory for creating <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderers</code></a> to be used by the
player.</dd> player.</dd>
<dd><code>mediaSourceFactory</code> - A <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>.</dd> <dd><code>mediaSourceFactory</code> - A <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.</dd>
<dd><code>trackSelector</code> - A <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a>.</dd> <dd><code>trackSelector</code> - A <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a>.</dd>
<dd><code>loadControl</code> - A <a href="LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a>.</dd> <dd><code>loadControl</code> - A <a href="LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a>.</dd>
<dd><code>bandwidthMeter</code> - A <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a>.</dd> <dd><code>bandwidthMeter</code> - A <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a>.</dd>
<dd><code>analyticsCollector</code> - An <a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>.</dd> <dd><code>analyticsCollector</code> - An <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -608,17 +608,17 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)"> <a id="setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSource.Factory)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setMediaSourceFactory</h4> <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/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</pre> <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>
<div class="block">Sets the <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a> that will be used by the player.</div> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSourceFactory</code> - A <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a>.</dd> <dd><code>mediaSourceFactory</code> - A <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd> <dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt> <dt><span class="throwsLabel">Throws:</span></dt>
@ -705,11 +705,11 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setAnalyticsCollector</h4> <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="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre> <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>
<div class="block">Sets the <a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a> that will collect and forward all player events.</div> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>analyticsCollector</code> - An <a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>.</dd> <dd><code>analyticsCollector</code> - An <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsCollector</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>This builder.</dd> <dd>This builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt> <dt><span class="throwsLabel">Throws:</span></dt>
@ -827,14 +827,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setVideoScalingMode(int)"> <a id="setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setVideoScalingMode</h4> <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">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>
int&nbsp;videoScalingMode)</pre> @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. <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.
<p>The scaling mode only applies if a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based video <a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top"><code>Renderer</code></a> is <p>The scaling mode only applies if a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a>-based video <a href="Renderer.html" title="interface in com.google.android.exoplayer2" target="_top"><code>Renderer</code></a> is
@ -849,14 +849,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setVideoChangeFrameRateStrategy(int)"> <a id="setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setVideoChangeFrameRateStrategy</h4> <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">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>
int&nbsp;videoChangeFrameRateStrategy)</pre> @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 <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>. 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>.

View File

@ -220,7 +220,7 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
</td> </td>
</tr> </tr>
<tr id="i7" class="rowColor"> <tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoChangeFrameRateStrategy()">getVideoChangeFrameRateStrategy</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -229,7 +229,7 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
</td> </td>
</tr> </tr>
<tr id="i8" class="altColor"> <tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVideoScalingMode()">getVideoScalingMode</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -257,10 +257,10 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoChangeFrameRateStrategy(int)">setVideoChangeFrameRateStrategy</a></span>&#8203;(int&nbsp;videoChangeFrameRateStrategy)</code></th> <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"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoChangeFrameRateStrategy(int)"><code>ExoPlayer.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)"><code>ExoPlayer.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
@ -276,10 +276,10 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
</tr> </tr>
<tr id="i13" class="rowColor"> <tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(int)">setVideoScalingMode</a></span>&#8203;(int&nbsp;videoScalingMode)</code></th> <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"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoScalingMode(int)"><code>ExoPlayer.setVideoScalingMode(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)"><code>ExoPlayer.setVideoScalingMode(int)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
@ -336,7 +336,7 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
<!-- --> <!-- -->
</a> </a>
<h3>Method Detail</h3> <h3>Method Detail</h3>
<a id="setVideoScalingMode(int)"> <a id="setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -344,9 +344,9 @@ public static interface <span class="typeNameLabel">ExoPlayer.VideoComponent</sp
<h4>setVideoScalingMode</h4> <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"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
void&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a> void&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a>
int&nbsp;videoScalingMode)</pre> @com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoScalingMode(int)"><code>ExoPlayer.setVideoScalingMode(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)"><code>ExoPlayer.setVideoScalingMode(int)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
@ -358,13 +358,13 @@ void&nbsp;setVideoScalingMode&#8203;(<a href="C.VideoScalingMode.html" title="an
<h4>getVideoScalingMode</h4> <h4>getVideoScalingMode</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"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a> <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">@VideoScalingMode</a>
int&nbsp;getVideoScalingMode()</pre> @com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;getVideoScalingMode()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#getVideoScalingMode()"><code>ExoPlayer.getVideoScalingMode()</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#getVideoScalingMode()"><code>ExoPlayer.getVideoScalingMode()</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
<a id="setVideoChangeFrameRateStrategy(int)"> <a id="setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -372,9 +372,9 @@ int&nbsp;getVideoScalingMode()</pre>
<h4>setVideoChangeFrameRateStrategy</h4> <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"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
void&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a> void&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a>
int&nbsp;videoChangeFrameRateStrategy)</pre> @com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoChangeFrameRateStrategy(int)"><code>ExoPlayer.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)"><code>ExoPlayer.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
@ -386,7 +386,7 @@ void&nbsp;setVideoChangeFrameRateStrategy&#8203;(<a href="C.VideoChangeFrameRate
<h4>getVideoChangeFrameRateStrategy</h4> <h4>getVideoChangeFrameRateStrategy</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"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
<a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a> <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">@VideoChangeFrameRateStrategy</a>
int&nbsp;getVideoChangeFrameRateStrategy()</pre> @com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;getVideoChangeFrameRateStrategy()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.html#getVideoChangeFrameRateStrategy()"><code>ExoPlayer.getVideoChangeFrameRateStrategy()</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.html#getVideoChangeFrameRateStrategy()"><code>ExoPlayer.getVideoChangeFrameRateStrategy()</code></a> instead.</div>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">ExoTimeoutException.TimeoutOperation</span></pre> public static @interface <span class="memberNameLabel">ExoTimeoutException.TimeoutOperation</span></pre>
<div class="block">The operation which produced the timeout error. One of <a href="ExoTimeoutException.html#TIMEOUT_OPERATION_RELEASE"><code>ExoTimeoutException.TIMEOUT_OPERATION_RELEASE</code></a>, <div class="block">The operation which produced the timeout error. One of <a href="ExoTimeoutException.html#TIMEOUT_OPERATION_RELEASE"><code>ExoTimeoutException.TIMEOUT_OPERATION_RELEASE</code></a>,
<a href="ExoTimeoutException.html#TIMEOUT_OPERATION_SET_FOREGROUND_MODE"><code>ExoTimeoutException.TIMEOUT_OPERATION_SET_FOREGROUND_MODE</code></a>, <a href="ExoTimeoutException.html#TIMEOUT_OPERATION_DETACH_SURFACE"><code>ExoTimeoutException.TIMEOUT_OPERATION_DETACH_SURFACE</code></a> or <a href="ExoTimeoutException.html#TIMEOUT_OPERATION_SET_FOREGROUND_MODE"><code>ExoTimeoutException.TIMEOUT_OPERATION_SET_FOREGROUND_MODE</code></a>, <a href="ExoTimeoutException.html#TIMEOUT_OPERATION_DETACH_SURFACE"><code>ExoTimeoutException.TIMEOUT_OPERATION_DETACH_SURFACE</code></a> or

View File

@ -223,7 +223,7 @@ extends <a href="https://developer.android.com/reference/java/lang/RuntimeExcept
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperation int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#timeoutOperation">timeoutOperation</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#timeoutOperation">timeoutOperation</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The operation on the ExoPlayer playback thread that timed out.</div> <div class="block">The operation on the ExoPlayer playback thread that timed out.</div>
@ -247,7 +247,7 @@ extends <a href="https://developer.android.com/reference/java/lang/RuntimeExcept
<th class="colLast" scope="col">Description</th> <th class="colLast" scope="col">Description</th>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ExoTimeoutException</a></span>&#8203;(int&nbsp;timeoutOperation)</code></th> <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(@com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperationint)">ExoTimeoutException</a></span>&#8203;(@com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperation int&nbsp;timeoutOperation)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Creates the timeout exception.</div> <div class="block">Creates the timeout exception.</div>
</td> </td>
@ -356,7 +356,7 @@ extends <a href="https://developer.android.com/reference/java/lang/RuntimeExcept
<li class="blockList"> <li class="blockList">
<h4>timeoutOperation</h4> <h4>timeoutOperation</h4>
<pre><a href="ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2">@TimeoutOperation</a> <pre><a href="ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2">@TimeoutOperation</a>
public final&nbsp;int timeoutOperation</pre> public final&nbsp;@com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperation int timeoutOperation</pre>
<div class="block">The operation on the ExoPlayer playback thread that timed out.</div> <div class="block">The operation on the ExoPlayer playback thread that timed out.</div>
</li> </li>
</ul> </ul>
@ -370,14 +370,14 @@ public final&nbsp;int timeoutOperation</pre>
<!-- --> <!-- -->
</a> </a>
<h3>Constructor Detail</h3> <h3>Constructor Detail</h3>
<a id="&lt;init&gt;(int)"> <a id="&lt;init&gt;(@com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperationint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>ExoTimeoutException</h4> <h4>ExoTimeoutException</h4>
<pre>public&nbsp;ExoTimeoutException&#8203;(<a href="ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2">@TimeoutOperation</a> <pre>public&nbsp;ExoTimeoutException&#8203;(<a href="ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2">@TimeoutOperation</a>
int&nbsp;timeoutOperation)</pre> @com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperation int&nbsp;timeoutOperation)</pre>
<div class="block">Creates the timeout exception.</div> <div class="block">Creates the timeout exception.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>

View File

@ -325,7 +325,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i20" class="altColor"> <tr id="i20" class="altColor">
<td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td> <td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPcmEncoding(int)">setPcmEncoding</a></span>&#8203;(int&nbsp;pcmEncoding)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPcmEncoding(@com.google.android.exoplayer2.C.PcmEncodingint)">setPcmEncoding</a></span>&#8203;(@com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets <a href="Format.html#pcmEncoding"><code>Format.pcmEncoding</code></a>.</div> <div class="block">Sets <a href="Format.html#pcmEncoding"><code>Format.pcmEncoding</code></a>.</div>
</td> </td>
@ -388,7 +388,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i29" class="rowColor"> <tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td> <td class="colFirst"><code><a href="Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStereoMode(int)">setStereoMode</a></span>&#8203;(int&nbsp;stereoMode)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStereoMode(@com.google.android.exoplayer2.C.StereoModeint)">setStereoMode</a></span>&#8203;(@com.google.android.exoplayer2.C.StereoMode int&nbsp;stereoMode)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets <a href="Format.html#stereoMode"><code>Format.stereoMode</code></a>.</div> <div class="block">Sets <a href="Format.html#stereoMode"><code>Format.stereoMode</code></a>.</div>
</td> </td>
@ -816,14 +816,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setStereoMode(int)"> <a id="setStereoMode(@com.google.android.exoplayer2.C.StereoModeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setStereoMode</h4> <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;(<a href="C.StereoMode.html" title="annotation in com.google.android.exoplayer2">@StereoMode</a> <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>
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> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
@ -882,14 +881,13 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setPcmEncoding(int)"> <a id="setPcmEncoding(@com.google.android.exoplayer2.C.PcmEncodingint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setPcmEncoding</h4> <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;(<a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2">@PcmEncoding</a> <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>
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> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>

View File

@ -417,7 +417,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.PcmEncoding int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pcmEncoding">pcmEncoding</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pcmEncoding">pcmEncoding</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The <a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2"><code>C.PcmEncoding</code></a> for PCM audio.</div> <div class="block">The <a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2"><code>C.PcmEncoding</code></a> for PCM audio.</div>
@ -481,7 +481,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.StereoMode int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stereoMode">stereoMode</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stereoMode">stereoMode</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The stereo layout for 360/3D/VR video, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not applicable.</div> <div class="block">The stereo layout for 360/3D/VR video, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not applicable.</div>
@ -628,14 +628,14 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="Format.html" title="class in com.google.android.exoplayer2">Format</a></code></td> <td class="colFirst"><code>static <a href="Format.html" title="class in com.google.android.exoplayer2">Format</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createAudioSampleFormat(java.lang.String,java.lang.String,java.lang.String,int,int,int,int,int,java.util.List,com.google.android.exoplayer2.drm.DrmInitData,@com.google.android.exoplayer2.C.SelectionFlagsint,java.lang.String)">createAudioSampleFormat</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createAudioSampleFormat(java.lang.String,java.lang.String,java.lang.String,int,int,int,int,@com.google.android.exoplayer2.C.PcmEncodingint,java.util.List,com.google.android.exoplayer2.drm.DrmInitData,@com.google.android.exoplayer2.C.SelectionFlagsint,java.lang.String)">createAudioSampleFormat</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id,
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;sampleMimeType, <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,
<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, <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,
int&nbsp;bitrate, int&nbsp;bitrate,
int&nbsp;maxInputSize, int&nbsp;maxInputSize,
int&nbsp;channelCount, int&nbsp;channelCount,
int&nbsp;sampleRate, int&nbsp;sampleRate,
int&nbsp;pcmEncoding, @com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding,
<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, <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,
<a href="drm/DrmInitData.html" title="class in com.google.android.exoplayer2.drm">DrmInitData</a>&nbsp;drmInitData, <a href="drm/DrmInitData.html" title="class in com.google.android.exoplayer2.drm">DrmInitData</a>&nbsp;drmInitData,
@com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags, @com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags,
@ -902,7 +902,8 @@ public final&nbsp;@com.google.android.exoplayer2.C.RoleFlags int roleFlags</pre>
<ul> <ul>
<li>DASH representations: Always <a href="#NO_VALUE"><code>NO_VALUE</code></a>. <li>DASH representations: Always <a href="#NO_VALUE"><code>NO_VALUE</code></a>.
<li>HLS variants: The <code>AVERAGE-BANDWIDTH</code> attribute defined on the corresponding <code> <li>HLS variants: The <code>AVERAGE-BANDWIDTH</code> attribute defined on the corresponding <code>
EXT-X-STREAM-INF</code> tag in the master playlist, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not present. EXT-X-STREAM-INF</code> tag in the multivariant playlist, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not
present.
<li>SmoothStreaming track elements: The <code>Bitrate</code> attribute defined on the <li>SmoothStreaming track elements: The <code>Bitrate</code> attribute defined on the
corresponding <code>TrackElement</code> in the manifest, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not corresponding <code>TrackElement</code> in the manifest, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not
present. present.
@ -1108,8 +1109,7 @@ public final&nbsp;byte[] projectionData</pre>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>stereoMode</h4> <h4>stereoMode</h4>
<pre><a href="C.StereoMode.html" title="annotation in com.google.android.exoplayer2">@StereoMode</a> <pre>public final&nbsp;@com.google.android.exoplayer2.C.StereoMode int stereoMode</pre>
public final&nbsp;int stereoMode</pre>
<div class="block">The stereo layout for 360/3D/VR video, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not applicable. Valid stereo <div class="block">The stereo layout for 360/3D/VR video, or <a href="#NO_VALUE"><code>NO_VALUE</code></a> if not applicable. Valid stereo
modes are <a href="C.html#STEREO_MODE_MONO"><code>C.STEREO_MODE_MONO</code></a>, <a href="C.html#STEREO_MODE_TOP_BOTTOM"><code>C.STEREO_MODE_TOP_BOTTOM</code></a>, <a href="C.html#STEREO_MODE_LEFT_RIGHT"><code>C.STEREO_MODE_LEFT_RIGHT</code></a>, <a href="C.html#STEREO_MODE_STEREO_MESH"><code>C.STEREO_MODE_STEREO_MESH</code></a>.</div> modes are <a href="C.html#STEREO_MODE_MONO"><code>C.STEREO_MODE_MONO</code></a>, <a href="C.html#STEREO_MODE_TOP_BOTTOM"><code>C.STEREO_MODE_TOP_BOTTOM</code></a>, <a href="C.html#STEREO_MODE_LEFT_RIGHT"><code>C.STEREO_MODE_LEFT_RIGHT</code></a>, <a href="C.html#STEREO_MODE_STEREO_MESH"><code>C.STEREO_MODE_STEREO_MESH</code></a>.</div>
</li> </li>
@ -1151,8 +1151,7 @@ public final&nbsp;<a href="video/ColorInfo.html" title="class in com.google.andr
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>pcmEncoding</h4> <h4>pcmEncoding</h4>
<pre><a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2">@PcmEncoding</a> <pre>public final&nbsp;@com.google.android.exoplayer2.C.PcmEncoding int pcmEncoding</pre>
public final&nbsp;int pcmEncoding</pre>
<div class="block">The <a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2"><code>C.PcmEncoding</code></a> for PCM audio. Set to <a href="#NO_VALUE"><code>NO_VALUE</code></a> for other media types.</div> <div class="block">The <a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2"><code>C.PcmEncoding</code></a> for PCM audio. Set to <a href="#NO_VALUE"><code>NO_VALUE</code></a> for other media types.</div>
</li> </li>
</ul> </ul>
@ -1305,7 +1304,7 @@ public static&nbsp;<a href="Format.html" title="class in com.google.android.exop
</div> </div>
</li> </li>
</ul> </ul>
<a id="createAudioSampleFormat(java.lang.String,java.lang.String,java.lang.String,int,int,int,int,int,java.util.List,com.google.android.exoplayer2.drm.DrmInitData,@com.google.android.exoplayer2.C.SelectionFlagsint,java.lang.String)"> <a id="createAudioSampleFormat(java.lang.String,java.lang.String,java.lang.String,int,int,int,int,@com.google.android.exoplayer2.C.PcmEncodingint,java.util.List,com.google.android.exoplayer2.drm.DrmInitData,@com.google.android.exoplayer2.C.SelectionFlagsint,java.lang.String)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -1322,8 +1321,7 @@ public static&nbsp;<a href="Format.html" title="class in com.google.android.exop
int&nbsp;maxInputSize, int&nbsp;maxInputSize,
int&nbsp;channelCount, int&nbsp;channelCount,
int&nbsp;sampleRate, int&nbsp;sampleRate,
<a href="C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2">@PcmEncoding</a> @com.google.android.exoplayer2.C.PcmEncoding int&nbsp;pcmEncoding,
int&nbsp;pcmEncoding,
@Nullable @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, <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,
@Nullable @Nullable

File diff suppressed because one or more lines are too long

View File

@ -190,14 +190,14 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt;</code></td> <td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forcedSessionTrackTypes">forcedSessionTrackTypes</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forcedSessionTrackTypes">forcedSessionTrackTypes</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The types of tracks for which to always use a DRM session even if the content is unencrypted.</div> <div class="block">The types of tracks for which to always use a DRM session even if the content is unencrypted.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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;</code></td> <td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#licenseRequestHeaders">licenseRequestHeaders</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#licenseRequestHeaders">licenseRequestHeaders</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The headers to attach to requests sent to the DRM license server.</div> <div class="block">The headers to attach to requests sent to the DRM license server.</div>
@ -226,7 +226,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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;</code></td> <td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requestHeaders">requestHeaders</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requestHeaders">requestHeaders</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -242,7 +242,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt;</code></td> <td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sessionForClearTypes">sessionForClearTypes</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sessionForClearTypes">sessionForClearTypes</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -367,7 +367,7 @@ public final&nbsp;<a href="https://developer.android.com/reference/android/net/U
<li class="blockList"> <li class="blockList">
<h4>requestHeaders</h4> <h4>requestHeaders</h4>
<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> <pre><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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; requestHeaders</pre> public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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; requestHeaders</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#licenseRequestHeaders"><code>licenseRequestHeaders</code></a> instead.</div> <div class="deprecationComment">Use <a href="#licenseRequestHeaders"><code>licenseRequestHeaders</code></a> instead.</div>
</div> </div>
@ -379,7 +379,7 @@ public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>licenseRequestHeaders</h4> <h4>licenseRequestHeaders</h4>
<pre>public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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; licenseRequestHeaders</pre> <pre>public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableMap.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableMap</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html" 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; licenseRequestHeaders</pre>
<div class="block">The headers to attach to requests sent to the DRM license server.</div> <div class="block">The headers to attach to requests sent to the DRM license server.</div>
</li> </li>
</ul> </ul>
@ -422,7 +422,7 @@ public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/
<li class="blockList"> <li class="blockList">
<h4>sessionForClearTypes</h4> <h4>sessionForClearTypes</h4>
<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> <pre><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt; sessionForClearTypes</pre> public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt; sessionForClearTypes</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#forcedSessionTrackTypes"><code>forcedSessionTrackTypes</code></a>.</div> <div class="deprecationComment">Use <a href="#forcedSessionTrackTypes"><code>forcedSessionTrackTypes</code></a>.</div>
</div> </div>
@ -434,7 +434,7 @@ public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>forcedSessionTrackTypes</h4> <h4>forcedSessionTrackTypes</h4>
<pre>public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt; forcedSessionTrackTypes</pre> <pre>public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="C.TrackType.html" title="annotation in com.google.android.exoplayer2">@TrackType</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>&gt; forcedSessionTrackTypes</pre>
<div class="block">The types of tracks for which to always use a DRM session even if the content is unencrypted.</div> <div class="block">The types of tracks for which to always use a DRM session even if the content is unencrypted.</div>
</li> </li>
</ul> </ul>

View File

@ -196,7 +196,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code><a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a>&gt;</code></td> <td class="colFirst"><code><a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subtitleConfigurations">subtitleConfigurations</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subtitleConfigurations">subtitleConfigurations</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Optional subtitles to be sideloaded.</div> <div class="block">Optional subtitles to be sideloaded.</div>
@ -350,7 +350,7 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>subtitleConfigurations</h4> <h4>subtitleConfigurations</h4>
<pre>public final&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a>&gt; subtitleConfigurations</pre> <pre>public final&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/collect/ImmutableList.html?is-external=true" title="class or interface in com.google.common.collect" class="externalLink">ImmutableList</a>&lt;<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a>&gt; subtitleConfigurations</pre>
<div class="block">Optional subtitles to be sideloaded.</div> <div class="block">Optional subtitles to be sideloaded.</div>
</li> </li>
</ul> </ul>

View File

@ -173,7 +173,7 @@ extends <a href="MediaItem.SubtitleConfiguration.html" title="class in com.googl
<!-- --> <!-- -->
</a> </a>
<h3>Fields inherited from class&nbsp;com.google.android.exoplayer2.<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a></h3> <h3>Fields inherited from class&nbsp;com.google.android.exoplayer2.<a href="MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a></h3>
<code><a href="MediaItem.SubtitleConfiguration.html#label">label</a>, <a href="MediaItem.SubtitleConfiguration.html#language">language</a>, <a href="MediaItem.SubtitleConfiguration.html#mimeType">mimeType</a>, <a href="MediaItem.SubtitleConfiguration.html#roleFlags">roleFlags</a>, <a href="MediaItem.SubtitleConfiguration.html#selectionFlags">selectionFlags</a>, <a href="MediaItem.SubtitleConfiguration.html#uri">uri</a></code></li> <code><a href="MediaItem.SubtitleConfiguration.html#id">id</a>, <a href="MediaItem.SubtitleConfiguration.html#label">label</a>, <a href="MediaItem.SubtitleConfiguration.html#language">language</a>, <a href="MediaItem.SubtitleConfiguration.html#mimeType">mimeType</a>, <a href="MediaItem.SubtitleConfiguration.html#roleFlags">roleFlags</a>, <a href="MediaItem.SubtitleConfiguration.html#selectionFlags">selectionFlags</a>, <a href="MediaItem.SubtitleConfiguration.html#uri">uri</a></code></li>
</ul> </ul>
</li> </li>
</ul> </ul>

View File

@ -25,7 +25,7 @@
catch(err) { catch(err) {
} }
//--> //-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10}; 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 tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor"; var altColor = "altColor";
var rowColor = "rowColor"; var rowColor = "rowColor";
@ -188,40 +188,47 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i1" class="rowColor"> <tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setId(java.lang.String)">setId</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Sets the optional ID for this subtitle track.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLabel(java.lang.String)">setLabel</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;label)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLabel(java.lang.String)">setLabel</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;label)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the optional label for this subtitle track.</div> <div class="block">Sets the optional label for this subtitle track.</div>
</td> </td>
</tr> </tr>
<tr id="i2" class="altColor"> <tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLanguage(java.lang.String)">setLanguage</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;language)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLanguage(java.lang.String)">setLanguage</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;language)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the optional language of the subtitle file.</div> <div class="block">Sets the optional language of the subtitle file.</div>
</td> </td>
</tr> </tr>
<tr id="i3" class="rowColor"> <tr id="i4" class="altColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMimeType(java.lang.String)">setMimeType</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMimeType(java.lang.String)">setMimeType</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;mimeType)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the MIME type.</div> <div class="block">Sets the MIME type.</div>
</td> </td>
</tr> </tr>
<tr id="i4" class="altColor"> <tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRoleFlags(@com.google.android.exoplayer2.C.RoleFlagsint)">setRoleFlags</a></span>&#8203;(@com.google.android.exoplayer2.C.RoleFlags int&nbsp;roleFlags)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRoleFlags(@com.google.android.exoplayer2.C.RoleFlagsint)">setRoleFlags</a></span>&#8203;(@com.google.android.exoplayer2.C.RoleFlags int&nbsp;roleFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the role flags.</div> <div class="block">Sets the role flags.</div>
</td> </td>
</tr> </tr>
<tr id="i5" class="rowColor"> <tr id="i6" class="altColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSelectionFlags(@com.google.android.exoplayer2.C.SelectionFlagsint)">setSelectionFlags</a></span>&#8203;(@com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSelectionFlags(@com.google.android.exoplayer2.C.SelectionFlagsint)">setSelectionFlags</a></span>&#8203;(@com.google.android.exoplayer2.C.SelectionFlags int&nbsp;selectionFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the flags used for track selection.</div> <div class="block">Sets the flags used for track selection.</div>
</td> </td>
</tr> </tr>
<tr id="i6" class="altColor"> <tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td> <td class="colFirst"><code><a href="MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUri(android.net.Uri)">setUri</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUri(android.net.Uri)">setUri</a></span>&#8203;(<a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a>&nbsp;uri)</code></th>
<td class="colLast"> <td class="colLast">
@ -340,6 +347,17 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<div class="block">Sets the optional label for this subtitle track.</div> <div class="block">Sets the optional label for this subtitle track.</div>
</li> </li>
</ul> </ul>
<a id="setId(java.lang.String)">
<!-- -->
</a>
<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
<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>
</ul>
<a id="build()"> <a id="build()">
<!-- --> <!-- -->
</a> </a>

View File

@ -187,40 +187,47 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td> <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="#id">id</a></span></code></th>
<td class="colLast">
<div class="block">The ID of the subtitles.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#label">label</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#label">label</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The label.</div> <div class="block">The label.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td> <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="#language">language</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#language">language</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The language.</div> <div class="block">The language.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td> <td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mimeType">mimeType</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mimeType">mimeType</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The optional MIME type of the subtitle file, or <code>null</code> if unspecified.</div> <div class="block">The optional MIME type of the subtitle file, or <code>null</code> if unspecified.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.RoleFlags int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.RoleFlags int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#roleFlags">roleFlags</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#roleFlags">roleFlags</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The role flags.</div> <div class="block">The role flags.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.SelectionFlags int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.SelectionFlags int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectionFlags">selectionFlags</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectionFlags">selectionFlags</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The selection flags.</div> <div class="block">The selection flags.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code><a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a></code></td> <td class="colFirst"><code><a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink" target="_top">Uri</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri">uri</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri">uri</a></span></code></th>
<td class="colLast"> <td class="colLast">
@ -343,7 +350,7 @@ public final&nbsp;@com.google.android.exoplayer2.C.RoleFlags int roleFlags</pre>
<a id="label"> <a id="label">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>label</h4> <h4>label</h4>
<pre>@Nullable <pre>@Nullable
@ -351,6 +358,18 @@ public final&nbsp;<a href="https://developer.android.com/reference/java/lang/Str
<div class="block">The label.</div> <div class="block">The label.</div>
</li> </li>
</ul> </ul>
<a id="id">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>id</h4>
<pre>@Nullable
public final&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a> id</pre>
<div class="block">The ID of the subtitles. This will be propagated to the <a href="Format.html#id"><code>Format.id</code></a> of the subtitle
track created from this configuration.</div>
</li>
</ul>
</li> </li>
</ul> </ul>
</section> </section>

View File

@ -153,7 +153,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<th class="colLast" scope="col">Description</th> <th class="colLast" scope="col">Description</th>
</tr> </tr>
<tr id="i0" class="altColor"> <tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;</code></td> <td class="colFirst"><code>static <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retrieveMetadata(android.content.Context,com.google.android.exoplayer2.MediaItem)">retrieveMetadata</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, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retrieveMetadata(android.content.Context,com.google.android.exoplayer2.MediaItem)">retrieveMetadata</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="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th> <a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th>
<td class="colLast"> <td class="colLast">
@ -161,8 +161,8 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</td> </td>
</tr> </tr>
<tr id="i1" class="rowColor"> <tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;</code></td> <td class="colFirst"><code>static <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retrieveMetadata(com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.MediaItem)">retrieveMetadata</a></span>&#8203;(<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retrieveMetadata(com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.MediaItem)">retrieveMetadata</a></span>&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th> <a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div> <div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
@ -198,39 +198,39 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>retrieveMetadata</h4> <h4>retrieveMetadata</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;&nbsp;retrieveMetadata&#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, <pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;&nbsp;retrieveMetadata&#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="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</pre> <a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</pre>
<div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>. <div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.
<p>This is equivalent to using <a href="#retrieveMetadata(com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.MediaItem)"><code>retrieveMetadata(MediaSourceFactory, MediaItem)</code></a> with a <p>This is equivalent to using <a href="#retrieveMetadata(com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.MediaItem)"><code>retrieveMetadata(MediaSource.Factory, MediaItem)</code></a> with a
<a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> and a <a href="extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor"><code>DefaultExtractorsFactory</code></a> with <a href="extractor/mp4/Mp4Extractor.html#FLAG_READ_MOTION_PHOTO_METADATA"><code>Mp4Extractor.FLAG_READ_MOTION_PHOTO_METADATA</code></a> and <a href="extractor/mp4/Mp4Extractor.html#FLAG_READ_SEF_DATA"><code>Mp4Extractor.FLAG_READ_SEF_DATA</code></a> set.</div> <a href="source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> and a <a href="extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor"><code>DefaultExtractorsFactory</code></a> with <a href="extractor/mp4/Mp4Extractor.html#FLAG_READ_MOTION_PHOTO_METADATA"><code>Mp4Extractor.FLAG_READ_MOTION_PHOTO_METADATA</code></a> and <a href="extractor/mp4/Mp4Extractor.html#FLAG_READ_SEF_DATA"><code>Mp4Extractor.FLAG_READ_SEF_DATA</code></a> set.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <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>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>mediaItem</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> whose metadata should be retrieved.</dd> <dd><code>mediaItem</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> whose metadata should be retrieved.</dd>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink"><code>ListenableFuture</code></a> of the result.</dd> <dd>A <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink"><code>ListenableFuture</code></a> of the result.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="retrieveMetadata(com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.MediaItem)"> <a id="retrieveMetadata(com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.MediaItem)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>retrieveMetadata</h4> <h4>retrieveMetadata</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;&nbsp;retrieveMetadata&#8203;(<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <pre class="methodSignature">public static&nbsp;<a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink">ListenableFuture</a>&lt;<a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a>&gt;&nbsp;retrieveMetadata&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</pre> <a href="MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a>&nbsp;mediaItem)</pre>
<div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>. <div class="block">Retrieves the <a href="source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a> corresponding to a <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.
<p>This method is thread-safe.</div> <p>This method is thread-safe.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mediaSourceFactory</code> - mediaSourceFactory The <a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a> to use to read the <dd><code>mediaSourceFactory</code> - mediaSourceFactory The <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a> to use to read the
data.</dd> data.</dd>
<dd><code>mediaItem</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> whose metadata should be retrieved.</dd> <dd><code>mediaItem</code> - The <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> whose metadata should be retrieved.</dd>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="https://guava.dev/releases/27.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink"><code>ListenableFuture</code></a> of the result.</dd> <dd>A <a href="https://guava.dev/releases/31.0.1-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html?is-external=true" title="class or interface in com.google.common.util.concurrent" class="externalLink"><code>ListenableFuture</code></a> of the result.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>

View File

@ -163,7 +163,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- --> <!-- -->
</a> </a>
<h3>Nested classes/interfaces inherited from interface&nbsp;com.google.android.exoplayer2.<a href="RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></h3> <h3>Nested classes/interfaces 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.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a>, <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a>, <a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></code></li> <code><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a>, <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a>, <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a>, <a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></code></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -187,7 +187,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<!-- --> <!-- -->
</a> </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> <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#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#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_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> </ul>
</li> </li>
</ul> </ul>
@ -308,7 +308,7 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</tr> </tr>
<tr id="i10" class="altColor"> <tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(int,java.lang.Object)">handleMessage</a></span>&#8203;(int&nbsp;messageType, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></span>&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
<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;message)</code></th> <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;message)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Handles a message delivered to the target.</div> <div class="block">Handles a message delivered to the target.</div>
@ -322,6 +322,14 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</td> </td>
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(int,com.google.android.exoplayer2.analytics.PlayerId)">init</a></span>&#8203;(int&nbsp;index,
<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">Initializes the renderer for playback with a player.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -329,42 +337,42 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
renderer is next disabled or reset.</div> renderer is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i13" class="rowColor"> <tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Whether the renderer is ready for the <a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instance to transition to <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div> <div class="block">Whether the renderer is ready for the <a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instance to transition to <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i14" class="altColor"> <tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Whether the renderer is able to immediately render media from the current position.</div> <div class="block">Whether the renderer is able to immediately render media from the current position.</div>
</td> </td>
</tr> </tr>
<tr id="i15" class="rowColor"> <tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div> <div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i16" class="altColor"> <tr id="i17" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisabled()">onDisabled</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisabled()">onDisabled</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is disabled.</div> <div class="block">Called when the renderer is disabled.</div>
</td> </td>
</tr> </tr>
<tr id="i17" class="rowColor"> <tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEnabled(boolean)">onEnabled</a></span>&#8203;(boolean&nbsp;joining)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onEnabled(boolean)">onEnabled</a></span>&#8203;(boolean&nbsp;joining)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is enabled.</div> <div class="block">Called when the renderer is enabled.</div>
</td> </td>
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <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, <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> boolean&nbsp;joining)</code></th>
@ -372,35 +380,35 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Called when the position is reset.</div> <div class="block">Called when the position is reset.</div>
</td> </td>
</tr> </tr>
<tr id="i19" class="rowColor"> <tr id="i20" class="altColor">
<td class="colFirst"><code>protected void</code></td> <td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onRendererOffsetChanged(long)">onRendererOffsetChanged</a></span>&#8203;(long&nbsp;offsetUs)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onRendererOffsetChanged(long)">onRendererOffsetChanged</a></span>&#8203;(long&nbsp;offsetUs)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer's offset has been changed.</div> <div class="block">Called when the renderer's offset has been changed.</div>
</td> </td>
</tr> </tr>
<tr id="i20" class="altColor"> <tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onReset()">onReset</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is reset.</div> <div class="block">Called when the renderer is reset.</div>
</td> </td>
</tr> </tr>
<tr id="i21" class="rowColor"> <tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStarted()">onStarted</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is started.</div> <div class="block">Called when the renderer is started.</div>
</td> </td>
</tr> </tr>
<tr id="i22" class="altColor"> <tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onStopped()">onStopped</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Called when the renderer is stopped.</div> <div class="block">Called when the renderer is stopped.</div>
</td> </td>
</tr> </tr>
<tr id="i23" class="rowColor"> <tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats,
<a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream, <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream,
@ -410,21 +418,21 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
<div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div> <div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div>
</td> </td>
</tr> </tr>
<tr id="i24" class="altColor"> <tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Forces the renderer to give up any resources (e.g.</div> <div class="block">Forces the renderer to give up any resources (e.g.</div>
</td> </td>
</tr> </tr>
<tr id="i25" class="rowColor"> <tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Signals to the renderer that a position discontinuity has occurred.</div> <div class="block">Signals to the renderer that a position discontinuity has occurred.</div>
</td> </td>
</tr> </tr>
<tr id="i26" class="altColor"> <tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -432,13 +440,6 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
before it is next disabled or reset.</div> before it is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIndex(int)">setIndex</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Sets the index of this renderer within the player.</div>
</td>
</tr>
<tr id="i28" class="altColor"> <tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start()">start</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start()">start</a></span>()</code></th>
@ -455,14 +456,14 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</td> </td>
</tr> </tr>
<tr id="i30" class="altColor"> <tr id="i30" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@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.Format)">supportsFormat</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#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"> <td class="colLast">
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div> <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div>
</td> </td>
</tr> </tr>
<tr id="i31" class="rowColor"> <tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
@ -564,20 +565,22 @@ implements <a href="Renderer.html" title="interface in com.google.android.exopla
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setIndex(int)"> <a id="init(int,com.google.android.exoplayer2.analytics.PlayerId)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setIndex</h4> <h4>init</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;setIndex&#8203;(int&nbsp;index)</pre> <pre class="methodSignature">public final&nbsp;void&nbsp;init&#8203;(int&nbsp;index,
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Renderer.html#setIndex(int)">Renderer</a></code></span></div> <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;playerId)</pre>
<div class="block">Sets the index of this renderer within the player.</div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="Renderer.html#init(int,com.google.android.exoplayer2.analytics.PlayerId)">Renderer</a></code></span></div>
<div class="block">Initializes the renderer for playback with a player.</div>
<dl> <dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Renderer.html#setIndex(int)">setIndex</a></code>&nbsp;in interface&nbsp;<code><a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></code></dd> <dd><code><a href="Renderer.html#init(int,com.google.android.exoplayer2.analytics.PlayerId)">init</a></code>&nbsp;in interface&nbsp;<code><a href="Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The renderer index.</dd> <dd><code>index</code> - The renderer index within the player.</dd>
<dd><code>playerId</code> - The <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -941,9 +944,8 @@ public final&nbsp;<a href="source/SampleStream.html" title="interface in com.goo
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>supportsFormat</h4> <h4>supportsFormat</h4>
<pre class="methodSignature"><a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a> <pre class="methodSignature">public&nbsp;@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)
public&nbsp;int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format) throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsFormat(com.google.android.exoplayer2.Format)">RendererCapabilities</a></code></span></div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsFormat(com.google.android.exoplayer2.Format)">RendererCapabilities</a></code></span></div>
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div> <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div>
<dl> <dl>
@ -964,9 +966,8 @@ public&nbsp;int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>supportsMixedMimeTypeAdaptation</h4> <h4>supportsMixedMimeTypeAdaptation</h4>
<pre class="methodSignature"><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">@AdaptiveSupport</a> <pre class="methodSignature">public&nbsp;@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;supportsMixedMimeTypeAdaptation()
public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation() throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsMixedMimeTypeAdaptation()">RendererCapabilities</a></code></span></div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RendererCapabilities.html#supportsMixedMimeTypeAdaptation()">RendererCapabilities</a></code></span></div>
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
that have different MIME types.</div> that have different MIME types.</div>
@ -981,22 +982,21 @@ public&nbsp;int&nbsp;supportsMixedMimeTypeAdaptation()
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="handleMessage(int,java.lang.Object)"> <a id="handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>handleMessage</h4> <h4>handleMessage</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;handleMessage&#8203;(<a href="Renderer.MessageType.html" title="annotation in com.google.android.exoplayer2">@MessageType</a> <pre class="methodSignature">public&nbsp;void&nbsp;handleMessage&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
int&nbsp;messageType,
@Nullable @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;message) <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;message)
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre> throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)">PlayerMessage.Target</a></code></span></div> <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">PlayerMessage.Target</a></code></span></div>
<div class="block">Handles a message delivered to the target.</div> <div class="block">Handles a message delivered to the target.</div>
<dl> <dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)">handleMessage</a></code>&nbsp;in interface&nbsp;<code><a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></code></dd> <dd><code><a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></code>&nbsp;in interface&nbsp;<code><a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>messageType</code> - The message type.</dd> <dd><code>messageType</code> - The message type.</dd>
<dd><code>message</code> - The message payload.</dd> <dd><code>message</code> - The message payload.</dd>

View File

@ -213,10 +213,10 @@ extends <a href="https://developer.android.com/reference/java/io/IOException.htm
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>protected </code></td> <td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,boolean,int)">ParserException</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;message, <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,boolean,@com.google.android.exoplayer2.C.DataTypeint)">ParserException</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;message,
<a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause, <a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause,
boolean&nbsp;contentIsMalformed, boolean&nbsp;contentIsMalformed,
int&nbsp;dataType)</code></th> @com.google.android.exoplayer2.C.DataType int&nbsp;dataType)</code></th>
<td class="colLast">&nbsp;</td> <td class="colLast">&nbsp;</td>
</tr> </tr>
</table> </table>
@ -343,7 +343,7 @@ extends <a href="https://developer.android.com/reference/java/io/IOException.htm
<!-- --> <!-- -->
</a> </a>
<h3>Constructor Detail</h3> <h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,boolean,int)"> <a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,boolean,@com.google.android.exoplayer2.C.DataTypeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
@ -354,8 +354,7 @@ extends <a href="https://developer.android.com/reference/java/io/IOException.htm
@Nullable @Nullable
<a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause, <a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&nbsp;cause,
boolean&nbsp;contentIsMalformed, boolean&nbsp;contentIsMalformed,
<a href="C.DataType.html" title="annotation in com.google.android.exoplayer2">@DataType</a> @com.google.android.exoplayer2.C.DataType int&nbsp;dataType)</pre>
int&nbsp;dataType)</pre>
</li> </li>
</ul> </ul>
</li> </li>

View File

@ -115,9 +115,10 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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>)
protected static @interface <span class="memberNameLabel">PlaybackException.FieldNumber</span></pre> protected static @interface <span class="memberNameLabel">PlaybackException.FieldNumber</span></pre>
<div class="block">Identifiers for fields in 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> which represents a playback exception. Subclasses <div class="block">Identifiers for fields in 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> which represents a playback exception. Subclasses
may use <a href="PlaybackException.html#FIELD_CUSTOM_ID_BASE"><code>PlaybackException.FIELD_CUSTOM_ID_BASE</code></a> to generate more keys using <a href="PlaybackException.html#keyForField(int)"><code>PlaybackException.keyForField(int)</code></a>. may use <a href="PlaybackException.html#FIELD_CUSTOM_ID_BASE"><code>PlaybackException.FIELD_CUSTOM_ID_BASE</code></a> to generate more keys using <a href="PlaybackException.html#keyForField(@com.google.android.exoplayer2.PlaybackException.FieldNumberint)"><code>PlaybackException.keyForField(int)</code></a>.
<p>Note: Changes to the Bundleable implementation must be backwards compatible, so as to avoid <p>Note: Changes to the Bundleable implementation must be backwards compatible, so as to avoid
breaking communication across different Bundleable implementation versions.</div> breaking communication across different Bundleable implementation versions.</div>

View File

@ -578,7 +578,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</tr> </tr>
<tr id="i3" class="rowColor"> <tr id="i3" class="rowColor">
<td class="colFirst"><code>protected static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td> <td class="colFirst"><code>protected static <a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyForField(int)">keyForField</a></span>&#8203;(int&nbsp;field)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyForField(@com.google.android.exoplayer2.PlaybackException.FieldNumberint)">keyForField</a></span>&#8203;(@com.google.android.exoplayer2.PlaybackException.FieldNumber int&nbsp;field)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Converts the given <a href="PlaybackException.FieldNumber.html" title="annotation in com.google.android.exoplayer2"><code>PlaybackException.FieldNumber</code></a> to a string which can be used as a field key when <div class="block">Converts the given <a href="PlaybackException.FieldNumber.html" title="annotation in com.google.android.exoplayer2"><code>PlaybackException.FieldNumber</code></a> to a string which can be used as a field key when
implementing <a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div> implementing <a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div>
@ -1173,7 +1173,7 @@ public final&nbsp;@com.google.android.exoplayer2.PlaybackException.ErrorCode int
and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>. and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.
<p>Subclasses should obtain their <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle's</code></a> field keys by applying a non-negative <p>Subclasses should obtain their <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle's</code></a> field keys by applying a non-negative
offset on this constant and passing the result to <a href="#keyForField(int)"><code>keyForField(int)</code></a>.</div> offset on this constant and passing the result to <a href="#keyForField(@com.google.android.exoplayer2.PlaybackException.FieldNumberint)"><code>keyForField(int)</code></a>.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.PlaybackException.FIELD_CUSTOM_ID_BASE">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.PlaybackException.FIELD_CUSTOM_ID_BASE">Constant Field Values</a></dd>
@ -1309,14 +1309,13 @@ public&nbsp;<a href="https://developer.android.com/reference/android/os/Bundle.h
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="keyForField(int)"> <a id="keyForField(@com.google.android.exoplayer2.PlaybackException.FieldNumberint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>keyForField</h4> <h4>keyForField</h4>
<pre class="methodSignature">protected static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;keyForField&#8203;(<a href="PlaybackException.FieldNumber.html" title="annotation in com.google.android.exoplayer2" target="_top">@FieldNumber</a> <pre class="methodSignature">protected static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;keyForField&#8203;(@com.google.android.exoplayer2.PlaybackException.FieldNumber int&nbsp;field)</pre>
int&nbsp;field)</pre>
<div class="block">Converts the given <a href="PlaybackException.FieldNumber.html" title="annotation in com.google.android.exoplayer2"><code>PlaybackException.FieldNumber</code></a> to a string which can be used as a field key when <div class="block">Converts the given <a href="PlaybackException.FieldNumber.html" title="annotation in com.google.android.exoplayer2"><code>PlaybackException.FieldNumber</code></a> to a string which can be used as a field key when
implementing <a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div> implementing <a href="#toBundle()"><code>toBundle()</code></a> and <a href="Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div>
</li> </li>

View File

@ -195,71 +195,62 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.EventListener.html" title="interface in com.google.android.exoplayer2">Player.EventListener</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="Player.Listener.html" title="interface in com.google.android.exoplayer2"><code>Player.Listener</code></a>.</div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td> <td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</div> <div class="block">A set of <a href="Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Listener of all changes in the Player.</div> <div class="block">Listener of all changes in the Player.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Reasons for media item transitions.</div> <div class="block">Reasons for media item transitions.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Reason why playback is suppressed even though <a href="#getPlayWhenReady()"><code>getPlayWhenReady()</code></a> is <code>true</code>.</div> <div class="block">Reason why playback is suppressed even though <a href="#getPlayWhenReady()"><code>getPlayWhenReady()</code></a> is <code>true</code>.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Reasons for <a href="#getPlayWhenReady()"><code>playWhenReady</code></a> changes.</div> <div class="block">Reasons for <a href="#getPlayWhenReady()"><code>playWhenReady</code></a> changes.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td> <td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PositionInfo.html" title="class in com.google.android.exoplayer2">Player.PositionInfo</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.PositionInfo.html" title="class in com.google.android.exoplayer2">Player.PositionInfo</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Position info describing a playback position involved in a discontinuity.</div> <div class="block">Position info describing a playback position involved in a discontinuity.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Repeat modes for playback.</div> <div class="block">Repeat modes for playback.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback state.</div> <div class="block">Playback state.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></span></code></th>
<td class="colLast"> <td class="colLast">
@ -582,6 +573,20 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_AUDIO_ATTRIBUTES_CHANGED">EVENT_AUDIO_ATTRIBUTES_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getAudioAttributes()"><code>getAudioAttributes()</code></a> changed.</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="#EVENT_AUDIO_SESSION_ID">EVENT_AUDIO_SESSION_ID</a></span></code></th>
<td class="colLast">
<div class="block">The audio session id was set.</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="#EVENT_AVAILABLE_COMMANDS_CHANGED">EVENT_AVAILABLE_COMMANDS_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_AVAILABLE_COMMANDS_CHANGED">EVENT_AVAILABLE_COMMANDS_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)"><code>isCommandAvailable(int)</code></a> changed for at least one <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a>.</div> <div class="block"><a href="#isCommandAvailable(@com.google.android.exoplayer2.Player.Commandint)"><code>isCommandAvailable(int)</code></a> changed for at least one <a href="Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>Player.Command</code></a>.</div>
@ -589,39 +594,67 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_CUES">EVENT_CUES</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getCurrentCues()"><code>getCurrentCues()</code></a> changed.</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="#EVENT_DEVICE_INFO_CHANGED">EVENT_DEVICE_INFO_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getDeviceInfo()"><code>getDeviceInfo()</code></a> changed.</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="#EVENT_DEVICE_VOLUME_CHANGED">EVENT_DEVICE_VOLUME_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getDeviceVolume()"><code>getDeviceVolume()</code></a> changed.</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="#EVENT_IS_LOADING_CHANGED">EVENT_IS_LOADING_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_IS_LOADING_CHANGED">EVENT_IS_LOADING_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#isLoading()"><code>isLoading()</code></a> ()} changed.</div> <div class="block"><a href="#isLoading()"><code>isLoading()</code></a> ()} changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_IS_PLAYING_CHANGED">EVENT_IS_PLAYING_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_IS_PLAYING_CHANGED">EVENT_IS_PLAYING_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#isPlaying()"><code>isPlaying()</code></a> changed.</div> <div class="block"><a href="#isPlaying()"><code>isPlaying()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED">EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED">EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getMaxSeekToPreviousPosition()"><code>getMaxSeekToPreviousPosition()</code></a> changed.</div> <div class="block"><a href="#getMaxSeekToPreviousPosition()"><code>getMaxSeekToPreviousPosition()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MEDIA_ITEM_TRANSITION">EVENT_MEDIA_ITEM_TRANSITION</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MEDIA_ITEM_TRANSITION">EVENT_MEDIA_ITEM_TRANSITION</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getCurrentMediaItem()"><code>getCurrentMediaItem()</code></a> changed or the player started repeating the current item.</div> <div class="block"><a href="#getCurrentMediaItem()"><code>getCurrentMediaItem()</code></a> changed or the player started repeating the current item.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MEDIA_METADATA_CHANGED">EVENT_MEDIA_METADATA_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_MEDIA_METADATA_CHANGED">EVENT_MEDIA_METADATA_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getMediaMetadata()"><code>getMediaMetadata()</code></a> changed.</div> <div class="block"><a href="#getMediaMetadata()"><code>getMediaMetadata()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_METADATA">EVENT_METADATA</a></span></code></th>
<td class="colLast">
<div class="block">Metadata associated with the current playback time changed.</div>
</td>
</tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_PLAY_WHEN_READY_CHANGED">EVENT_PLAY_WHEN_READY_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_PLAY_WHEN_READY_CHANGED">EVENT_PLAY_WHEN_READY_CHANGED</a></span></code></th>
@ -673,152 +706,188 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_RENDERED_FIRST_FRAME">EVENT_RENDERED_FIRST_FRAME</a></span></code></th>
<td class="colLast">
<div class="block">A frame is rendered for the first time since setting the surface, or since the renderer was
reset, or since the stream being rendered was changed.</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="#EVENT_REPEAT_MODE_CHANGED">EVENT_REPEAT_MODE_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_REPEAT_MODE_CHANGED">EVENT_REPEAT_MODE_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getRepeatMode()"><code>getRepeatMode()</code></a> changed.</div> <div class="block"><a href="#getRepeatMode()"><code>getRepeatMode()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SEEK_BACK_INCREMENT_CHANGED">EVENT_SEEK_BACK_INCREMENT_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SEEK_BACK_INCREMENT_CHANGED">EVENT_SEEK_BACK_INCREMENT_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getSeekBackIncrement()"><code>getSeekBackIncrement()</code></a> changed.</div> <div class="block"><a href="#getSeekBackIncrement()"><code>getSeekBackIncrement()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SEEK_FORWARD_INCREMENT_CHANGED">EVENT_SEEK_FORWARD_INCREMENT_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SEEK_FORWARD_INCREMENT_CHANGED">EVENT_SEEK_FORWARD_INCREMENT_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getSeekForwardIncrement()"><code>getSeekForwardIncrement()</code></a> changed.</div> <div class="block"><a href="#getSeekForwardIncrement()"><code>getSeekForwardIncrement()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SHUFFLE_MODE_ENABLED_CHANGED">EVENT_SHUFFLE_MODE_ENABLED_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SHUFFLE_MODE_ENABLED_CHANGED">EVENT_SHUFFLE_MODE_ENABLED_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getShuffleModeEnabled()"><code>getShuffleModeEnabled()</code></a> changed.</div> <div class="block"><a href="#getShuffleModeEnabled()"><code>getShuffleModeEnabled()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SKIP_SILENCE_ENABLED_CHANGED">EVENT_SKIP_SILENCE_ENABLED_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block">Skipping silences in the audio stream is enabled or disabled.</div>
</td>
</tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_SURFACE_SIZE_CHANGED">EVENT_SURFACE_SIZE_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block">The size of the surface onto which the video is being rendered changed.</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="#EVENT_TIMELINE_CHANGED">EVENT_TIMELINE_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_TIMELINE_CHANGED">EVENT_TIMELINE_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getCurrentTimeline()"><code>getCurrentTimeline()</code></a> changed.</div> <div class="block"><a href="#getCurrentTimeline()"><code>getCurrentTimeline()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_TRACK_SELECTION_PARAMETERS_CHANGED">EVENT_TRACK_SELECTION_PARAMETERS_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_TRACK_SELECTION_PARAMETERS_CHANGED">EVENT_TRACK_SELECTION_PARAMETERS_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getTrackSelectionParameters()"><code>getTrackSelectionParameters()</code></a> changed.</div> <div class="block"><a href="#getTrackSelectionParameters()"><code>getTrackSelectionParameters()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_TRACKS_CHANGED">EVENT_TRACKS_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_TRACKS_CHANGED">EVENT_TRACKS_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><a href="#getCurrentTracksInfo()"><code>getCurrentTracksInfo()</code></a> changed.</div> <div class="block"><a href="#getCurrentTracksInfo()"><code>getCurrentTracksInfo()</code></a> changed.</div>
</td> </td>
</tr> </tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_VIDEO_SIZE_CHANGED">EVENT_VIDEO_SIZE_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getVideoSize()"><code>getVideoSize()</code></a> changed.</div>
</td>
</tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVENT_VOLUME_CHANGED">EVENT_VOLUME_CHANGED</a></span></code></th>
<td class="colLast">
<div class="block"><a href="#getVolume()"><code>getVolume()</code></a> changed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_AUTO">MEDIA_ITEM_TRANSITION_REASON_AUTO</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_AUTO">MEDIA_ITEM_TRANSITION_REASON_AUTO</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has automatically transitioned to the next media item.</div> <div class="block">Playback has automatically transitioned to the next media item.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED">MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED">MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The current media item has changed because of a change in the playlist.</div> <div class="block">The current media item has changed because of a change in the playlist.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_REPEAT">MEDIA_ITEM_TRANSITION_REASON_REPEAT</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_REPEAT">MEDIA_ITEM_TRANSITION_REASON_REPEAT</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The media item has been repeated.</div> <div class="block">The media item has been repeated.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_SEEK">MEDIA_ITEM_TRANSITION_REASON_SEEK</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_ITEM_TRANSITION_REASON_SEEK">MEDIA_ITEM_TRANSITION_REASON_SEEK</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">A seek to another media item has occurred.</div> <div class="block">A seek to another media item has occurred.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has been paused to avoid becoming noisy.</div> <div class="block">Playback has been paused to avoid becoming noisy.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS">PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has been paused because of a loss of audio focus.</div> <div class="block">Playback has been paused because of a loss of audio focus.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM">PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM">PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has been paused at the end of a media item.</div> <div class="block">Playback has been paused at the end of a media item.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_REMOTE">PLAY_WHEN_READY_CHANGE_REASON_REMOTE</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_REMOTE">PLAY_WHEN_READY_CHANGE_REASON_REMOTE</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has been started or paused because of a remote change.</div> <div class="block">Playback has been started or paused because of a remote change.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST">PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST">PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback has been started or paused by a call to <a href="#setPlayWhenReady(boolean)"><code>setPlayWhenReady(boolean)</code></a>.</div> <div class="block">Playback has been started or paused by a call to <a href="#setPlayWhenReady(boolean)"><code>setPlayWhenReady(boolean)</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAYBACK_SUPPRESSION_REASON_NONE">PLAYBACK_SUPPRESSION_REASON_NONE</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAYBACK_SUPPRESSION_REASON_NONE">PLAYBACK_SUPPRESSION_REASON_NONE</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback is not suppressed.</div> <div class="block">Playback is not suppressed.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS">PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS">PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Playback is suppressed due to transient audio focus loss.</div> <div class="block">Playback is suppressed due to transient audio focus loss.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_ALL">REPEAT_MODE_ALL</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_ALL">REPEAT_MODE_ALL</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Repeats the entire timeline infinitely.</div> <div class="block">Repeats the entire timeline infinitely.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_OFF">REPEAT_MODE_OFF</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_OFF">REPEAT_MODE_OFF</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Normal playback without repetition.</div> <div class="block">Normal playback without repetition.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_ONE">REPEAT_MODE_ONE</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REPEAT_MODE_ONE">REPEAT_MODE_ONE</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Repeats the currently playing <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> infinitely during ongoing playback.</div> <div class="block">Repeats the currently playing <a href="MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> infinitely during ongoing playback.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_BUFFERING">STATE_BUFFERING</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_BUFFERING">STATE_BUFFERING</a></span></code></th>
<td class="colLast"> <td class="colLast">
@ -826,35 +895,35 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
so.</div> so.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_ENDED">STATE_ENDED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_ENDED">STATE_ENDED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The player has finished playing the media.</div> <div class="block">The player has finished playing the media.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_IDLE">STATE_IDLE</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_IDLE">STATE_IDLE</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The player is idle, meaning it holds only limited resources.</div> <div class="block">The player is idle, meaning it holds only limited resources.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_READY">STATE_READY</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATE_READY">STATE_READY</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The player is able to immediately play from its current position.</div> <div class="block">The player is able to immediately play from its current position.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED">TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED">TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Timeline changed as a result of a change of the playlist items or the order of the items.</div> <div class="block">Timeline changed as a result of a change of the playlist items or the order of the items.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIMELINE_CHANGE_REASON_SOURCE_UPDATE">TIMELINE_CHANGE_REASON_SOURCE_UPDATE</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TIMELINE_CHANGE_REASON_SOURCE_UPDATE">TIMELINE_CHANGE_REASON_SOURCE_UPDATE</a></span></code></th>
<td class="colLast"> <td class="colLast">
@ -2502,6 +2571,161 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="EVENT_AUDIO_ATTRIBUTES_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_AUDIO_ATTRIBUTES_CHANGED</h4>
<pre>static final&nbsp;int EVENT_AUDIO_ATTRIBUTES_CHANGED</pre>
<div class="block"><a href="#getAudioAttributes()"><code>getAudioAttributes()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_AUDIO_ATTRIBUTES_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_AUDIO_SESSION_ID">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_AUDIO_SESSION_ID</h4>
<pre>static final&nbsp;int EVENT_AUDIO_SESSION_ID</pre>
<div class="block">The audio session id was set.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_AUDIO_SESSION_ID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_VOLUME_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_VOLUME_CHANGED</h4>
<pre>static final&nbsp;int EVENT_VOLUME_CHANGED</pre>
<div class="block"><a href="#getVolume()"><code>getVolume()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_VOLUME_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_SKIP_SILENCE_ENABLED_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_SKIP_SILENCE_ENABLED_CHANGED</h4>
<pre>static final&nbsp;int EVENT_SKIP_SILENCE_ENABLED_CHANGED</pre>
<div class="block">Skipping silences in the audio stream is enabled or disabled.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_SKIP_SILENCE_ENABLED_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_SURFACE_SIZE_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_SURFACE_SIZE_CHANGED</h4>
<pre>static final&nbsp;int EVENT_SURFACE_SIZE_CHANGED</pre>
<div class="block">The size of the surface onto which the video is being rendered changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_SURFACE_SIZE_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_VIDEO_SIZE_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_VIDEO_SIZE_CHANGED</h4>
<pre>static final&nbsp;int EVENT_VIDEO_SIZE_CHANGED</pre>
<div class="block"><a href="#getVideoSize()"><code>getVideoSize()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_VIDEO_SIZE_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_RENDERED_FIRST_FRAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_RENDERED_FIRST_FRAME</h4>
<pre>static final&nbsp;int EVENT_RENDERED_FIRST_FRAME</pre>
<div class="block">A frame is rendered for the first time since setting the surface, or since the renderer was
reset, or since the stream being rendered was changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_RENDERED_FIRST_FRAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_CUES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_CUES</h4>
<pre>static final&nbsp;int EVENT_CUES</pre>
<div class="block"><a href="#getCurrentCues()"><code>getCurrentCues()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_CUES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_METADATA">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_METADATA</h4>
<pre>static final&nbsp;int EVENT_METADATA</pre>
<div class="block">Metadata associated with the current playback time changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_METADATA">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_DEVICE_INFO_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_DEVICE_INFO_CHANGED</h4>
<pre>static final&nbsp;int EVENT_DEVICE_INFO_CHANGED</pre>
<div class="block"><a href="#getDeviceInfo()"><code>getDeviceInfo()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_DEVICE_INFO_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVENT_DEVICE_VOLUME_CHANGED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVENT_DEVICE_VOLUME_CHANGED</h4>
<pre>static final&nbsp;int EVENT_DEVICE_VOLUME_CHANGED</pre>
<div class="block"><a href="#getDeviceVolume()"><code>getDeviceVolume()</code></a> changed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Player.EVENT_DEVICE_VOLUME_CHANGED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="COMMAND_PLAY_PAUSE"> <a id="COMMAND_PLAY_PAUSE">
<!-- --> <!-- -->
</a> </a>
@ -3801,7 +4025,7 @@ void&nbsp;seekToPreviousWindow()</pre>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximum seek to previous position, in milliseconds.</dd> <dd>The maximum seek to previous position, in milliseconds.</dd>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.EventListener.html#onMaxSeekToPreviousPositionChanged(long)"><code>Player.EventListener.onMaxSeekToPreviousPositionChanged(long)</code></a></dd> <dd><a href="Player.Listener.html#onMaxSeekToPreviousPositionChanged(long)"><code>Player.Listener.onMaxSeekToPreviousPositionChanged(long)</code></a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -4042,7 +4266,7 @@ void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<div class="block">Returns the available track groups.</div> <div class="block">Returns the available track groups.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.EventListener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd> <dd><a href="Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -4064,7 +4288,7 @@ void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
components that is not assigned any selected tracks.</div> components that is not assigned any selected tracks.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.EventListener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd> <dd><a href="Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -4078,7 +4302,7 @@ void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<div class="block">Returns the available tracks, as well as the tracks' support, type, and selection status.</div> <div class="block">Returns the available tracks, as well as the tracks' support, type, and selection status.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.EventListener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd> <dd><a href="Player.Listener.html#onTracksChanged(com.google.android.exoplayer2.source.TrackGroupArray,com.google.android.exoplayer2.trackselection.TrackSelectionArray)"><code>Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)</code></a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -4092,7 +4316,7 @@ void&nbsp;stop&#8203;(boolean&nbsp;reset)</pre>
<div class="block">Returns the parameters constraining the track selection.</div> <div class="block">Returns the parameters constraining the track selection.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Player.EventListener.html#onTrackSelectionParametersChanged(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)"><code>}</code></a></dd> <dd><a href="Player.Listener.html#onTrackSelectionParametersChanged(com.google.android.exoplayer2.trackselection.TrackSelectionParameters)"><code>}</code></a></dd>
</dl> </dl>
</li> </li>
</ul> </ul>

View File

@ -157,7 +157,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr id="i0" class="altColor"> <tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(int,java.lang.Object)">handleMessage</a></span>&#8203;(int&nbsp;messageType, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></span>&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
<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;message)</code></th> <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;message)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Handles a message delivered to the target.</div> <div class="block">Handles a message delivered to the target.</div>
@ -180,14 +180,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<!-- --> <!-- -->
</a> </a>
<h3>Method Detail</h3> <h3>Method Detail</h3>
<a id="handleMessage(int,java.lang.Object)"> <a id="handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>handleMessage</h4> <h4>handleMessage</h4>
<pre class="methodSignature">void&nbsp;handleMessage&#8203;(<a href="Renderer.MessageType.html" title="annotation in com.google.android.exoplayer2">@MessageType</a> <pre class="methodSignature">void&nbsp;handleMessage&#8203;(@com.google.android.exoplayer2.Renderer.MessageType int&nbsp;messageType,
int&nbsp;messageType,
@Nullable @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;message) <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;message)
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre> throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>

View File

@ -260,7 +260,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></td> <td class="colFirst"><code><a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPayload()">getPayload</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPayload()">getPayload</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the message payload forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <div class="block">Returns 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>
</td> </td>
</tr> </tr>
<tr id="i7" class="rowColor"> <tr id="i7" class="rowColor">
@ -289,7 +289,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the message type forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <div class="block">Returns 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>
</td> </td>
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i11" class="rowColor">
@ -340,7 +340,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></code></td> <td class="colFirst"><code><a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPayload(java.lang.Object)">setPayload</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;payload)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPayload(java.lang.Object)">setPayload</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;payload)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the message payload forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <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>
</td> </td>
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i18" class="altColor">
@ -362,7 +362,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<td class="colFirst"><code><a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></code></td> <td class="colFirst"><code><a href="PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setType(int)">setType</a></span>&#8203;(int&nbsp;messageType)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setType(int)">setType</a></span>&#8203;(int&nbsp;messageType)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Sets the message type forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <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>
</td> </td>
</tr> </tr>
</table> </table>
@ -453,7 +453,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<li class="blockList"> <li class="blockList">
<h4>setType</h4> <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">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(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>messageType</code> - The message type.</dd> <dd><code>messageType</code> - The message type.</dd>
@ -471,7 +471,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<li class="blockList"> <li class="blockList">
<h4>getType</h4> <h4>getType</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getType()</pre> <pre class="methodSignature">public&nbsp;int&nbsp;getType()</pre>
<div class="block">Returns the message type forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <div class="block">Returns 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>
</li> </li>
</ul> </ul>
<a id="setPayload(java.lang.Object)"> <a id="setPayload(java.lang.Object)">
@ -482,7 +482,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h4>setPayload</h4> <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">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> <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(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <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> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>payload</code> - The message payload.</dd> <dd><code>payload</code> - The message payload.</dd>
@ -501,7 +501,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<h4>getPayload</h4> <h4>getPayload</h4>
<pre class="methodSignature">@Nullable <pre class="methodSignature">@Nullable
public&nbsp;<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;getPayload()</pre> public&nbsp;<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;getPayload()</pre>
<div class="block">Returns the message payload forwarded to <a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)"><code>PlayerMessage.Target.handleMessage(int, Object)</code></a>.</div> <div class="block">Returns 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>
</li> </li>
</ul> </ul>
<a id="setHandler(android.os.Handler)"> <a id="setHandler(android.os.Handler)">

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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">Renderer.MessageType</span></pre> public static @interface <span class="memberNameLabel">Renderer.MessageType</span></pre>
<div class="block">Represents a type of message that can be passed to a renderer. May be one of <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT"><code>Renderer.MSG_SET_VIDEO_OUTPUT</code></a>, <a href="Renderer.html#MSG_SET_VOLUME"><code>Renderer.MSG_SET_VOLUME</code></a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES"><code>Renderer.MSG_SET_AUDIO_ATTRIBUTES</code></a>, <a href="Renderer.html#MSG_SET_SCALING_MODE"><code>Renderer.MSG_SET_SCALING_MODE</code></a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY"><code>Renderer.MSG_SET_CHANGE_FRAME_RATE_STRATEGY</code></a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO"><code>Renderer.MSG_SET_AUX_EFFECT_INFO</code></a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER"><code>Renderer.MSG_SET_VIDEO_FRAME_METADATA_LISTENER</code></a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER"><code>Renderer.MSG_SET_CAMERA_MOTION_LISTENER</code></a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED"><code>Renderer.MSG_SET_SKIP_SILENCE_ENABLED</code></a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID"><code>Renderer.MSG_SET_AUDIO_SESSION_ID</code></a> or <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER"><code>Renderer.MSG_SET_WAKEUP_LISTENER</code></a>. May also be an app-defined <div class="block">Represents a type of message that can be passed to a renderer. May be one of <a href="Renderer.html#MSG_SET_VIDEO_OUTPUT"><code>Renderer.MSG_SET_VIDEO_OUTPUT</code></a>, <a href="Renderer.html#MSG_SET_VOLUME"><code>Renderer.MSG_SET_VOLUME</code></a>, <a href="Renderer.html#MSG_SET_AUDIO_ATTRIBUTES"><code>Renderer.MSG_SET_AUDIO_ATTRIBUTES</code></a>, <a href="Renderer.html#MSG_SET_SCALING_MODE"><code>Renderer.MSG_SET_SCALING_MODE</code></a>, <a href="Renderer.html#MSG_SET_CHANGE_FRAME_RATE_STRATEGY"><code>Renderer.MSG_SET_CHANGE_FRAME_RATE_STRATEGY</code></a>, <a href="Renderer.html#MSG_SET_AUX_EFFECT_INFO"><code>Renderer.MSG_SET_AUX_EFFECT_INFO</code></a>, <a href="Renderer.html#MSG_SET_VIDEO_FRAME_METADATA_LISTENER"><code>Renderer.MSG_SET_VIDEO_FRAME_METADATA_LISTENER</code></a>, <a href="Renderer.html#MSG_SET_CAMERA_MOTION_LISTENER"><code>Renderer.MSG_SET_CAMERA_MOTION_LISTENER</code></a>, <a href="Renderer.html#MSG_SET_SKIP_SILENCE_ENABLED"><code>Renderer.MSG_SET_SKIP_SILENCE_ENABLED</code></a>, <a href="Renderer.html#MSG_SET_AUDIO_SESSION_ID"><code>Renderer.MSG_SET_AUDIO_SESSION_ID</code></a> or <a href="Renderer.html#MSG_SET_WAKEUP_LISTENER"><code>Renderer.MSG_SET_WAKEUP_LISTENER</code></a>. May also be an app-defined
value (see <a href="Renderer.html#MSG_CUSTOM_BASE"><code>Renderer.MSG_CUSTOM_BASE</code></a>).</div> value (see <a href="Renderer.html#MSG_CUSTOM_BASE"><code>Renderer.MSG_CUSTOM_BASE</code></a>).</div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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">Renderer.State</span></pre> public static @interface <span class="memberNameLabel">Renderer.State</span></pre>
<div class="block">The renderer states. One of <a href="Renderer.html#STATE_DISABLED"><code>Renderer.STATE_DISABLED</code></a>, <a href="Renderer.html#STATE_ENABLED"><code>Renderer.STATE_ENABLED</code></a> or <a href="Renderer.html#STATE_STARTED"><code>Renderer.STATE_STARTED</code></a>.</div> <div class="block">The renderer states. One of <a href="Renderer.html#STATE_DISABLED"><code>Renderer.STATE_DISABLED</code></a>, <a href="Renderer.html#STATE_ENABLED"><code>Renderer.STATE_ENABLED</code></a> or <a href="Renderer.html#STATE_STARTED"><code>Renderer.STATE_STARTED</code></a>.</div>
</li> </li>

View File

@ -211,35 +211,35 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUDIO_ATTRIBUTES">MSG_SET_AUDIO_ATTRIBUTES</a></span></code></th>
<td class="colLast"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUDIO_SESSION_ID">MSG_SET_AUDIO_SESSION_ID</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The type of a message that can be passed to audio and video renderers via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>.</div> <div class="block">The type of a message that can be passed to audio and video renderers via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_AUX_EFFECT_INFO">MSG_SET_AUX_EFFECT_INFO</a></span></code></th>
<td class="colLast"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_CAMERA_MOTION_LISTENER">MSG_SET_CAMERA_MOTION_LISTENER</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block">The type of a message that can be passed to a camera motion renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>.</div> <div class="block">The type of a message that can be passed to a camera motion renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_CHANGE_FRAME_RATE_STRATEGY">MSG_SET_CHANGE_FRAME_RATE_STRATEGY</a></span></code></th>
<td class="colLast"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
@ -247,43 +247,43 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_SCALING_MODE">MSG_SET_SCALING_MODE</a></span></code></th> <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"> <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 <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(Target)</code></a>.</div> <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>.</div>
</td> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <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> <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"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <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> <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"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <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> <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"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MSG_SET_VOLUME">MSG_SET_VOLUME</a></span></code></th>
<td class="colLast"> <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(Target)</code></a>.</div> <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> </td>
</tr> </tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static int</code></td> <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> <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"> <td class="colLast">
<div class="block">The type of a message that can be passed to a <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>, to inform the renderer that it can schedule waking up another <div class="block">The type of a message that can be passed to a <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>, to inform the renderer that it can schedule
component.</div> waking up another component.</div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
@ -376,7 +376,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
</td> </td>
</tr> </tr>
<tr id="i6" class="altColor"> <tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.Renderer.State int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getState()">getState</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getState()">getState</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the current state of the renderer.</div> <div class="block">Returns the current state of the renderer.</div>
@ -404,6 +404,14 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
</td> </td>
</tr> </tr>
<tr id="i10" class="altColor"> <tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(int,com.google.android.exoplayer2.analytics.PlayerId)">init</a></span>&#8203;(int&nbsp;index,
<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">Initializes the renderer for playback with a player.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCurrentStreamFinal()">isCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -411,28 +419,28 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
renderer is next disabled or reset.</div> renderer is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnded()">isEnded</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Whether the renderer is ready for the <a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instance to transition to <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div> <div class="block">Whether the renderer is ready for the <a href="ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instance to transition to <a href="Player.html#STATE_ENDED"><code>Player.STATE_ENDED</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Whether the renderer is able to immediately render media from the current position.</div> <div class="block">Whether the renderer is able to immediately render media from the current position.</div>
</td> </td>
</tr> </tr>
<tr id="i13" class="rowColor"> <tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maybeThrowStreamError()">maybeThrowStreamError</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div> <div class="block">Throws an error that's preventing the renderer from reading from its <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i14" class="altColor"> <tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#render(long,long)">render</a></span>&#8203;(long&nbsp;positionUs, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#render(long,long)">render</a></span>&#8203;(long&nbsp;positionUs,
long&nbsp;elapsedRealtimeUs)</code></th> long&nbsp;elapsedRealtimeUs)</code></th>
@ -440,7 +448,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<div class="block">Incrementally renders the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div> <div class="block">Incrementally renders the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i15" class="rowColor"> <tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceStream(com.google.android.exoplayer2.Format%5B%5D,com.google.android.exoplayer2.source.SampleStream,long,long)">replaceStream</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>[]&nbsp;formats,
<a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream, <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a>&nbsp;stream,
@ -450,21 +458,21 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div> <div class="block">Replaces the <a href="source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> from which samples will be consumed.</div>
</td> </td>
</tr> </tr>
<tr id="i16" class="altColor"> <tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Forces the renderer to give up any resources (e.g.</div> <div class="block">Forces the renderer to give up any resources (e.g.</div>
</td> </td>
</tr> </tr>
<tr id="i17" class="rowColor"> <tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetPosition(long)">resetPosition</a></span>&#8203;(long&nbsp;positionUs)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Signals to the renderer that a position discontinuity has occurred.</div> <div class="block">Signals to the renderer that a position discontinuity has occurred.</div>
</td> </td>
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td> <td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentStreamFinal()">setCurrentStreamFinal</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -472,13 +480,6 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
before it is next disabled or reset.</div> before it is next disabled or reset.</div>
</td> </td>
</tr> </tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIndex(int)">setIndex</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Sets the index of this renderer within the player.</div>
</td>
</tr>
<tr id="i20" class="altColor"> <tr id="i20" class="altColor">
<td class="colFirst"><code>default void</code></td> <td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackSpeed(float,float)">setPlaybackSpeed</a></span>&#8203;(float&nbsp;currentPlaybackSpeed, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPlaybackSpeed(float,float)">setPlaybackSpeed</a></span>&#8203;(float&nbsp;currentPlaybackSpeed,
@ -508,7 +509,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<!-- --> <!-- -->
</a> </a>
<h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.<a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></h3> <h3>Methods inherited from interface&nbsp;com.google.android.exoplayer2.<a href="PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></h3>
<code><a href="PlayerMessage.Target.html#handleMessage(int,java.lang.Object)">handleMessage</a></code></li> <code><a href="PlayerMessage.Target.html#handleMessage(@com.google.android.exoplayer2.Renderer.MessageTypeint,java.lang.Object)">handleMessage</a></code></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -533,8 +534,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_VIDEO_OUTPUT</h4> <h4>MSG_SET_VIDEO_OUTPUT</h4>
<pre>static final&nbsp;int MSG_SET_VIDEO_OUTPUT</pre> <pre>static final&nbsp;int MSG_SET_VIDEO_OUTPUT</pre>
<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(Target)</code></a>. The message payload is normally a <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>, however <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>. The message payload is normally a <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink"><code>Surface</code></a>, however some video renderers may accept other outputs (e.g., <a href="video/VideoDecoderOutputBufferRenderer.html" title="interface in com.google.android.exoplayer2.video" target="_top"><code>VideoDecoderOutputBufferRenderer</code></a>).
some video renderers may accept other outputs (e.g., <a href="video/VideoDecoderOutputBufferRenderer.html" title="interface in com.google.android.exoplayer2.video"><code>VideoDecoderOutputBufferRenderer</code></a>).
<p>If the receiving renderer does not support the payload type as an output, then it will clear <p>If the receiving renderer does not support the payload type as an output, then it will clear
any existing output that it has.</div> any existing output that it has.</div>
@ -551,8 +551,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_VOLUME</h4> <h4>MSG_SET_VOLUME</h4>
<pre>static final&nbsp;int MSG_SET_VOLUME</pre> <pre>static final&nbsp;int MSG_SET_VOLUME</pre>
<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(Target)</code></a>. The message payload should be a <a href="https://developer.android.com/reference/java/lang/Float.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Float</code></a> with 0 being <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>. The message payload should be a <a href="https://developer.android.com/reference/java/lang/Float.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Float</code></a>
silence and 1 being unity gain.</div> with 0 being silence and 1 being unity gain.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_VOLUME">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_VOLUME">Constant Field Values</a></dd>
@ -566,9 +566,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_AUDIO_ATTRIBUTES</h4> <h4>MSG_SET_AUDIO_ATTRIBUTES</h4>
<pre>static final&nbsp;int MSG_SET_AUDIO_ATTRIBUTES</pre> <pre>static final&nbsp;int MSG_SET_AUDIO_ATTRIBUTES</pre>
<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(Target)</code></a>. The message payload should be an <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a> <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>. The message payload should be an <a href="audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a> instance that will configure the underlying audio track. If not set, the
instance that will configure the underlying audio track. If not set, the default audio default audio attributes will be used. They are suitable for general media playback.
attributes will be used. They are suitable for general media playback.
<p>Setting the audio attributes during playback may introduce a short gap in audio output as <p>Setting the audio attributes during playback may introduce a short gap in audio output as
the audio track is recreated. A new audio session id will also be generated. the audio track is recreated. A new audio session id will also be generated.
@ -581,7 +580,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
equivalent stream type using <a href="util/Util.html#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)"><code>Util.getStreamTypeForAudioUsage(int)</code></a>. equivalent stream type using <a href="util/Util.html#getStreamTypeForAudioUsage(@com.google.android.exoplayer2.C.AudioUsageint)"><code>Util.getStreamTypeForAudioUsage(int)</code></a>.
<p>To get audio attributes that are equivalent to a legacy stream type, pass the stream type to <p>To get audio attributes that are equivalent to a legacy stream type, pass the stream type to
<a href="util/Util.html#getAudioUsageForStreamType(int)"><code>Util.getAudioUsageForStreamType(int)</code></a> and use the returned <a href="C.AudioUsage.html" title="annotation in com.google.android.exoplayer2"><code>C.AudioUsage</code></a> to build <a href="util/Util.html#getAudioUsageForStreamType(@com.google.android.exoplayer2.C.StreamTypeint)"><code>Util.getAudioUsageForStreamType(int)</code></a> and use the returned <a href="C.AudioUsage.html" title="annotation in com.google.android.exoplayer2"><code>C.AudioUsage</code></a> to build
an audio attributes instance.</div> an audio attributes instance.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
@ -597,8 +596,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<h4>MSG_SET_SCALING_MODE</h4> <h4>MSG_SET_SCALING_MODE</h4>
<pre>static final&nbsp;int MSG_SET_SCALING_MODE</pre> <pre>static final&nbsp;int MSG_SET_SCALING_MODE</pre>
<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 <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(Target)</code></a>. The message payload should be one of the integer <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>. The message payload should be one of the
scaling modes in <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>. integer scaling modes in <a href="C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoScalingMode</code></a>.
<p>Note that the scaling mode only applies if 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> targeted by the renderer is <p>Note that the scaling mode only applies if 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> targeted by the renderer is
owned by a <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a>.</div> owned by a <a href="https://developer.android.com/reference/android/view/SurfaceView.html" title="class or interface in android.view" class="externalLink" target="_top"><code>SurfaceView</code></a>.</div>
@ -615,8 +614,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_CHANGE_FRAME_RATE_STRATEGY</h4> <h4>MSG_SET_CHANGE_FRAME_RATE_STRATEGY</h4>
<pre>static final&nbsp;int MSG_SET_CHANGE_FRAME_RATE_STRATEGY</pre> <pre>static final&nbsp;int MSG_SET_CHANGE_FRAME_RATE_STRATEGY</pre>
<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(Target)</code></a>. The message payload should be one of the integer strategy <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>. The message payload should be one of the
constants in <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</div> integer strategy constants in <a href="C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2"><code>C.VideoChangeFrameRateStrategy</code></a>.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_CHANGE_FRAME_RATE_STRATEGY">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_CHANGE_FRAME_RATE_STRATEGY">Constant Field Values</a></dd>
@ -630,8 +629,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_AUX_EFFECT_INFO</h4> <h4>MSG_SET_AUX_EFFECT_INFO</h4>
<pre>static final&nbsp;int MSG_SET_AUX_EFFECT_INFO</pre> <pre>static final&nbsp;int MSG_SET_AUX_EFFECT_INFO</pre>
<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(Target)</code></a>. The message payload should be an <a href="audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio"><code>AuxEffectInfo</code></a> <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>. The message payload should be an <a href="audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio"><code>AuxEffectInfo</code></a> instance representing an auxiliary audio effect for the underlying audio track.</div>
instance representing an auxiliary audio effect for the underlying audio track.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_AUX_EFFECT_INFO">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_AUX_EFFECT_INFO">Constant Field Values</a></dd>
@ -645,7 +643,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_VIDEO_FRAME_METADATA_LISTENER</h4> <h4>MSG_SET_VIDEO_FRAME_METADATA_LISTENER</h4>
<pre>static final&nbsp;int MSG_SET_VIDEO_FRAME_METADATA_LISTENER</pre> <pre>static final&nbsp;int MSG_SET_VIDEO_FRAME_METADATA_LISTENER</pre>
<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(Target)</code></a>. The message payload should be a <a href="video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video"><code>VideoFrameMetadataListener</code></a> instance, or null.</div> <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>. The message payload should be a <a href="video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video"><code>VideoFrameMetadataListener</code></a> instance, or null.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_VIDEO_FRAME_METADATA_LISTENER">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_VIDEO_FRAME_METADATA_LISTENER">Constant Field Values</a></dd>
@ -659,8 +657,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_CAMERA_MOTION_LISTENER</h4> <h4>MSG_SET_CAMERA_MOTION_LISTENER</h4>
<pre>static final&nbsp;int MSG_SET_CAMERA_MOTION_LISTENER</pre> <pre>static final&nbsp;int MSG_SET_CAMERA_MOTION_LISTENER</pre>
<div class="block">The type of a message that can be passed to a camera motion renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>. The message payload should be a <a href="video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical"><code>CameraMotionListener</code></a> <div class="block">The type of a message that can be passed to a camera motion renderer via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>. The message payload should be a <a href="video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical"><code>CameraMotionListener</code></a> instance, or null.</div>
instance, or null.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_CAMERA_MOTION_LISTENER">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_CAMERA_MOTION_LISTENER">Constant Field Values</a></dd>
@ -674,8 +671,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_SKIP_SILENCE_ENABLED</h4> <h4>MSG_SET_SKIP_SILENCE_ENABLED</h4>
<pre>static final&nbsp;int MSG_SET_SKIP_SILENCE_ENABLED</pre> <pre>static final&nbsp;int MSG_SET_SKIP_SILENCE_ENABLED</pre>
<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(Target)</code></a>. The message payload should be a <a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Boolean</code></a> instance <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>. The message payload should be a <a href="https://developer.android.com/reference/java/lang/Boolean.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Boolean</code></a>
telling whether to enable or disable skipping silences in the audio stream.</div> instance telling whether to enable or disable skipping silences in the audio stream.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_SKIP_SILENCE_ENABLED">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_SKIP_SILENCE_ENABLED">Constant Field Values</a></dd>
@ -689,9 +686,9 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_AUDIO_SESSION_ID</h4> <h4>MSG_SET_AUDIO_SESSION_ID</h4>
<pre>static final&nbsp;int MSG_SET_AUDIO_SESSION_ID</pre> <pre>static final&nbsp;int MSG_SET_AUDIO_SESSION_ID</pre>
<div class="block">The type of a message that can be passed to audio and video renderers via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>. The message payload should be an <a href="https://developer.android.com/reference/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Integer</code></a> instance <div class="block">The type of a message that can be passed to audio and video 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/java/lang/Integer.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Integer</code></a> instance representing the audio session ID that will be attached to the underlying
representing the audio session ID that will be attached to the underlying audio track. Video audio track. Video renderers that support tunneling will use the audio session ID when
renderers that support tunneling will use the audio session ID when tunneling is enabled.</div> tunneling is enabled.</div>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_AUDIO_SESSION_ID">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.Renderer.MSG_SET_AUDIO_SESSION_ID">Constant Field Values</a></dd>
@ -705,8 +702,8 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<li class="blockList"> <li class="blockList">
<h4>MSG_SET_WAKEUP_LISTENER</h4> <h4>MSG_SET_WAKEUP_LISTENER</h4>
<pre>static final&nbsp;int MSG_SET_WAKEUP_LISTENER</pre> <pre>static final&nbsp;int MSG_SET_WAKEUP_LISTENER</pre>
<div class="block">The type of a message that can be passed to a <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a>, to inform the renderer that it can schedule waking up another <div class="block">The type of a message that can be passed to a <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> via <a href="ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(PlayerMessage.Target)</code></a>, to inform the renderer that it can schedule
component. waking up another component.
<p>The message payload must be a <a href="Renderer.WakeupListener.html" title="interface in com.google.android.exoplayer2"><code>Renderer.WakeupListener</code></a> instance.</div> <p>The message payload must be a <a href="Renderer.WakeupListener.html" title="interface in com.google.android.exoplayer2"><code>Renderer.WakeupListener</code></a> instance.</div>
<dl> <dl>
@ -832,17 +829,19 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="setIndex(int)"> <a id="init(int,com.google.android.exoplayer2.analytics.PlayerId)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setIndex</h4> <h4>init</h4>
<pre class="methodSignature">void&nbsp;setIndex&#8203;(int&nbsp;index)</pre> <pre class="methodSignature">void&nbsp;init&#8203;(int&nbsp;index,
<div class="block">Sets the index of this renderer within the player.</div> <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a>&nbsp;playerId)</pre>
<div class="block">Initializes the renderer for playback with a player.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The renderer index.</dd> <dd><code>index</code> - The renderer index within the player.</dd>
<dd><code>playerId</code> - The <a href="analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics"><code>PlayerId</code></a> of the player.</dd>
</dl> </dl>
</li> </li>
</ul> </ul>
@ -869,8 +868,7 @@ extends <a href="PlayerMessage.Target.html" title="interface in com.google.andro
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>getState</h4> <h4>getState</h4>
<pre class="methodSignature"><a href="Renderer.State.html" title="annotation in com.google.android.exoplayer2">@State</a> <pre class="methodSignature">@com.google.android.exoplayer2.Renderer.State int&nbsp;getState()</pre>
int&nbsp;getState()</pre>
<div class="block">Returns the current state of the renderer.</div> <div class="block">Returns the current state of the renderer.</div>
<dl> <dl>
<dt><span class="returnLabel">Returns:</span></dt> <dt><span class="returnLabel">Returns:</span></dt>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.AdaptiveSupport</span></pre> public static @interface <span class="memberNameLabel">RendererCapabilities.AdaptiveSupport</span></pre>
<div class="block">Level of renderer support for adaptive format switches. One of <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS"><code>RendererCapabilities.ADAPTIVE_SEAMLESS</code></a>, <div class="block">Level of renderer support for adaptive format switches. One of <a href="RendererCapabilities.html#ADAPTIVE_SEAMLESS"><code>RendererCapabilities.ADAPTIVE_SEAMLESS</code></a>,
<a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS"><code>RendererCapabilities.ADAPTIVE_NOT_SEAMLESS</code></a> or <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED"><code>RendererCapabilities.ADAPTIVE_NOT_SUPPORTED</code></a>.</div> <a href="RendererCapabilities.html#ADAPTIVE_NOT_SEAMLESS"><code>RendererCapabilities.ADAPTIVE_NOT_SEAMLESS</code></a> or <a href="RendererCapabilities.html#ADAPTIVE_NOT_SUPPORTED"><code>RendererCapabilities.ADAPTIVE_NOT_SUPPORTED</code></a>.</div>

View File

@ -115,12 +115,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.Capabilities</span></pre> public static @interface <span class="memberNameLabel">RendererCapabilities.Capabilities</span></pre>
<div class="block">Combined renderer capabilities. <div class="block">Combined renderer capabilities.
<p>This is a bitwise OR of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> and <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>. Use <a href="RendererCapabilities.html#getFormatSupport(int)"><code>RendererCapabilities.getFormatSupport(int)</code></a>, <a href="RendererCapabilities.html#getAdaptiveSupport(int)"><code>RendererCapabilities.getAdaptiveSupport(int)</code></a> or <p>This is a bitwise OR of <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> and <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a>. Use <a href="RendererCapabilities.html#getFormatSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)"><code>RendererCapabilities.getFormatSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int)</code></a>, <a href="RendererCapabilities.html#getAdaptiveSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)"><code>RendererCapabilities.getAdaptiveSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int)</code></a>, <a href="RendererCapabilities.html#getTunnelingSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)"><code>RendererCapabilities.getTunnelingSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int)</code></a>, <a href="RendererCapabilities.html#getHardwareAccelerationSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)"><code>RendererCapabilities.getHardwareAccelerationSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int)</code></a> and <a href="RendererCapabilities.html#getDecoderSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)"><code>RendererCapabilities.getDecoderSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int)</code></a> to obtain individual
<a href="RendererCapabilities.html#getTunnelingSupport(int)"><code>RendererCapabilities.getTunnelingSupport(int)</code></a> to obtain the individual flags. And use <a href="RendererCapabilities.html#create(int)"><code>RendererCapabilities.create(int)</code></a> components. Use <a href="RendererCapabilities.html#create(@com.google.android.exoplayer2.C.FormatSupportint)"><code>RendererCapabilities.create(int)</code></a>, <a href="RendererCapabilities.html#create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint)"><code>RendererCapabilities.create(int, int, int)</code></a> or <a href="RendererCapabilities.html#create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint,@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupportint,@com.google.android.exoplayer2.RendererCapabilities.DecoderSupportint)"><code>RendererCapabilities.create(int,
or <a href="RendererCapabilities.html#create(int,int,int)"><code>RendererCapabilities.create(int, int, int)</code></a> to create the combined capabilities. int, int, int, int)</code></a> to create combined capabilities from individual components.
<p>Possible values: <p>Possible values:
@ -131,6 +132,9 @@ public static @interface <span class="memberNameLabel">RendererCapabilities.Capa
support for the format itself is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a> or <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>. support for the format itself is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a> or <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>.
<li><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>: The level of support for tunneling. One of <a href="RendererCapabilities.html#TUNNELING_SUPPORTED"><code>RendererCapabilities.TUNNELING_SUPPORTED</code></a> and <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED"><code>RendererCapabilities.TUNNELING_NOT_SUPPORTED</code></a>. Only set if the level of <li><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>: The level of support for tunneling. One of <a href="RendererCapabilities.html#TUNNELING_SUPPORTED"><code>RendererCapabilities.TUNNELING_SUPPORTED</code></a> and <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED"><code>RendererCapabilities.TUNNELING_NOT_SUPPORTED</code></a>. Only set if the level of
support for the format itself is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a> or <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>. support for the format itself is <a href="C.html#FORMAT_HANDLED"><code>C.FORMAT_HANDLED</code></a> or <a href="C.html#FORMAT_EXCEEDS_CAPABILITIES"><code>C.FORMAT_EXCEEDS_CAPABILITIES</code></a>.
<li><a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a>: The level of support for hardware acceleration. One
of <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED"><code>RendererCapabilities.HARDWARE_ACCELERATION_SUPPORTED</code></a> and <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED"><code>RendererCapabilities.HARDWARE_ACCELERATION_NOT_SUPPORTED</code></a>.
<li><a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a>: The 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>.
</ul></div> </ul></div>
</li> </li>
</ul> </ul>

View File

@ -2,7 +2,7 @@
<!-- NewPage --> <!-- NewPage -->
<html lang="en"> <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 --> <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>C.AudioManagerOffloadMode (ExoPlayer library)</title> <title>RendererCapabilities.DecoderSupport (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <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="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style"> <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
@ -19,7 +19,7 @@
<script type="text/javascript"><!-- <script type="text/javascript"><!--
try { try {
if (location.href.indexOf('is-external=true') == -1) { if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="C.AudioManagerOffloadMode (ExoPlayer library)"; parent.document.title="RendererCapabilities.DecoderSupport (ExoPlayer library)";
} }
} }
catch(err) { catch(err) {
@ -106,16 +106,20 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<main role="main"> <main role="main">
<div class="header"> <div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div> <div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.google.android.exoplayer2</a></div>
<h2 title="Annotation Type C.AudioManagerOffloadMode" class="title">Annotation Type C.AudioManagerOffloadMode</h2> <h2 title="Annotation Type RendererCapabilities.DecoderSupport" class="title">Annotation Type RendererCapabilities.DecoderSupport</h2>
</div> </div>
<div class="contentContainer"> <div class="contentContainer">
<div class="description"> <div class="description">
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<hr> <hr>
<pre><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>) <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
public static @interface <span class="memberNameLabel">C.AudioManagerOffloadMode</span></pre> <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>)
<div class="block">Playback offload mode. One of <a href="C.html#PLAYBACK_OFFLOAD_NOT_SUPPORTED"><code>C.PLAYBACK_OFFLOAD_NOT_SUPPORTED</code></a>,<a href="C.html#PLAYBACK_OFFLOAD_SUPPORTED"><code>C.PLAYBACK_OFFLOAD_SUPPORTED</code></a> or <a href="C.html#PLAYBACK_OFFLOAD_GAPLESS_SUPPORTED"><code>C.PLAYBACK_OFFLOAD_GAPLESS_SUPPORTED</code></a>.</div> <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>.
<p>For video renderers, the level of support is indicated for non-tunneled output.</div>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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>)
<a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a> <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="memberNameLabel">RendererCapabilities.FormatSupport</span></pre> public static @interface <span class="memberNameLabel">RendererCapabilities.FormatSupport</span></pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>

View File

@ -0,0 +1,188 @@
<!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>RendererCapabilities.HardwareAccelerationSupport (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="RendererCapabilities.HardwareAccelerationSupport (ExoPlayer library)";
}
}
catch(err) {
}
//-->
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>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li>Optional</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Element</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="Annotation Type RendererCapabilities.HardwareAccelerationSupport" class="title">Annotation Type RendererCapabilities.HardwareAccelerationSupport</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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.HardwareAccelerationSupport</span></pre>
<div class="block">Level of renderer support for hardware acceleration. One of <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_SUPPORTED"><code>RendererCapabilities.HARDWARE_ACCELERATION_SUPPORTED</code></a> and <a href="RendererCapabilities.html#HARDWARE_ACCELERATION_NOT_SUPPORTED"><code>RendererCapabilities.HARDWARE_ACCELERATION_NOT_SUPPORTED</code></a>.
<p>For video renderers, the level of support is indicated for non-tunneled output.</div>
</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>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li>Optional</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Element</li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -115,6 +115,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<hr> <hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a> <pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<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/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.TunnelingSupport</span></pre> public static @interface <span class="memberNameLabel">RendererCapabilities.TunnelingSupport</span></pre>
<div class="block">Level of renderer support for tunneling. One of <a href="RendererCapabilities.html#TUNNELING_SUPPORTED"><code>RendererCapabilities.TUNNELING_SUPPORTED</code></a> or <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED"><code>RendererCapabilities.TUNNELING_NOT_SUPPORTED</code></a>.</div> <div class="block">Level of renderer support for tunneling. One of <a href="RendererCapabilities.html#TUNNELING_SUPPORTED"><code>RendererCapabilities.TUNNELING_SUPPORTED</code></a> or <a href="RendererCapabilities.html#TUNNELING_NOT_SUPPORTED"><code>RendererCapabilities.TUNNELING_NOT_SUPPORTED</code></a>.</div>
</li> </li>

View File

@ -25,7 +25,7 @@
catch(err) { catch(err) {
} }
//--> //-->
var data = {"i0":1,"i1":1,"i2":1,"i3":1,"i4":6,"i5":6,"i6":1,"i7":6,"i8":6}; var data = {"i0":1,"i1":1,"i2":1,"i3":1,"i4":1,"i5":1,"i6":1,"i7":6,"i8":6,"i9":1,"i10":6,"i11":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor"; var altColor = "altColor";
var rowColor = "rowColor"; var rowColor = "rowColor";
@ -163,6 +163,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a></span></code></th>
<td class="colLast">
<div class="block">Level of decoder support.</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="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -170,6 +177,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</div> </div>
</td> </td>
</tr> </tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a></span></code></th>
<td class="colLast">
<div class="block">Level of renderer support for hardware acceleration.</div>
</td>
</tr>
<tr class="rowColor"> <tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td> <td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></span></code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></span></code></th>
@ -226,6 +240,20 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_FALLBACK">DECODER_SUPPORT_FALLBACK</a></span></code></th>
<td class="colLast">
<div class="block">The renderer will use a fallback decoder.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DECODER_SUPPORT_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">
<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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORMAT_EXCEEDS_CAPABILITIES">FORMAT_EXCEEDS_CAPABILITIES</a></span></code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@ -278,6 +306,34 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<td class="colFirst"><code>static int</code></td> <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">
<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">
<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">
<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">
<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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TUNNELING_NOT_SUPPORTED">TUNNELING_NOT_SUPPORTED</a></span></code></th>
<td class="colLast"> <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> <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>
@ -287,7 +343,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<td class="colFirst"><code>static int</code></td> <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> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TUNNELING_SUPPORT_MASK">TUNNELING_SUPPORT_MASK</a></span></code></th>
<td class="colLast"> <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="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> only.</div> <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> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
@ -316,65 +372,90 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
<th class="colLast" scope="col">Description</th> <th class="colLast" scope="col">Description</th>
</tr> </tr>
<tr id="i0" class="altColor"> <tr id="i0" class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.Capabilities int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(int)">create</a></span>&#8203;(int&nbsp;formatSupport)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(@com.google.android.exoplayer2.C.FormatSupportint)">create</a></span>&#8203;(@com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> for the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</div> <div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> for the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i1" class="rowColor"> <tr id="i1" class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.Capabilities int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(int,int,int)">create</a></span>&#8203;(int&nbsp;formatSupport, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint)">create</a></span>&#8203;(@com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport,
int&nbsp;adaptiveSupport, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;adaptiveSupport,
int&nbsp;tunnelingSupport)</code></th> @com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int&nbsp;tunnelingSupport)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> and <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>.</div> <div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> and <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i2" class="altColor"> <tr id="i2" class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.Capabilities int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAdaptiveSupport(int)">getAdaptiveSupport</a></span>&#8203;(int&nbsp;supportFlags)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint,@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupportint,@com.google.android.exoplayer2.RendererCapabilities.DecoderSupportint)">create</a></span>&#8203;(@com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport,
@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;adaptiveSupport,
@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int&nbsp;tunnelingSupport,
@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupport int&nbsp;hardwareAccelerationSupport,
@com.google.android.exoplayer2.RendererCapabilities.DecoderSupport int&nbsp;decoderSupport)</code></th>
<td class="colLast">
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> and <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAdaptiveSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">getAdaptiveSupport</a></span>&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i3" class="rowColor"> <tr id="i4" class="altColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.DecoderSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFormatSupport(int)">getFormatSupport</a></span>&#8203;(int&nbsp;supportFlags)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDecoderSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">getDecoderSupport</a></span>&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.C.FormatSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFormatSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">getFormatSupport</a></span>&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i4" class="altColor"> <tr id="i6" class="altColor">
<td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHardwareAccelerationSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">getHardwareAccelerationSupport</a></span>&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
</td>
</tr>
<tr id="i7" 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> <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="#getName()">getName</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the name of the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>.</div> <div class="block">Returns the name of the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i5" class="rowColor"> <tr id="i8" class="altColor">
<td class="colFirst"><code>@com.google.android.exoplayer2.C.TrackType int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.C.TrackType int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackType()">getTrackType</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackType()">getTrackType</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the track type that the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> handles.</div> <div class="block">Returns the track type that the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> handles.</div>
</td> </td>
</tr> </tr>
<tr id="i6" class="altColor"> <tr id="i9" class="rowColor">
<td class="colFirst"><code>static int</code></td> <td class="colFirst"><code>static @com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTunnelingSupport(int)">getTunnelingSupport</a></span>&#8203;(int&nbsp;supportFlags)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTunnelingSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">getTunnelingSupport</a></span>&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
</td> </td>
</tr> </tr>
<tr id="i7" class="rowColor"> <tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@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.Format)">supportsFormat</a></span>&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#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"> <td class="colLast">
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div> <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div>
</td> </td>
</tr> </tr>
<tr id="i8" class="altColor"> <tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsMixedMimeTypeAdaptation()">supportsMixedMimeTypeAdaptation</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
@ -561,7 +642,7 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
<li class="blockList"> <li class="blockList">
<h4>TUNNELING_SUPPORT_MASK</h4> <h4>TUNNELING_SUPPORT_MASK</h4>
<pre>static final&nbsp;int TUNNELING_SUPPORT_MASK</pre> <pre>static final&nbsp;int TUNNELING_SUPPORT_MASK</pre>
<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="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> only.</div> <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>
<dl> <dl>
<dt><span class="seeLabel">See Also:</span></dt> <dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.TUNNELING_SUPPORT_MASK">Constant Field Values</a></dd> <dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.TUNNELING_SUPPORT_MASK">Constant Field Values</a></dd>
@ -585,7 +666,7 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
<a id="TUNNELING_NOT_SUPPORTED"> <a id="TUNNELING_NOT_SUPPORTED">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>TUNNELING_NOT_SUPPORTED</h4> <h4>TUNNELING_NOT_SUPPORTED</h4>
<pre>static final&nbsp;int TUNNELING_NOT_SUPPORTED</pre> <pre>static final&nbsp;int TUNNELING_NOT_SUPPORTED</pre>
@ -596,6 +677,90 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="HARDWARE_ACCELERATION_SUPPORT_MASK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HARDWARE_ACCELERATION_SUPPORT_MASK</h4>
<pre>static final&nbsp;int HARDWARE_ACCELERATION_SUPPORT_MASK</pre>
<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>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.HARDWARE_ACCELERATION_SUPPORT_MASK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="HARDWARE_ACCELERATION_SUPPORTED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HARDWARE_ACCELERATION_SUPPORTED</h4>
<pre>static final&nbsp;int HARDWARE_ACCELERATION_SUPPORTED</pre>
<div class="block">The renderer is able to use hardware acceleration.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.HARDWARE_ACCELERATION_SUPPORTED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="HARDWARE_ACCELERATION_NOT_SUPPORTED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HARDWARE_ACCELERATION_NOT_SUPPORTED</h4>
<pre>static final&nbsp;int HARDWARE_ACCELERATION_NOT_SUPPORTED</pre>
<div class="block">The renderer is not able to use hardware acceleration.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.HARDWARE_ACCELERATION_NOT_SUPPORTED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="MODE_SUPPORT_MASK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MODE_SUPPORT_MASK</h4>
<pre>static final&nbsp;int MODE_SUPPORT_MASK</pre>
<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>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.MODE_SUPPORT_MASK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DECODER_SUPPORT_PRIMARY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DECODER_SUPPORT_PRIMARY</h4>
<pre>static final&nbsp;int DECODER_SUPPORT_PRIMARY</pre>
<div class="block">The renderer is able to use the primary decoder for the format's MIME type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.DECODER_SUPPORT_PRIMARY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DECODER_SUPPORT_FALLBACK">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DECODER_SUPPORT_FALLBACK</h4>
<pre>static final&nbsp;int DECODER_SUPPORT_FALLBACK</pre>
<div class="block">The renderer will use a fallback decoder.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.RendererCapabilities.DECODER_SUPPORT_FALLBACK">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li> </li>
</ul> </ul>
</section> </section>
@ -606,18 +771,19 @@ static final&nbsp;int FORMAT_UNSUPPORTED_TYPE</pre>
<!-- --> <!-- -->
</a> </a>
<h3>Method Detail</h3> <h3>Method Detail</h3>
<a id="create(int)"> <a id="create(@com.google.android.exoplayer2.C.FormatSupportint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>create</h4> <h4>create</h4>
<pre class="methodSignature"><a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a> <pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
static&nbsp;int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a> @com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport)</pre>
int&nbsp;formatSupport)</pre>
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> for the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>. <div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> for the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.
<p>The <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> is set to <a href="#ADAPTIVE_NOT_SUPPORTED"><code>ADAPTIVE_NOT_SUPPORTED</code></a> and {<a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> is set to <a href="#TUNNELING_NOT_SUPPORTED"><code>TUNNELING_NOT_SUPPORTED</code></a>.</div> <p><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> is set to <a href="#ADAPTIVE_NOT_SUPPORTED"><code>ADAPTIVE_NOT_SUPPORTED</code></a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>
is set to <a href="#TUNNELING_NOT_SUPPORTED"><code>TUNNELING_NOT_SUPPORTED</code></a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> is set to
<a href="#HARDWARE_ACCELERATION_NOT_SUPPORTED"><code>HARDWARE_ACCELERATION_NOT_SUPPORTED</code></a> and <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> is set to <a href="#DECODER_SUPPORT_PRIMARY"><code>DECODER_SUPPORT_PRIMARY</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>formatSupport</code> - The <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</dd> <dd><code>formatSupport</code> - The <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</dd>
@ -626,20 +792,20 @@ static&nbsp;int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotat
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="create(int,int,int)"> <a id="create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>create</h4> <h4>create</h4>
<pre class="methodSignature"><a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a> <pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
static&nbsp;int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a> @com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport,
int&nbsp;formatSupport, @com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;adaptiveSupport,
<a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">@AdaptiveSupport</a> @com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int&nbsp;tunnelingSupport)</pre>
int&nbsp;adaptiveSupport, <div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> and <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>.
<a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">@TunnelingSupport</a>
int&nbsp;tunnelingSupport)</pre> <p><a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> is set to <a href="#HARDWARE_ACCELERATION_NOT_SUPPORTED"><code>HARDWARE_ACCELERATION_NOT_SUPPORTED</code></a>
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> and <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>.</div> and <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> is set to <a href="#DECODER_SUPPORT_PRIMARY"><code>DECODER_SUPPORT_PRIMARY</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>formatSupport</code> - The <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</dd> <dd><code>formatSupport</code> - The <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</dd>
@ -650,15 +816,39 @@ static&nbsp;int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotat
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="getFormatSupport(int)"> <a id="create(@com.google.android.exoplayer2.C.FormatSupportint,@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupportint,@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupportint,@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupportint,@com.google.android.exoplayer2.RendererCapabilities.DecoderSupportint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;create&#8203;(<a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
@com.google.android.exoplayer2.C.FormatSupport int&nbsp;formatSupport,
@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;adaptiveSupport,
@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int&nbsp;tunnelingSupport,
@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupport int&nbsp;hardwareAccelerationSupport,
@com.google.android.exoplayer2.RendererCapabilities.DecoderSupport int&nbsp;decoderSupport)</pre>
<div class="block">Returns <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a> combining the given <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>, <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a>, <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>, <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> and <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>formatSupport</code> - The <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a>.</dd>
<dd><code>adaptiveSupport</code> - The <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a>.</dd>
<dd><code>tunnelingSupport</code> - The <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a>.</dd>
<dd><code>hardwareAccelerationSupport</code> - The <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a>.</dd>
<dd><code>decoderSupport</code> - The <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getFormatSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>getFormatSupport</h4> <h4>getFormatSupport</h4>
<pre class="methodSignature"><a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a> <pre class="methodSignature"><a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">@FormatSupport</a>
static&nbsp;int&nbsp;getFormatSupport&#8203;(<a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a> static&nbsp;@com.google.android.exoplayer2.C.FormatSupport int&nbsp;getFormatSupport&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</pre>
int&nbsp;supportFlags)</pre>
<div class="block">Returns the <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
@ -668,15 +858,13 @@ static&nbsp;int&nbsp;getFormatSupport&#8203;(<a href="RendererCapabilities.Capab
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="getAdaptiveSupport(int)"> <a id="getAdaptiveSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>getAdaptiveSupport</h4> <h4>getAdaptiveSupport</h4>
<pre class="methodSignature"><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">@AdaptiveSupport</a> <pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;getAdaptiveSupport&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</pre>
static&nbsp;int&nbsp;getAdaptiveSupport&#8203;(<a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a>
int&nbsp;supportFlags)</pre>
<div class="block">Returns the <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.AdaptiveSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
@ -686,15 +874,13 @@ static&nbsp;int&nbsp;getAdaptiveSupport&#8203;(<a href="RendererCapabilities.Cap
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="getTunnelingSupport(int)"> <a id="getTunnelingSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>getTunnelingSupport</h4> <h4>getTunnelingSupport</h4>
<pre class="methodSignature"><a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">@TunnelingSupport</a> <pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.TunnelingSupport int&nbsp;getTunnelingSupport&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</pre>
static&nbsp;int&nbsp;getTunnelingSupport&#8203;(<a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a>
int&nbsp;supportFlags)</pre>
<div class="block">Returns the <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div> <div class="block">Returns the <a href="RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.TunnelingSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
@ -704,6 +890,38 @@ static&nbsp;int&nbsp;getTunnelingSupport&#8203;(<a href="RendererCapabilities.Ca
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="getHardwareAccelerationSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHardwareAccelerationSupport</h4>
<pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.HardwareAccelerationSupport int&nbsp;getHardwareAccelerationSupport&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</pre>
<div class="block">Returns the <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>supportFlags</code> - The combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.HardwareAccelerationSupport</code></a> only.</dd>
</dl>
</li>
</ul>
<a id="getDecoderSupport(@com.google.android.exoplayer2.RendererCapabilities.Capabilitiesint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDecoderSupport</h4>
<pre class="methodSignature">static&nbsp;@com.google.android.exoplayer2.RendererCapabilities.DecoderSupport int&nbsp;getDecoderSupport&#8203;(@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportFlags)</pre>
<div class="block">Returns the <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> from the combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>supportFlags</code> - The combined <a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.Capabilities</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2"><code>RendererCapabilities.DecoderSupport</code></a> only.</dd>
</dl>
</li>
</ul>
<a id="getName()"> <a id="getName()">
<!-- --> <!-- -->
</a> </a>
@ -738,9 +956,8 @@ static&nbsp;int&nbsp;getTunnelingSupport&#8203;(<a href="RendererCapabilities.Ca
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>supportsFormat</h4> <h4>supportsFormat</h4>
<pre class="methodSignature"><a href="RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">@Capabilities</a> <pre class="methodSignature">@com.google.android.exoplayer2.RendererCapabilities.Capabilities int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format)
int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in com.google.android.exoplayer2">Format</a>&nbsp;format) throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div> <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports a given format.</div>
<dl> <dl>
<dt><span class="paramLabel">Parameters:</span></dt> <dt><span class="paramLabel">Parameters:</span></dt>
@ -758,9 +975,8 @@ int&nbsp;supportsFormat&#8203;(<a href="Format.html" title="class in com.google.
<ul class="blockListLast"> <ul class="blockListLast">
<li class="blockList"> <li class="blockList">
<h4>supportsMixedMimeTypeAdaptation</h4> <h4>supportsMixedMimeTypeAdaptation</h4>
<pre class="methodSignature"><a href="RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">@AdaptiveSupport</a> <pre class="methodSignature">@com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport int&nbsp;supportsMixedMimeTypeAdaptation()
int&nbsp;supportsMixedMimeTypeAdaptation() throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
throws <a href="ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></pre>
<div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats <div class="block">Returns the extent to which the <a href="Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> supports adapting between supported formats
that have different MIME types.</div> that have different MIME types.</div>
<dl> <dl>

View File

@ -171,7 +171,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</code></th> <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, MediaSourceFactory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context, MediaSource.Factory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
@ -190,23 +190,23 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
<a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</code></th> <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, RenderersFactory, <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context, RenderersFactory,
MediaSourceFactory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div> MediaSource.Factory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
<tr class="altColor"> <tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">Builder</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, <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">Builder</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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector, <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl, <a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl,
<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter, <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter,
<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th> <a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"><code>Builder(Context, RenderersFactory, <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"><code>Builder(Context, RenderersFactory,
MediaSourceFactory, TrackSelector, LoadControl, BandwidthMeter, AnalyticsCollector)</code></a> MediaSource.Factory, TrackSelector, LoadControl, BandwidthMeter, AnalyticsCollector)</code></a>
instead.</div> instead.</div>
</div> </div>
</td> </td>
@ -250,7 +250,7 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i2" class="altColor"> <tr id="i2" class="altColor">
<td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnalyticsCollector(com.google.android.exoplayer2.analytics.AnalyticsCollector)">setAnalyticsCollector</a></span>&#8203;(<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnalyticsCollector(com.google.android.exoplayer2.analytics.AnalyticsCollector)">setAnalyticsCollector</a></span>&#8203;(<a href="analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><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> <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>
@ -333,10 +333,10 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)">setMediaSourceFactory</a></span>&#8203;(<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSource.Factory)">setMediaSourceFactory</a></span>&#8203;(<a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory)</code></th>
<td class="colLast"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)"><code>ExoPlayer.Builder.setMediaSourceFactory(MediaSourceFactory)</code></a> instead.</div> <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>
</div> </div>
</td> </td>
</tr> </tr>
@ -424,19 +424,19 @@ extends <a href="https://developer.android.com/reference/java/lang/Object.html"
</tr> </tr>
<tr id="i21" class="rowColor"> <tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoChangeFrameRateStrategy(int)">setVideoChangeFrameRateStrategy</a></span>&#8203;(int&nbsp;videoChangeFrameRateStrategy)</code></th> <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"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoChangeFrameRateStrategy(int)"><code>ExoPlayer.Builder.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)"><code>ExoPlayer.Builder.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
<tr id="i22" class="altColor"> <tr id="i22" class="altColor">
<td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td> <td class="colFirst"><code><a href="SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setVideoScalingMode(int)">setVideoScalingMode</a></span>&#8203;(int&nbsp;videoScalingMode)</code></th> <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"> <td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoScalingMode(int)"><code>ExoPlayer.Builder.setVideoScalingMode(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)"><code>ExoPlayer.Builder.setVideoScalingMode(int)</code></a> instead.</div>
</div> </div>
</td> </td>
</tr> </tr>
@ -510,7 +510,7 @@ public&nbsp;Builder&#8203;(<a href="https://developer.android.com/reference/andr
public&nbsp;Builder&#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, public&nbsp;Builder&#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="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</pre> <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, MediaSourceFactory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context, MediaSource.Factory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
@ -525,12 +525,12 @@ public&nbsp;Builder&#8203;(<a href="https://developer.android.com/reference/andr
<a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</pre> <a href="extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a>&nbsp;extractorsFactory)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory)"><code>Builder(Context, RenderersFactory, <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory)"><code>Builder(Context, RenderersFactory,
MediaSourceFactory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div> MediaSource.Factory)</code></a> and <a href="source/DefaultMediaSourceFactory.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.extractor.ExtractorsFactory)"><code>DefaultMediaSourceFactory(Context, ExtractorsFactory)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
<a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"> <a id="&lt;init&gt;(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockListLast"> <ul class="blockListLast">
@ -540,13 +540,13 @@ public&nbsp;Builder&#8203;(<a href="https://developer.android.com/reference/andr
public&nbsp;Builder&#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, public&nbsp;Builder&#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="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory, <a href="RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a>&nbsp;renderersFactory,
<a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector, <a href="trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a>&nbsp;trackSelector,
<a href="source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory, <a href="source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a>&nbsp;mediaSourceFactory,
<a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl, <a href="LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a>&nbsp;loadControl,
<a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter, <a href="upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a>&nbsp;bandwidthMeter,
<a href="analytics/AnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre> <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="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSourceFactory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"><code>Builder(Context, RenderersFactory, <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#%3Cinit%3E(android.content.Context,com.google.android.exoplayer2.RenderersFactory,com.google.android.exoplayer2.source.MediaSource.Factory,com.google.android.exoplayer2.trackselection.TrackSelector,com.google.android.exoplayer2.LoadControl,com.google.android.exoplayer2.upstream.BandwidthMeter,com.google.android.exoplayer2.analytics.AnalyticsCollector)"><code>Builder(Context, RenderersFactory,
MediaSourceFactory, TrackSelector, LoadControl, BandwidthMeter, AnalyticsCollector)</code></a> MediaSource.Factory, TrackSelector, LoadControl, BandwidthMeter, AnalyticsCollector)</code></a>
instead.</div> instead.</div>
</div> </div>
</li> </li>
@ -588,16 +588,16 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
</div> </div>
</li> </li>
</ul> </ul>
<a id="setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)"> <a id="setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSource.Factory)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
<li class="blockList"> <li class="blockList">
<h4>setMediaSourceFactory</h4> <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"><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/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a>&nbsp;mediaSourceFactory)</pre> 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="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setMediaSourceFactory(com.google.android.exoplayer2.source.MediaSourceFactory)"><code>ExoPlayer.Builder.setMediaSourceFactory(MediaSourceFactory)</code></a> instead.</div> <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>
</div> </div>
</li> </li>
</ul> </ul>
@ -647,7 +647,7 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<li class="blockList"> <li class="blockList">
<h4>setAnalyticsCollector</h4> <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"><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="class in com.google.android.exoplayer2.analytics">AnalyticsCollector</a>&nbsp;analyticsCollector)</pre> 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="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> <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>
</div> </div>
@ -723,7 +723,7 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
</div> </div>
</li> </li>
</ul> </ul>
<a id="setVideoScalingMode(int)"> <a id="setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -731,13 +731,13 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<h4>setVideoScalingMode</h4> <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"><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> 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>
int&nbsp;videoScalingMode)</pre> @com.google.android.exoplayer2.C.VideoScalingMode int&nbsp;videoScalingMode)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoScalingMode(int)"><code>ExoPlayer.Builder.setVideoScalingMode(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoScalingMode(@com.google.android.exoplayer2.C.VideoScalingModeint)"><code>ExoPlayer.Builder.setVideoScalingMode(int)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>
<a id="setVideoChangeFrameRateStrategy(int)"> <a id="setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)">
<!-- --> <!-- -->
</a> </a>
<ul class="blockList"> <ul class="blockList">
@ -745,9 +745,9 @@ public&nbsp;<a href="SimpleExoPlayer.Builder.html" title="class in com.google.an
<h4>setVideoChangeFrameRateStrategy</h4> <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"><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> 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>
int&nbsp;videoChangeFrameRateStrategy)</pre> @com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy int&nbsp;videoChangeFrameRateStrategy)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoChangeFrameRateStrategy(int)"><code>ExoPlayer.Builder.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div> <div class="deprecationComment">Use <a href="ExoPlayer.Builder.html#setVideoChangeFrameRateStrategy(@com.google.android.exoplayer2.C.VideoChangeFrameRateStrategyint)"><code>ExoPlayer.Builder.setVideoChangeFrameRateStrategy(int)</code></a> instead.</div>
</div> </div>
</li> </li>
</ul> </ul>

File diff suppressed because one or more lines are too long

View File

@ -25,7 +25,7 @@
catch(err) { 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}; 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};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor"; var altColor = "altColor";
var rowColor = "rowColor"; var rowColor = "rowColor";
@ -346,6 +346,15 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
</td> </td>
</tr> </tr>
<tr id="i9" class="rowColor"> <tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAdState(int,int)">getAdState</a></span>&#8203;(int&nbsp;adGroupIndex,
int&nbsp;adIndexInAdGroup)</code></th>
<td class="colLast">
<div class="block">Returns the state of the ad at index <code>adIndexInAdGroup</code> in the ad group at <code>
adGroupIndex</code>, or <a href="source/ads/AdPlaybackState.html#AD_STATE_UNAVAILABLE"><code>AdPlaybackState.AD_STATE_UNAVAILABLE</code></a> if not yet known.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentResumeOffsetUs(int)">getContentResumeOffsetUs</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentResumeOffsetUs(int)">getContentResumeOffsetUs</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th>
<td class="colLast"> <td class="colLast">
@ -353,21 +362,21 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
playback after the specified ad group.</div> playback after the specified ad group.</div>
</td> </td>
</tr> </tr>
<tr id="i10" class="altColor"> <tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDurationMs()">getDurationMs</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDurationMs()">getDurationMs</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the duration of the period in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if unknown.</div> <div class="block">Returns the duration of the period in milliseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if unknown.</div>
</td> </td>
</tr> </tr>
<tr id="i11" class="rowColor"> <tr id="i12" class="altColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDurationUs()">getDurationUs</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDurationUs()">getDurationUs</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the duration of this period in microseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if unknown.</div> <div class="block">Returns the duration of this period in microseconds, or <a href="C.html#TIME_UNSET"><code>C.TIME_UNSET</code></a> if unknown.</div>
</td> </td>
</tr> </tr>
<tr id="i12" class="altColor"> <tr id="i13" class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirstAdIndexToPlay(int)">getFirstAdIndexToPlay</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirstAdIndexToPlay(int)">getFirstAdIndexToPlay</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th>
<td class="colLast"> <td class="colLast">
@ -375,7 +384,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
number of ads in the ad group if no ads should be played.</div> number of ads in the ad group if no ads should be played.</div>
</td> </td>
</tr> </tr>
<tr id="i13" class="rowColor"> <tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNextAdIndexToPlay(int,int)">getNextAdIndexToPlay</a></span>&#8203;(int&nbsp;adGroupIndex, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNextAdIndexToPlay(int,int)">getNextAdIndexToPlay</a></span>&#8203;(int&nbsp;adGroupIndex,
int&nbsp;lastPlayedAdIndex)</code></th> int&nbsp;lastPlayedAdIndex)</code></th>
@ -385,7 +394,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
be played.</div> be played.</div>
</td> </td>
</tr> </tr>
<tr id="i14" class="altColor"> <tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPositionInWindowMs()">getPositionInWindowMs</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPositionInWindowMs()">getPositionInWindowMs</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -393,7 +402,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
it belongs, in milliseconds.</div> it belongs, in milliseconds.</div>
</td> </td>
</tr> </tr>
<tr id="i15" class="rowColor"> <tr id="i16" class="altColor">
<td class="colFirst"><code>long</code></td> <td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPositionInWindowUs()">getPositionInWindowUs</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPositionInWindowUs()">getPositionInWindowUs</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -401,19 +410,19 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
it belongs, in microseconds.</div> it belongs, in microseconds.</div>
</td> </td>
</tr> </tr>
<tr id="i16" class="altColor"> <tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemovedAdGroupCount()">getRemovedAdGroupCount</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemovedAdGroupCount()">getRemovedAdGroupCount</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
<div class="block">Returns the number of removed ad groups in the period.</div> <div class="block">Returns the number of removed ad groups in the period.</div>
</td> </td>
</tr> </tr>
<tr id="i17" class="rowColor"> <tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td> <td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td> <td class="colLast">&nbsp;</td>
</tr> </tr>
<tr id="i18" class="altColor"> <tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPlayedAdGroup(int)">hasPlayedAdGroup</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasPlayedAdGroup(int)">hasPlayedAdGroup</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th>
<td class="colLast"> <td class="colLast">
@ -421,7 +430,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
skipped or failed.</div> skipped or failed.</div>
</td> </td>
</tr> </tr>
<tr id="i19" class="rowColor"> <tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td> <td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isServerSideInsertedAdGroup(int)">isServerSideInsertedAdGroup</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isServerSideInsertedAdGroup(int)">isServerSideInsertedAdGroup</a></span>&#8203;(int&nbsp;adGroupIndex)</code></th>
<td class="colLast"> <td class="colLast">
@ -429,7 +438,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
of the content stream.</div> of the content stream.</div>
</td> </td>
</tr> </tr>
<tr id="i20" class="altColor"> <tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a></code></td> <td class="colFirst"><code><a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(java.lang.Object,java.lang.Object,int,long,long)">set</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;id, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(java.lang.Object,java.lang.Object,int,long,long)">set</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;id,
<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, <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,
@ -440,7 +449,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<div class="block">Sets the data held by this period.</div> <div class="block">Sets the data held by this period.</div>
</td> </td>
</tr> </tr>
<tr id="i21" class="rowColor"> <tr id="i22" class="altColor">
<td class="colFirst"><code><a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a></code></td> <td class="colFirst"><code><a href="Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(java.lang.Object,java.lang.Object,int,long,long,com.google.android.exoplayer2.source.ads.AdPlaybackState,boolean)">set</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;id, <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(java.lang.Object,java.lang.Object,int,long,long,com.google.android.exoplayer2.source.ads.AdPlaybackState,boolean)">set</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;id,
<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, <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,
@ -453,7 +462,7 @@ implements <a href="Bundleable.html" title="interface in com.google.android.exop
<div class="block">Sets the data held by this period.</div> <div class="block">Sets the data held by this period.</div>
</td> </td>
</tr> </tr>
<tr id="i22" class="altColor"> <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> <td class="colFirst"><code><a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top">Bundle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle()">toBundle</a></span>()</code></th> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBundle()">toBundle</a></span>()</code></th>
<td class="colLast"> <td class="colLast">
@ -882,6 +891,25 @@ public&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.ht
</dl> </dl>
</li> </li>
</ul> </ul>
<a id="getAdState(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAdState</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getAdState&#8203;(int&nbsp;adGroupIndex,
int&nbsp;adIndexInAdGroup)</pre>
<div class="block">Returns the state of the ad at index <code>adIndexInAdGroup</code> in the ad group at <code>
adGroupIndex</code>, or <a href="source/ads/AdPlaybackState.html#AD_STATE_UNAVAILABLE"><code>AdPlaybackState.AD_STATE_UNAVAILABLE</code></a> if not yet known.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>adGroupIndex</code> - The ad group index.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The state of the ad, or <a href="source/ads/AdPlaybackState.html#AD_STATE_UNAVAILABLE"><code>AdPlaybackState.AD_STATE_UNAVAILABLE</code></a> if not yet
known.</dd>
</dl>
</li>
</ul>
<a id="getAdResumePositionUs()"> <a id="getAdResumePositionUs()">
<!-- --> <!-- -->
</a> </a>

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