diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94b349b2178..388b2ed2599 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,8 +19,6 @@ We will also consider high quality pull requests. These should normally merge into the `dev-v2` branch. Before a pull request can be accepted you must submit a Contributor License Agreement, as described below. -[dev]: https://github.com/google/ExoPlayer/tree/dev - ## Contributor license agreement ## Contributions to any Google project must be accompanied by a Contributor diff --git a/README.md b/README.md index 3933f0bc188..b8380684592 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ExoPlayer # +# ExoPlayer ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both @@ -7,7 +7,7 @@ supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates. -## Documentation ## +## Documentation * The [developer guide][] provides a wealth of information. * The [class reference][] documents ExoPlayer classes. @@ -20,7 +20,7 @@ and extend, and can be updated through Play Store application updates. [release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md [developer blog]: https://medium.com/google-exoplayer -## Using ExoPlayer ## +## Using ExoPlayer ExoPlayer modules can be obtained from [the Google Maven repository][]. It's also possible to clone the repository and depend on the modules locally. @@ -29,7 +29,7 @@ also possible to clone the repository and depend on the modules locally. ### From the Google Maven repository -#### 1. Add ExoPlayer module dependencies #### +#### 1. Add ExoPlayer module dependencies The easiest way to get started using ExoPlayer is to add it as a gradle dependency in the `build.gradle` file of your app module. The following will add @@ -77,7 +77,7 @@ found on the [Google Maven ExoPlayer page][]. [extensions directory]: https://github.com/google/ExoPlayer/tree/release-v2/extensions/ [Google Maven ExoPlayer page]: https://maven.google.com/web/index.html#com.google.android.exoplayer -#### 2. Turn on Java 8 support #### +#### 2. Turn on Java 8 support If not enabled already, you also need to turn on Java 8 support in all `build.gradle` files depending on ExoPlayer, by adding the following to the @@ -89,13 +89,13 @@ compileOptions { } ``` -#### 3. Enable multidex #### +#### 3. Enable multidex If your Gradle `minSdkVersion` is 20 or lower, you should [enable multidex](https://developer.android.com/studio/build/multidex) in order to prevent build errors. -### Locally ### +### Locally Cloning the repository and depending on the modules locally is required when using some ExoPlayer extension modules. It's also a suitable approach if you @@ -128,15 +128,15 @@ implementation project(':exoplayer-library-dash') implementation project(':exoplayer-library-ui') ``` -## Developing ExoPlayer ## +## Developing ExoPlayer -#### Project branches #### +#### Project branches * Development work happens on the `dev-v2` branch. Pull requests should normally be made to this branch. * The `release-v2` branch holds the most recent release. -#### Using Android Studio #### +#### Using Android Studio To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in the root directory of the repository. diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 2fb3ea49dae..f3d1f89a3c8 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,147 @@ # Release notes +### 2.16.0 (2021-11-04) + +* Core Library: + * Deprecate `SimpleExoPlayer`. All functionality has been moved to + `ExoPlayer` instead. `ExoPlayer.Builder` can be used instead of + `SimpleExoPlayer.Builder`. + * Add track selection methods to the `Player` interface, for example, + `Player.getCurrentTracksInfo` and `Player.setTrackSelectionParameters`. + These methods can be used instead of directly accessing the track + selector. + * Enable MediaCodec asynchronous queueing by default on devices with API + level >= 31. Add methods in `DefaultMediaCodecRendererFactory` and + `DefaultRenderersFactory` to force enable or force disable asynchronous + queueing ([6348](https://github.com/google/ExoPlayer/issues/6348)). + * Remove final dependency on `jcenter()`. + * Fix `mediaMetadata` being reset when media is repeated + ([#9458](https://github.com/google/ExoPlayer/issues/9458)). + * Adjust `ExoPlayer` `MediaMetadata` update priority, such that values + input through the `MediaItem.MediaMetadata` are used above media derived + values. + * Move `com.google.android.exoplayer2.device.DeviceInfo` to + `com.google.android.exoplayer2.DeviceInfo`. + * Move `com.google.android.exoplayer2.drm.DecryptionException` to + `com.google.android.exoplayer2.decoder.CryptoException`. + * Move `com.google.android.exoplayer2.upstream.cache.CachedRegionTracker` + to `com.google.android.exoplayer2.upstream.CachedRegionTracker`. + * Move `Player.addListener(EventListener)` and + `Player.removeListener(EventListener)` out of `Player` into subclasses. +* Android 12 compatibility: + * Keep `DownloadService` started and in the foreground whilst waiting for + requirements to be met on Android 12. This is necessary due to new + [foreground service launch restrictions](https://developer.android.com/about/versions/12/foreground-services). + `DownloadService.getScheduler` will not be called on Android 12 devices. + * Disable platform transcoding when playing content URIs on Android 12. + * Add `ExoPlayer.setVideoChangeFrameRateStrategy` to allow disabling of + calls from the player to `Surface.setFrameRate`. This is useful for + applications wanting to call `Surface.setFrameRate` directly from + application code with Android 12's `Surface.CHANGE_FRAME_RATE_ALWAYS`. + * Upgrade the WorkManager extension to depend on + `androidx.work:work-runtime:2.7.0`. Earlier versions of `work-runtime` + are not compatible with apps targeting Android 12, and will crash with + an `IllegalArgumentException` when creating `PendingIntent`s + ([#9181](https://github.com/google/ExoPlayer/issues/9181)). +* Video: + * Fix bug in `MediaCodecVideoRenderer` that resulted in re-using a + released `Surface` when playing without an app-provided `Surface` + ([#9476](https://github.com/google/ExoPlayer/issues/9476)). +* DRM: + * Log an error (instead of throwing `IllegalStateException`) when calling + `DefaultDrmSession#release()` on a fully released session + ([#9392](https://github.com/google/ExoPlayer/issues/9392)). +* UI: + * `SubtitleView` no longer implements `TextOutput`. `SubtitleView` + implements `Player.Listener`, so can be registered to a player with + `Player.addListener`. + * Fix initial timestamp display in `PlayerControlView` + ([#9524](https://github.com/google/ExoPlayer/issues/9254)). + * Fix capitalization of languages in the track selector + ([#9452](https://github.com/google/ExoPlayer/issues/9452)). +* Extractors: + * MP4: Correctly handle HEVC tracks with pixel aspect ratios other than 1. + * MP4: Add support for Dolby TrueHD (only for unfragmented streams) + ([#9496](https://github.com/google/ExoPlayer/issues/9496)). + * MP4: Avoid throwing `ArrayIndexOutOfBoundsException` when parsing + invalid `colr` boxes produced by some device cameras + ([#9332](https://github.com/google/ExoPlayer/issues/9332)). + * MP4: Parse HDR static metadata from the `clli` and `mdcv` boxes. + * TS: Correctly handle HEVC tracks with pixel aspect ratios other than 1. + * TS: Map stream type 0x80 to H262 + ([#9472](https://github.com/google/ExoPlayer/issues/9472)). +* Downloads and caching: + * Modify `DownloadService` behavior when `DownloadService.getScheduler` + returns `null`, or returns a `Scheduler` that does not support the + requirements for downloads to continue. In both cases, `DownloadService` + will now remain started and in the foreground whilst waiting for + requirements to be met. + * Modify `DownloadService` behavior when running on Android 12 and above. + See the "Android 12 compatibility" section above. +* RTSP: + * Support RFC4566 SDP attribute field grammar + ([#9430](https://github.com/google/ExoPlayer/issues/9430)). +* DASH: + * Populate `Format.sampleMimeType`, `width` and `height` for image + `AdaptationSet` elements + ([#9500](https://github.com/google/ExoPlayer/issues/9500)). +* HLS: + * Fix rounding error in HLS playlists + ([#9575](https://github.com/google/ExoPlayer/issues/9575)). + * Fix `NoSuchElementException` thrown when an HLS manifest declares + `#EXT-X-RENDITION-REPORT` at the beginning of the playlist + ([#9592](https://github.com/google/ExoPlayer/issues/9592)). +* RTMP extension: + * Upgrade to `io.antmedia:rtmp_client`, which does not rely on `jcenter()` + ([#9591](https://github.com/google/ExoPlayer/issues/9591)). +* MediaSession extension: + * Rename + `MediaSessionConnector.QueueNavigator#onCurrentWindowIndexChanged` to + `onCurrentMediaItemIndexChanged`. +* Transformer: + * Avoid sending a duplicate timestamp to the encoder with the end of + stream buffer. +* Remove deprecated symbols: + * Remove `Renderer.VIDEO_SCALING_MODE_*` constants. Use identically named + constants in `C` instead. + * Remove `C.MSG_*` constants. Use identically named constants in + `Renderer` instead, except for `C.MSG_SET_SURFACE`, which is replaced + with `Renderer.MSG_SET_VIDEO_OUTPUT`. + * Remove `DeviceListener`. Use `Player.Listener` instead. + * Remove `CacheDataSourceFactory`. Use `CacheDataSource.Factory` instead. + * Remove `CacheDataSinkFactory`. Use `CacheDataSink.Factory` instead. + * Remove `FileDataSourceFactory`. Use `FileDataSource.Factory` instead. + * Remove `SimpleExoPlayer.addMetadataOutput` and `removeMetadataOutput`. + Use `Player.addListener` and `Player.Listener` instead. + * Remove `SimpleExoPlayer.addAudioListener`, `removeAudioListener` and + `AudioListener`. Use `Player.addListener` and `Player.Listener` instead. + * Remove `SimpleExoPlayer.addVideoListener`, `removeVideoListener` and + `VideoListener`. Use `Player.addListener` and `Player.Listener` instead. + * Remove `DefaultHttpDataSourceFactory`. Use + `DefaultHttpDataSource.Factory` instead. + * Remove `SingleSampleMediaSource.createMediaSource(Uri, Format, long)`. + Use `SingleSampleMediaSource.createMediaSource(MediaItem.Subtitle, + long)` instead. + * Remove `HttpDataSource.Factory.getDefaultRequestProperties`. Use + `HttpDataSource.Factory.setDefaultRequestProperties` instead. + * Remove `GvrAudioProcessor` and the GVR extension, which has been + deprecated since 2.11.0. + * Remove `DownloadService.onDownloadChanged` and + `DownloadService.onDownloadRemoved`. Instead, use + `DownloadManager.addListener` to register a listener directly to the + `DownloadManager` returned through `DownloadService.getDownloadManager`. + * Remove `Player.getCurrentStaticMetadata`, + `Player.Listener.onStaticMetadataChanged` and + `Player.EVENT_STATIC_METADATA_CHANGED`. Use `Player.getMediaMetadata`, + `Player.Listener.onMediaMetadataChanged` and + `Player.EVENT_MEDIA_METADATA_CHANGED` for convenient access to + structured metadata, or access the raw static metadata directly from the + `TrackSelection#getFormat()`. + * Remove `ControlDispatcher` and `DefaultControlDispatcher`. Operations + can be customized by using a `ForwardingPlayer`, or when configuring the + player (for example by using + `ExoPlayer.Builder.setSeekBackIncrementMs`). + ### 2.15.1 (2021-09-20) * Core Library: diff --git a/build.gradle b/build.gradle index 3092a9a7c73..d362ff785be 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:7.0.3' classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.2' } } @@ -25,7 +25,6 @@ allprojects { repositories { google() mavenCentral() - jcenter() } if (it.hasProperty('externalBuildDir')) { if (!new File(externalBuildDir).isAbsolute()) { diff --git a/common_library_config.gradle b/common_library_config.gradle index 431a7ab14d7..6164b35e151 100644 --- a/common_library_config.gradle +++ b/common_library_config.gradle @@ -11,7 +11,6 @@ // 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: "$gradle.ext.exoplayerSettingsDir/constants.gradle" apply plugin: 'com.android.library' diff --git a/constants.gradle b/constants.gradle index e016a910fb9..bd4a545c4c9 100644 --- a/constants.gradle +++ b/constants.gradle @@ -13,12 +13,14 @@ // limitations under the License. project.ext { // ExoPlayer version and version code. - releaseVersion = '2.15.1' - releaseVersionCode = 2015001 + releaseVersion = '2.16.0' + releaseVersionCode = 2016000 minSdkVersion = 16 appTargetSdkVersion = 29 + // Upgrading this requires [Internal ref: b/193254928] to be fixed, or some + // additional robolectric config. targetSdkVersion = 30 - compileSdkVersion = 30 + compileSdkVersion = 31 dexmakerVersion = '2.28.1' junitVersion = '4.13.2' // Use the same Guava version as the Android repo: @@ -30,14 +32,15 @@ project.ext { // Keep this in sync with Google's internal Checker Framework version. checkerframeworkVersion = '3.5.0' checkerframeworkCompatVersion = '2.5.0' + errorProneVersion = '2.9.0' jsr305Version = '3.0.2' kotlinAnnotationsVersion = '1.5.20' androidxAnnotationVersion = '1.2.0' androidxAppCompatVersion = '1.3.0' androidxCollectionVersion = '1.1.0' - androidxCoreVersion = '1.3.2' + androidxCoreVersion = '1.6.0' androidxFuturesVersion = '1.1.0' - androidxMediaVersion = '1.3.1' + androidxMediaVersion = '1.4.3' androidxMedia2Version = '1.1.3' androidxMultidexVersion = '2.0.1' androidxRecyclerViewVersion = '1.2.1' diff --git a/core_settings.gradle b/core_settings.gradle index 684e688e284..83ec79ef72f 100644 --- a/core_settings.gradle +++ b/core_settings.gradle @@ -21,57 +21,69 @@ if (gradle.ext.has('exoplayerModulePrefix')) { modulePrefix += gradle.ext.exoplayerModulePrefix } -include modulePrefix + 'library' -project(modulePrefix + 'library').projectDir = new File(rootDir, 'library/all') include modulePrefix + 'library-common' project(modulePrefix + 'library-common').projectDir = new File(rootDir, 'library/common') + +include modulePrefix + 'extension-mediasession' +project(modulePrefix + 'extension-mediasession').projectDir = new File(rootDir, 'extensions/mediasession') +include modulePrefix + 'extension-media2' +project(modulePrefix + 'extension-media2').projectDir = new File(rootDir, 'extensions/media2') + include modulePrefix + 'library-core' project(modulePrefix + 'library-core').projectDir = new File(rootDir, 'library/core') +include modulePrefix + 'library' +project(modulePrefix + 'library').projectDir = new File(rootDir, 'library/all') include modulePrefix + 'library-dash' project(modulePrefix + 'library-dash').projectDir = new File(rootDir, 'library/dash') -include modulePrefix + 'library-extractor' -project(modulePrefix + 'library-extractor').projectDir = new File(rootDir, 'library/extractor') include modulePrefix + 'library-hls' project(modulePrefix + 'library-hls').projectDir = new File(rootDir, 'library/hls') include modulePrefix + 'library-rtsp' project(modulePrefix + 'library-rtsp').projectDir = new File(rootDir, 'library/rtsp') include modulePrefix + 'library-smoothstreaming' project(modulePrefix + 'library-smoothstreaming').projectDir = new File(rootDir, 'library/smoothstreaming') -include modulePrefix + 'library-transformer' -project(modulePrefix + 'library-transformer').projectDir = new File(rootDir, 'library/transformer') +include modulePrefix + 'extension-ima' +project(modulePrefix + 'extension-ima').projectDir = new File(rootDir, 'extensions/ima') +include modulePrefix + 'extension-workmanager' +project(modulePrefix + 'extension-workmanager').projectDir = new File(rootDir, 'extensions/workmanager') + include modulePrefix + 'library-ui' project(modulePrefix + 'library-ui').projectDir = new File(rootDir, 'library/ui') +include modulePrefix + 'extension-leanback' +project(modulePrefix + 'extension-leanback').projectDir = new File(rootDir, 'extensions/leanback') + +include modulePrefix + 'library-database' +project(modulePrefix + 'library-database').projectDir = new File(rootDir, 'library/database') + +include modulePrefix + 'library-datasource' +project(modulePrefix + 'library-datasource').projectDir = new File(rootDir, 'library/datasource') +include modulePrefix + 'extension-cronet' +project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet') +include modulePrefix + 'extension-rtmp' +project(modulePrefix + 'extension-rtmp').projectDir = new File(rootDir, 'extensions/rtmp') +include modulePrefix + 'extension-okhttp' +project(modulePrefix + 'extension-okhttp').projectDir = new File(rootDir, 'extensions/okhttp') +include modulePrefix + 'library-decoder' +project(modulePrefix + 'library-decoder').projectDir = new File(rootDir, 'library/decoder') include modulePrefix + 'extension-av1' project(modulePrefix + 'extension-av1').projectDir = new File(rootDir, 'extensions/av1') include modulePrefix + 'extension-ffmpeg' project(modulePrefix + 'extension-ffmpeg').projectDir = new File(rootDir, 'extensions/ffmpeg') include modulePrefix + 'extension-flac' project(modulePrefix + 'extension-flac').projectDir = new File(rootDir, 'extensions/flac') -include modulePrefix + 'extension-gvr' -project(modulePrefix + 'extension-gvr').projectDir = new File(rootDir, 'extensions/gvr') -include modulePrefix + 'extension-ima' -project(modulePrefix + 'extension-ima').projectDir = new File(rootDir, 'extensions/ima') -include modulePrefix + 'extension-cast' -project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast') -include modulePrefix + 'extension-cronet' -project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet') -include modulePrefix + 'extension-mediasession' -project(modulePrefix + 'extension-mediasession').projectDir = new File(rootDir, 'extensions/mediasession') -include modulePrefix + 'extension-media2' -project(modulePrefix + 'extension-media2').projectDir = new File(rootDir, 'extensions/media2') -include modulePrefix + 'extension-okhttp' -project(modulePrefix + 'extension-okhttp').projectDir = new File(rootDir, 'extensions/okhttp') include modulePrefix + 'extension-opus' project(modulePrefix + 'extension-opus').projectDir = new File(rootDir, 'extensions/opus') include modulePrefix + 'extension-vp9' project(modulePrefix + 'extension-vp9').projectDir = new File(rootDir, 'extensions/vp9') -include modulePrefix + 'extension-rtmp' -project(modulePrefix + 'extension-rtmp').projectDir = new File(rootDir, 'extensions/rtmp') -include modulePrefix + 'extension-leanback' -project(modulePrefix + 'extension-leanback').projectDir = new File(rootDir, 'extensions/leanback') -include modulePrefix + 'extension-workmanager' -project(modulePrefix + 'extension-workmanager').projectDir = new File(rootDir, 'extensions/workmanager') + +include modulePrefix + 'library-extractor' +project(modulePrefix + 'library-extractor').projectDir = new File(rootDir, 'library/extractor') + +include modulePrefix + 'extension-cast' +project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast') + +include modulePrefix + 'library-transformer' +project(modulePrefix + 'library-transformer').projectDir = new File(rootDir, 'library/transformer') include modulePrefix + 'robolectricutils' project(modulePrefix + 'robolectricutils').projectDir = new File(rootDir, 'robolectricutils') diff --git a/demos/README.md b/demos/README.md index 2360e011371..1ec3a1f3066 100644 --- a/demos/README.md +++ b/demos/README.md @@ -21,5 +21,5 @@ the demo project. Choose an install option from the `Install tasks` section. **Example**: -`./gradlew :demo:installNoExtensionsDebug` installs the main ExoPlayer demo app - in debug mode with no extensions. +`./gradlew :demo:installNoDecoderExtensionsDebug` installs the main ExoPlayer +demo app in debug mode with no decoder extensions. diff --git a/demos/cast/README.md b/demos/cast/README.md index fd682433f9f..b636d2c2e07 100644 --- a/demos/cast/README.md +++ b/demos/cast/README.md @@ -1,7 +1,7 @@ -# Cast demo application # +# Cast demo -This folder contains a demo application that showcases ExoPlayer integration -with Google Cast. +This app demonstrates integration with Google Cast, as well as switching between +Google Cast and local playback using ExoPlayer. -Please see the [demos README](../README.md) for instructions on how to build and -run this demo. +See the [demos README](../README.md) for instructions on how to build and run +this demo. diff --git a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java index 50343f9205f..1354a275da7 100644 --- a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java +++ b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java @@ -65,8 +65,10 @@ .setMediaMetadata( new MediaMetadata.Builder().setTitle("Widevine DASH cenc: Tears").build()) .setMimeType(MIME_TYPE_DASH) - .setDrmUuid(C.WIDEVINE_UUID) - .setDrmLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .setDrmConfiguration( + new MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID) + .setLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .build()) .build()); samples.add( new MediaItem.Builder() @@ -74,8 +76,10 @@ .setMediaMetadata( new MediaMetadata.Builder().setTitle("Widevine DASH cbc1: Tears").build()) .setMimeType(MIME_TYPE_DASH) - .setDrmUuid(C.WIDEVINE_UUID) - .setDrmLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .setDrmConfiguration( + new MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID) + .setLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .build()) .build()); samples.add( new MediaItem.Builder() @@ -83,8 +87,10 @@ .setMediaMetadata( new MediaMetadata.Builder().setTitle("Widevine DASH cbcs: Tears").build()) .setMimeType(MIME_TYPE_DASH) - .setDrmUuid(C.WIDEVINE_UUID) - .setDrmLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .setDrmConfiguration( + new MediaItem.DrmConfiguration.Builder(C.WIDEVINE_UUID) + .setLicenseUri("https://proxy.uat.widevine.com/proxy?provider=widevine_test") + .build()) .build()); SAMPLES = Collections.unmodifiableList(samples); diff --git a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java index b2b4d495558..ef91f29e48e 100644 --- a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java +++ b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java @@ -27,7 +27,6 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -37,8 +36,8 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.ui.PlayerControlView; import com.google.android.exoplayer2.ui.PlayerView; import com.google.android.exoplayer2.util.Assertions; @@ -48,8 +47,8 @@ import com.google.android.gms.dynamite.DynamiteModule; /** - * An activity that plays video using {@link SimpleExoPlayer} and supports casting using ExoPlayer's - * Cast extension. + * An activity that plays video using {@link ExoPlayer} and supports casting using ExoPlayer's Cast + * extension. */ public class MainActivity extends AppCompatActivity implements OnClickListener, PlayerManager.Listener { @@ -199,7 +198,6 @@ private View buildSampleListView() { private class MediaQueueListAdapter extends RecyclerView.Adapter { @Override - @NonNull public QueueItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { TextView v = (TextView) @@ -240,9 +238,7 @@ public RecyclerViewCallback() { @Override public boolean onMove( - @NonNull RecyclerView list, - RecyclerView.ViewHolder origin, - RecyclerView.ViewHolder target) { + RecyclerView list, RecyclerView.ViewHolder origin, RecyclerView.ViewHolder target) { int fromPosition = origin.getAdapterPosition(); int toPosition = target.getAdapterPosition(); if (draggingFromPosition == C.INDEX_UNSET) { @@ -266,7 +262,7 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { } @Override - public void clearView(@NonNull RecyclerView recyclerView, @NonNull ViewHolder viewHolder) { + public void clearView(RecyclerView recyclerView, ViewHolder viewHolder) { super.clearView(recyclerView, viewHolder); if (draggingFromPosition != C.INDEX_UNSET) { QueueItemViewHolder queueItemHolder = (QueueItemViewHolder) viewHolder; @@ -306,8 +302,7 @@ public SampleListAdapter(Context context) { } @Override - @NonNull - public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + public View getView(int position, @Nullable View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); ((TextView) view).setText(Util.castNonNull(getItem(position)).mediaMetadata.title); return view; diff --git a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java index f1df1c32d58..54174b0c530 100644 --- a/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java +++ b/demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java @@ -18,24 +18,18 @@ import android.content.Context; import android.view.KeyEvent; import android.view.View; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.Player.DiscontinuityReason; import com.google.android.exoplayer2.Player.TimelineChangeReason; -import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.Timeline; +import com.google.android.exoplayer2.TracksInfo; import com.google.android.exoplayer2.ext.cast.CastPlayer; import com.google.android.exoplayer2.ext.cast.SessionAvailabilityListener; -import com.google.android.exoplayer2.source.TrackGroupArray; -import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; -import com.google.android.exoplayer2.trackselection.MappingTrackSelector; -import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.ui.PlayerControlView; import com.google.android.exoplayer2.ui.PlayerView; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.gms.cast.framework.CastContext; import java.util.ArrayList; @@ -56,24 +50,19 @@ interface Listener { void onUnsupportedTrack(int trackType); } - private static final String USER_AGENT = "ExoCastDemoPlayer"; - private static final DefaultHttpDataSourceFactory DATA_SOURCE_FACTORY = - new DefaultHttpDataSourceFactory(USER_AGENT); - private final PlayerView localPlayerView; private final PlayerControlView castControlView; - private final DefaultTrackSelector trackSelector; - private final SimpleExoPlayer exoPlayer; + private final Player localPlayer; private final CastPlayer castPlayer; private final ArrayList mediaQueue; private final Listener listener; - private TrackGroupArray lastSeenTrackGroupArray; + private TracksInfo lastSeenTrackGroupInfo; private int currentItemIndex; private Player currentPlayer; /** - * Creates a new manager for {@link SimpleExoPlayer} and {@link CastPlayer}. + * Creates a new manager for {@link ExoPlayer} and {@link CastPlayer}. * * @param listener A {@link Listener} for queue position changes. * @param localPlayerView The {@link PlayerView} for local playback. @@ -93,17 +82,16 @@ public PlayerManager( mediaQueue = new ArrayList<>(); currentItemIndex = C.INDEX_UNSET; - trackSelector = new DefaultTrackSelector(context); - exoPlayer = new SimpleExoPlayer.Builder(context).setTrackSelector(trackSelector).build(); - exoPlayer.addListener(this); - localPlayerView.setPlayer(exoPlayer); + localPlayer = new ExoPlayer.Builder(context).build(); + localPlayer.addListener(this); + localPlayerView.setPlayer(localPlayer); castPlayer = new CastPlayer(castContext); castPlayer.addListener(this); castPlayer.setSessionAvailabilityListener(this); castControlView.setPlayer(castPlayer); - setCurrentPlayer(castPlayer.isCastSessionAvailable() ? castPlayer : exoPlayer); + setCurrentPlayer(castPlayer.isCastSessionAvailable() ? castPlayer : localPlayer); } // Queue manipulation methods. @@ -204,7 +192,7 @@ public boolean moveItem(MediaItem item, int newIndex) { * @return Whether the event was handled by the target view. */ public boolean dispatchKeyEvent(KeyEvent event) { - if (currentPlayer == exoPlayer) { + if (currentPlayer == localPlayer) { return localPlayerView.dispatchKeyEvent(event); } else /* currentPlayer == castPlayer */ { return castControlView.dispatchKeyEvent(event); @@ -218,7 +206,7 @@ public void release() { castPlayer.setSessionAvailabilityListener(null); castPlayer.release(); localPlayerView.setPlayer(null); - exoPlayer.release(); + localPlayer.release(); } // Player.Listener implementation. @@ -237,29 +225,22 @@ public void onPositionDiscontinuity( } @Override - public void onTimelineChanged(@NonNull Timeline timeline, @TimelineChangeReason int reason) { + public void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) { updateCurrentItemIndex(); } @Override - public void onTracksChanged( - @NonNull TrackGroupArray trackGroups, @NonNull TrackSelectionArray trackSelections) { - if (currentPlayer == exoPlayer && trackGroups != lastSeenTrackGroupArray) { - @Nullable - MappingTrackSelector.MappedTrackInfo mappedTrackInfo = - trackSelector.getCurrentMappedTrackInfo(); - if (mappedTrackInfo != null) { - if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_VIDEO) - == MappingTrackSelector.MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - listener.onUnsupportedTrack(C.TRACK_TYPE_VIDEO); - } - if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_AUDIO) - == MappingTrackSelector.MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - listener.onUnsupportedTrack(C.TRACK_TYPE_AUDIO); - } - } - lastSeenTrackGroupArray = trackGroups; + public void onTracksInfoChanged(TracksInfo tracksInfo) { + if (currentPlayer != localPlayer || tracksInfo == lastSeenTrackGroupInfo) { + return; + } + if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_VIDEO)) { + listener.onUnsupportedTrack(C.TRACK_TYPE_VIDEO); + } + if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_AUDIO)) { + listener.onUnsupportedTrack(C.TRACK_TYPE_AUDIO); } + lastSeenTrackGroupInfo = tracksInfo; } // CastPlayer.SessionAvailabilityListener implementation. @@ -271,7 +252,7 @@ public void onCastSessionAvailable() { @Override public void onCastSessionUnavailable() { - setCurrentPlayer(exoPlayer); + setCurrentPlayer(localPlayer); } // Internal methods. @@ -280,7 +261,7 @@ private void updateCurrentItemIndex() { int playbackState = currentPlayer.getPlaybackState(); maybeSetCurrentItemAndNotify( playbackState != Player.STATE_IDLE && playbackState != Player.STATE_ENDED - ? currentPlayer.getCurrentWindowIndex() + ? currentPlayer.getCurrentMediaItemIndex() : C.INDEX_UNSET); } @@ -290,7 +271,7 @@ private void setCurrentPlayer(Player currentPlayer) { } // View management. - if (currentPlayer == exoPlayer) { + if (currentPlayer == localPlayer) { localPlayerView.setVisibility(View.VISIBLE); castControlView.hide(); } else /* currentPlayer == castPlayer */ { @@ -300,7 +281,7 @@ private void setCurrentPlayer(Player currentPlayer) { // Player state management. long playbackPositionMs = C.TIME_UNSET; - int windowIndex = C.INDEX_UNSET; + int currentItemIndex = C.INDEX_UNSET; boolean playWhenReady = false; Player previousPlayer = this.currentPlayer; @@ -310,10 +291,10 @@ private void setCurrentPlayer(Player currentPlayer) { if (playbackState != Player.STATE_ENDED) { playbackPositionMs = previousPlayer.getCurrentPosition(); playWhenReady = previousPlayer.getPlayWhenReady(); - windowIndex = previousPlayer.getCurrentWindowIndex(); - if (windowIndex != currentItemIndex) { + currentItemIndex = previousPlayer.getCurrentMediaItemIndex(); + if (currentItemIndex != this.currentItemIndex) { playbackPositionMs = C.TIME_UNSET; - windowIndex = currentItemIndex; + currentItemIndex = this.currentItemIndex; } } previousPlayer.stop(); @@ -323,7 +304,7 @@ private void setCurrentPlayer(Player currentPlayer) { this.currentPlayer = currentPlayer; // Media queue management. - currentPlayer.setMediaItems(mediaQueue, windowIndex, playbackPositionMs); + currentPlayer.setMediaItems(mediaQueue, currentItemIndex, playbackPositionMs); currentPlayer.setPlayWhenReady(playWhenReady); currentPlayer.prepare(); } diff --git a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/BitmapOverlayVideoProcessor.java b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/BitmapOverlayVideoProcessor.java index 38f5b7ff35a..ecae8033e46 100644 --- a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/BitmapOverlayVideoProcessor.java +++ b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/BitmapOverlayVideoProcessor.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.gldemo; +import static com.google.android.exoplayer2.util.Assertions.checkNotNull; + import android.content.Context; import android.content.pm.PackageManager; import android.graphics.Bitmap; @@ -26,13 +28,11 @@ import android.opengl.GLUtils; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.GlUtil; -import com.google.android.exoplayer2.util.Util; import java.io.IOException; -import java.io.InputStream; import java.util.Locale; import javax.microedition.khronos.opengles.GL10; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** * Video processor that demonstrates how to overlay a bitmap on video output using a GL shader. The @@ -51,7 +51,7 @@ private final Bitmap logoBitmap; private final Canvas overlayCanvas; - private int program; + private GlUtil.@MonotonicNonNull Program program; @Nullable private GlUtil.Attribute[] attributes; @Nullable private GlUtil.Uniform[] uniforms; @@ -79,22 +79,39 @@ public BitmapOverlayVideoProcessor(Context context) { @Override public void initialize() { - String vertexShaderCode = - loadAssetAsString(context, "bitmap_overlay_video_processor_vertex.glsl"); - String fragmentShaderCode = - loadAssetAsString(context, "bitmap_overlay_video_processor_fragment.glsl"); - program = GlUtil.compileProgram(vertexShaderCode, fragmentShaderCode); - GlUtil.Attribute[] attributes = GlUtil.getAttributes(program); - GlUtil.Uniform[] uniforms = GlUtil.getUniforms(program); + try { + program = + new GlUtil.Program( + context, + /* vertexShaderFilePath= */ "bitmap_overlay_video_processor_vertex.glsl", + /* fragmentShaderFilePath= */ "bitmap_overlay_video_processor_fragment.glsl"); + } catch (IOException e) { + throw new IllegalStateException(e); + } + GlUtil.Attribute[] attributes = program.getAttributes(); for (GlUtil.Attribute attribute : attributes) { if (attribute.name.equals("a_position")) { - attribute.setBuffer(new float[] {-1, -1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, 1, 1, 0, 1}, 4); + 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); + 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 = uniforms; + this.uniforms = program.getUniforms(); GLES20.glGenTextures(1, textures, 0); GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); GLES20.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST); @@ -123,9 +140,9 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri GlUtil.checkGlError(); // Run the shader program. - GlUtil.Uniform[] uniforms = Assertions.checkNotNull(this.uniforms); - GlUtil.Attribute[] attributes = Assertions.checkNotNull(this.attributes); - GLES20.glUseProgram(program); + GlUtil.Uniform[] uniforms = checkNotNull(this.uniforms); + GlUtil.Attribute[] attributes = checkNotNull(this.attributes); + checkNotNull(program).use(); for (GlUtil.Uniform uniform : uniforms) { switch (uniform.name) { case "tex_sampler_0": @@ -156,16 +173,4 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4); GlUtil.checkGlError(); } - - private static String loadAssetAsString(Context context, String assetFileName) { - @Nullable InputStream inputStream = null; - try { - inputStream = context.getAssets().open(assetFileName); - return Util.fromUtf8Bytes(Util.toByteArray(inputStream)); - } catch (IOException e) { - throw new IllegalStateException(e); - } finally { - Util.closeQuietly(inputStream); - } - } } diff --git a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java index 191602dfb8c..5b513e93f5a 100644 --- a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java +++ b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java @@ -24,9 +24,9 @@ import android.widget.Toast; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.Player; -import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.drm.DefaultDrmSessionManager; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.FrameworkMediaDrm; @@ -36,8 +36,8 @@ import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.ui.PlayerView; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.EventLogger; @@ -64,7 +64,7 @@ public final class MainActivity extends Activity { @Nullable private PlayerView playerView; @Nullable private VideoProcessingGLSurfaceView videoProcessingGLSurfaceView; - @Nullable private SimpleExoPlayer player; + @Nullable private ExoPlayer player; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -144,7 +144,7 @@ private void initializePlayer() { String drmScheme = Assertions.checkNotNull(intent.getStringExtra(DRM_SCHEME_EXTRA)); String drmLicenseUrl = Assertions.checkNotNull(intent.getStringExtra(DRM_LICENSE_URL_EXTRA)); UUID drmSchemeUuid = Assertions.checkNotNull(Util.getDrmUuid(drmScheme)); - HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSourceFactory(); + HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSource.Factory(); HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory); drmSessionManager = @@ -155,7 +155,7 @@ private void initializePlayer() { drmSessionManager = DrmSessionManager.DRM_UNSUPPORTED; } - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(this); MediaSource mediaSource; @C.ContentType int type = Util.inferContentType(uri, intent.getStringExtra(EXTENSION_EXTRA)); if (type == C.TYPE_DASH) { @@ -172,7 +172,7 @@ private void initializePlayer() { throw new IllegalStateException(); } - SimpleExoPlayer player = new SimpleExoPlayer.Builder(getApplicationContext()).build(); + ExoPlayer player = new ExoPlayer.Builder(getApplicationContext()).build(); player.setRepeatMode(Player.REPEAT_MODE_ALL); player.setMediaSource(mediaSource); player.prepare(); diff --git a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/VideoProcessingGLSurfaceView.java b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/VideoProcessingGLSurfaceView.java index 4c04ca4c70d..4cc0813dab4 100644 --- a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/VideoProcessingGLSurfaceView.java +++ b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/VideoProcessingGLSurfaceView.java @@ -23,7 +23,6 @@ import android.opengl.GLSurfaceView; import android.os.Handler; import android.view.Surface; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ExoPlayer; @@ -290,7 +289,7 @@ public void onDrawFrame(GL10 gl) { public void onVideoFrameAboutToBeRendered( long presentationTimeUs, long releaseTimeNs, - @NonNull Format format, + Format format, @Nullable MediaFormat mediaFormat) { sampleTimestampQueue.add(releaseTimeNs, presentationTimeUs); } diff --git a/demos/main/README.md b/demos/main/README.md index 00072c070b8..91aa2742bf0 100644 --- a/demos/main/README.md +++ b/demos/main/README.md @@ -1,8 +1,8 @@ -# ExoPlayer main demo # +# ExoPlayer main demo -This is the main ExoPlayer demo application. It uses ExoPlayer to play a number -of test streams. It can be used as a starting point or reference project when -developing other applications that make use of the ExoPlayer library. +This is the main ExoPlayer demo app. It uses ExoPlayer to play a number of test +streams. It can be used as a starting point or reference project when developing +other applications that make use of the ExoPlayer library. -Please see the [demos README](../README.md) for instructions on how to build and -run this demo. +See the [demos README](../README.md) for instructions on how to build and run +this demo. diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java index c462c14c75c..a83992d9b76 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoDownloadService.java @@ -19,12 +19,13 @@ import android.app.Notification; import android.content.Context; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.android.exoplayer2.offline.Download; import com.google.android.exoplayer2.offline.DownloadManager; import com.google.android.exoplayer2.offline.DownloadService; import com.google.android.exoplayer2.scheduler.PlatformScheduler; +import com.google.android.exoplayer2.scheduler.Requirements; +import com.google.android.exoplayer2.scheduler.Scheduler; import com.google.android.exoplayer2.ui.DownloadNotificationHelper; import com.google.android.exoplayer2.util.NotificationUtil; import com.google.android.exoplayer2.util.Util; @@ -46,7 +47,6 @@ public DemoDownloadService() { } @Override - @NonNull protected DownloadManager getDownloadManager() { // This will only happen once, because getDownloadManager is guaranteed to be called only once // in the life cycle of the process. @@ -60,20 +60,21 @@ protected DownloadManager getDownloadManager() { } @Override - protected PlatformScheduler getScheduler() { + protected Scheduler getScheduler() { return Util.SDK_INT >= 21 ? new PlatformScheduler(this, JOB_ID) : null; } @Override - @NonNull - protected Notification getForegroundNotification(@NonNull List downloads) { + protected Notification getForegroundNotification( + List downloads, @Requirements.RequirementFlags int notMetRequirements) { return DemoUtil.getDownloadNotificationHelper(/* context= */ this) .buildProgressNotification( /* context= */ this, R.drawable.ic_download, /* contentIntent= */ null, /* message= */ null, - downloads); + downloads, + notMetRequirements); } /** diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java index 2d3f606b8a0..62c3a5a0050 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java @@ -16,12 +16,10 @@ package com.google.android.exoplayer2.demo; import android.content.Context; -import android.os.Build; import com.google.android.exoplayer2.DefaultRenderersFactory; -import com.google.android.exoplayer2.ExoPlayerLibraryInfo; import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.database.DatabaseProvider; -import com.google.android.exoplayer2.database.ExoDatabaseProvider; +import com.google.android.exoplayer2.database.StandaloneDatabaseProvider; import com.google.android.exoplayer2.ext.cronet.CronetDataSource; import com.google.android.exoplayer2.ext.cronet.CronetUtil; import com.google.android.exoplayer2.offline.ActionFileUpgradeUtil; @@ -29,7 +27,7 @@ import com.google.android.exoplayer2.offline.DownloadManager; import com.google.android.exoplayer2.ui.DownloadNotificationHelper; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.cache.Cache; @@ -61,13 +59,6 @@ public final class DemoUtil { */ private static final boolean USE_CRONET_FOR_NETWORKING = true; - private static final String USER_AGENT = - "ExoPlayerDemo/" - + ExoPlayerLibraryInfo.VERSION - + " (Linux; Android " - + Build.VERSION.RELEASE - + ") " - + ExoPlayerLibraryInfo.VERSION_SLASHY; private static final String TAG = "DemoUtil"; private static final String DOWNLOAD_ACTION_FILE = "actions"; private static final String DOWNLOAD_TRACKER_ACTION_FILE = "tracked_actions"; @@ -104,9 +95,7 @@ public static synchronized HttpDataSource.Factory getHttpDataSourceFactory(Conte if (httpDataSourceFactory == null) { if (USE_CRONET_FOR_NETWORKING) { context = context.getApplicationContext(); - @Nullable - CronetEngine cronetEngine = - CronetUtil.buildCronetEngine(context, USER_AGENT, /* preferGMSCoreCronet= */ false); + @Nullable CronetEngine cronetEngine = CronetUtil.buildCronetEngine(context); if (cronetEngine != null) { httpDataSourceFactory = new CronetDataSource.Factory(cronetEngine, Executors.newSingleThreadExecutor()); @@ -117,7 +106,7 @@ public static synchronized HttpDataSource.Factory getHttpDataSourceFactory(Conte CookieManager cookieManager = new CookieManager(); cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER); CookieHandler.setDefault(cookieManager); - httpDataSourceFactory = new DefaultHttpDataSource.Factory().setUserAgent(USER_AGENT); + httpDataSourceFactory = new DefaultHttpDataSource.Factory(); } } return httpDataSourceFactory; @@ -127,8 +116,8 @@ public static synchronized HttpDataSource.Factory getHttpDataSourceFactory(Conte public static synchronized DataSource.Factory getDataSourceFactory(Context context) { if (dataSourceFactory == null) { context = context.getApplicationContext(); - DefaultDataSourceFactory upstreamFactory = - new DefaultDataSourceFactory(context, getHttpDataSourceFactory(context)); + DefaultDataSource.Factory upstreamFactory = + new DefaultDataSource.Factory(context, getHttpDataSourceFactory(context)); dataSourceFactory = buildReadOnlyCacheDataSource(upstreamFactory, getDownloadCache(context)); } return dataSourceFactory; @@ -205,7 +194,7 @@ private static synchronized void upgradeActionFile( private static synchronized DatabaseProvider getDatabaseProvider(Context context) { if (databaseProvider == null) { - databaseProvider = new ExoDatabaseProvider(context); + databaseProvider = new StandaloneDatabaseProvider(context); } return databaseProvider; } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java index 027d3846cf1..9eb141e6591 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java @@ -23,7 +23,6 @@ import android.net.Uri; import android.os.AsyncTask; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.fragment.app.FragmentManager; @@ -98,7 +97,7 @@ public void removeListener(Listener listener) { } public boolean isDownloaded(MediaItem mediaItem) { - @Nullable Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).uri); + @Nullable Download download = downloads.get(checkNotNull(mediaItem.localConfiguration).uri); return download != null && download.state != Download.STATE_FAILED; } @@ -110,7 +109,7 @@ public DownloadRequest getDownloadRequest(Uri uri) { public void toggleDownload( FragmentManager fragmentManager, MediaItem mediaItem, RenderersFactory renderersFactory) { - @Nullable Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).uri); + @Nullable Download download = downloads.get(checkNotNull(mediaItem.localConfiguration).uri); if (download != null && download.state != Download.STATE_FAILED) { DownloadService.sendRemoveDownload( context, DemoDownloadService.class, download.request.id, /* foreground= */ false); @@ -142,9 +141,7 @@ private class DownloadManagerListener implements DownloadManager.Listener { @Override public void onDownloadChanged( - @NonNull DownloadManager downloadManager, - @NonNull Download download, - @Nullable Exception finalException) { + DownloadManager downloadManager, Download download, @Nullable Exception finalException) { downloads.put(download.request.uri, download); for (Listener listener : listeners) { listener.onDownloadsChanged(); @@ -152,8 +149,7 @@ public void onDownloadChanged( } @Override - public void onDownloadRemoved( - @NonNull DownloadManager downloadManager, @NonNull Download download) { + public void onDownloadRemoved(DownloadManager downloadManager, Download download) { downloads.remove(download.request.uri); for (Listener listener : listeners) { listener.onDownloadsChanged(); @@ -196,7 +192,7 @@ public void release() { // DownloadHelper.Callback implementation. @Override - public void onPrepared(@NonNull DownloadHelper helper) { + public void onPrepared(DownloadHelper helper) { @Nullable Format format = getFirstFormatWithDrmInitData(helper); if (format == null) { onDownloadPrepared(helper); @@ -223,7 +219,7 @@ public void onPrepared(@NonNull DownloadHelper helper) { widevineOfflineLicenseFetchTask = new WidevineOfflineLicenseFetchTask( format, - mediaItem.playbackProperties.drmConfiguration, + mediaItem.localConfiguration.drmConfiguration, httpDataSourceFactory, /* dialogHelper= */ this, helper); @@ -231,7 +227,7 @@ public void onPrepared(@NonNull DownloadHelper helper) { } @Override - public void onPrepareError(@NonNull DownloadHelper helper, @NonNull IOException e) { + public void onPrepareError(DownloadHelper helper, IOException e) { boolean isLiveContent = e instanceof LiveContentUnsupportedException; int toastStringId = isLiveContent ? R.string.download_live_unsupported : R.string.download_start_error; @@ -402,7 +398,7 @@ protected Void doInBackground(Void... voids) { drmConfiguration.licenseUri.toString(), drmConfiguration.forceDefaultLicenseUri, httpDataSourceFactory, - drmConfiguration.requestHeaders, + drmConfiguration.licenseRequestHeaders, new DrmSessionEventListener.EventDispatcher()); try { keySetId = offlineLicenseHelper.downloadLicense(format); diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java index b285374e163..d3579c8c350 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java @@ -26,12 +26,12 @@ import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; -import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; /** Util to read from and populate an intent. */ public class IntentUtil { @@ -88,24 +88,24 @@ public static void addToIntent(List mediaItems, Intent intent) { Assertions.checkArgument(!mediaItems.isEmpty()); if (mediaItems.size() == 1) { MediaItem mediaItem = mediaItems.get(0); - MediaItem.PlaybackProperties playbackProperties = checkNotNull(mediaItem.playbackProperties); - intent.setAction(ACTION_VIEW).setData(mediaItem.playbackProperties.uri); + MediaItem.LocalConfiguration localConfiguration = checkNotNull(mediaItem.localConfiguration); + intent.setAction(ACTION_VIEW).setData(mediaItem.localConfiguration.uri); if (mediaItem.mediaMetadata.title != null) { intent.putExtra(TITLE_EXTRA, mediaItem.mediaMetadata.title); } - addPlaybackPropertiesToIntent(playbackProperties, intent, /* extrasKeySuffix= */ ""); - addClippingPropertiesToIntent( - mediaItem.clippingProperties, intent, /* extrasKeySuffix= */ ""); + addPlaybackPropertiesToIntent(localConfiguration, intent, /* extrasKeySuffix= */ ""); + addClippingConfigurationToIntent( + mediaItem.clippingConfiguration, intent, /* extrasKeySuffix= */ ""); } else { intent.setAction(ACTION_VIEW_LIST); for (int i = 0; i < mediaItems.size(); i++) { MediaItem mediaItem = mediaItems.get(i); - MediaItem.PlaybackProperties playbackProperties = - checkNotNull(mediaItem.playbackProperties); - intent.putExtra(URI_EXTRA + ("_" + i), playbackProperties.uri.toString()); - addPlaybackPropertiesToIntent(playbackProperties, intent, /* extrasKeySuffix= */ "_" + i); - addClippingPropertiesToIntent( - mediaItem.clippingProperties, intent, /* extrasKeySuffix= */ "_" + i); + MediaItem.LocalConfiguration localConfiguration = + checkNotNull(mediaItem.localConfiguration); + intent.putExtra(URI_EXTRA + ("_" + i), localConfiguration.uri.toString()); + addPlaybackPropertiesToIntent(localConfiguration, intent, /* extrasKeySuffix= */ "_" + i); + addClippingConfigurationToIntent( + mediaItem.clippingConfiguration, intent, /* extrasKeySuffix= */ "_" + i); if (mediaItem.mediaMetadata.title != null) { intent.putExtra(TITLE_EXTRA + ("_" + i), mediaItem.mediaMetadata.title); } @@ -117,18 +117,22 @@ private static MediaItem createMediaItemFromIntent( Uri uri, Intent intent, String extrasKeySuffix) { @Nullable String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix); @Nullable String title = intent.getStringExtra(TITLE_EXTRA + extrasKeySuffix); + @Nullable String adTagUri = intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix); MediaItem.Builder builder = new MediaItem.Builder() .setUri(uri) .setMimeType(mimeType) .setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build()) - .setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix)) .setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix)) .setClipStartPositionMs( intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0)) .setClipEndPositionMs( intent.getLongExtra( CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE)); + if (adTagUri != null) { + builder.setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(adTagUri)).build()); + } return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build(); } @@ -162,44 +166,49 @@ private static MediaItem.Builder populateDrmPropertiesFromIntent( headers.put(keyRequestPropertiesArray[i], keyRequestPropertiesArray[i + 1]); } } - builder - .setDrmUuid(Util.getDrmUuid(Util.castNonNull(drmSchemeExtra))) - .setDrmLicenseUri(intent.getStringExtra(DRM_LICENSE_URI_EXTRA + extrasKeySuffix)) - .setDrmMultiSession( - intent.getBooleanExtra(DRM_MULTI_SESSION_EXTRA + extrasKeySuffix, false)) - .setDrmForceDefaultLicenseUri( - intent.getBooleanExtra(DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix, false)) - .setDrmLicenseRequestHeaders(headers); - if (intent.getBooleanExtra(DRM_SESSION_FOR_CLEAR_CONTENT + extrasKeySuffix, false)) { - builder.setDrmSessionForClearTypes(ImmutableList.of(C.TRACK_TYPE_VIDEO, C.TRACK_TYPE_AUDIO)); + @Nullable UUID drmUuid = Util.getDrmUuid(Util.castNonNull(drmSchemeExtra)); + if (drmUuid != null) { + builder.setDrmConfiguration( + new MediaItem.DrmConfiguration.Builder(drmUuid) + .setLicenseUri(intent.getStringExtra(DRM_LICENSE_URI_EXTRA + extrasKeySuffix)) + .setMultiSession( + intent.getBooleanExtra(DRM_MULTI_SESSION_EXTRA + extrasKeySuffix, false)) + .setForceDefaultLicenseUri( + intent.getBooleanExtra( + DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix, false)) + .setLicenseRequestHeaders(headers) + .forceSessionsForAudioAndVideoTracks( + intent.getBooleanExtra(DRM_SESSION_FOR_CLEAR_CONTENT + extrasKeySuffix, false)) + .build()); } return builder; } private static void addPlaybackPropertiesToIntent( - MediaItem.PlaybackProperties playbackProperties, Intent intent, String extrasKeySuffix) { + MediaItem.LocalConfiguration localConfiguration, Intent intent, String extrasKeySuffix) { intent - .putExtra(MIME_TYPE_EXTRA + extrasKeySuffix, playbackProperties.mimeType) + .putExtra(MIME_TYPE_EXTRA + extrasKeySuffix, localConfiguration.mimeType) .putExtra( AD_TAG_URI_EXTRA + extrasKeySuffix, - playbackProperties.adsConfiguration != null - ? playbackProperties.adsConfiguration.adTagUri.toString() + localConfiguration.adsConfiguration != null + ? localConfiguration.adsConfiguration.adTagUri.toString() : null); - if (playbackProperties.drmConfiguration != null) { - addDrmConfigurationToIntent(playbackProperties.drmConfiguration, intent, extrasKeySuffix); + if (localConfiguration.drmConfiguration != null) { + addDrmConfigurationToIntent(localConfiguration.drmConfiguration, intent, extrasKeySuffix); } - if (!playbackProperties.subtitles.isEmpty()) { - checkState(playbackProperties.subtitles.size() == 1); - MediaItem.Subtitle subtitle = playbackProperties.subtitles.get(0); - intent.putExtra(SUBTITLE_URI_EXTRA + extrasKeySuffix, subtitle.uri.toString()); - intent.putExtra(SUBTITLE_MIME_TYPE_EXTRA + extrasKeySuffix, subtitle.mimeType); - intent.putExtra(SUBTITLE_LANGUAGE_EXTRA + extrasKeySuffix, subtitle.language); + if (!localConfiguration.subtitleConfigurations.isEmpty()) { + checkState(localConfiguration.subtitleConfigurations.size() == 1); + MediaItem.SubtitleConfiguration subtitleConfiguration = + localConfiguration.subtitleConfigurations.get(0); + intent.putExtra(SUBTITLE_URI_EXTRA + extrasKeySuffix, subtitleConfiguration.uri.toString()); + intent.putExtra(SUBTITLE_MIME_TYPE_EXTRA + extrasKeySuffix, subtitleConfiguration.mimeType); + intent.putExtra(SUBTITLE_LANGUAGE_EXTRA + extrasKeySuffix, subtitleConfiguration.language); } } private static void addDrmConfigurationToIntent( MediaItem.DrmConfiguration drmConfiguration, Intent intent, String extrasKeySuffix) { - intent.putExtra(DRM_SCHEME_EXTRA + extrasKeySuffix, drmConfiguration.uuid.toString()); + intent.putExtra(DRM_SCHEME_EXTRA + extrasKeySuffix, drmConfiguration.scheme.toString()); intent.putExtra( DRM_LICENSE_URI_EXTRA + extrasKeySuffix, drmConfiguration.licenseUri != null ? drmConfiguration.licenseUri.toString() : null); @@ -208,34 +217,38 @@ private static void addDrmConfigurationToIntent( DRM_FORCE_DEFAULT_LICENSE_URI_EXTRA + extrasKeySuffix, drmConfiguration.forceDefaultLicenseUri); - String[] drmKeyRequestProperties = new String[drmConfiguration.requestHeaders.size() * 2]; + String[] drmKeyRequestProperties = + new String[drmConfiguration.licenseRequestHeaders.size() * 2]; int index = 0; - for (Map.Entry entry : drmConfiguration.requestHeaders.entrySet()) { + for (Map.Entry entry : drmConfiguration.licenseRequestHeaders.entrySet()) { drmKeyRequestProperties[index++] = entry.getKey(); drmKeyRequestProperties[index++] = entry.getValue(); } intent.putExtra(DRM_KEY_REQUEST_PROPERTIES_EXTRA + extrasKeySuffix, drmKeyRequestProperties); - List drmSessionForClearTypes = drmConfiguration.sessionForClearTypes; - if (!drmSessionForClearTypes.isEmpty()) { + List<@C.TrackType Integer> forcedDrmSessionTrackTypes = + drmConfiguration.forcedSessionTrackTypes; + if (!forcedDrmSessionTrackTypes.isEmpty()) { // Only video and audio together are supported. Assertions.checkState( - drmSessionForClearTypes.size() == 2 - && drmSessionForClearTypes.contains(C.TRACK_TYPE_VIDEO) - && drmSessionForClearTypes.contains(C.TRACK_TYPE_AUDIO)); + forcedDrmSessionTrackTypes.size() == 2 + && forcedDrmSessionTrackTypes.contains(C.TRACK_TYPE_VIDEO) + && forcedDrmSessionTrackTypes.contains(C.TRACK_TYPE_AUDIO)); intent.putExtra(DRM_SESSION_FOR_CLEAR_CONTENT + extrasKeySuffix, true); } } - private static void addClippingPropertiesToIntent( - MediaItem.ClippingProperties clippingProperties, Intent intent, String extrasKeySuffix) { - if (clippingProperties.startPositionMs != 0) { + private static void addClippingConfigurationToIntent( + MediaItem.ClippingConfiguration clippingConfiguration, + Intent intent, + String extrasKeySuffix) { + if (clippingConfiguration.startPositionMs != 0) { intent.putExtra( - CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.startPositionMs); + CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, clippingConfiguration.startPositionMs); } - if (clippingProperties.endPositionMs != C.TIME_END_OF_SOURCE) { + if (clippingConfiguration.endPositionMs != C.TIME_END_OF_SOURCE) { intent.putExtra( - CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.endPositionMs); + CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, clippingConfiguration.endPositionMs); } } } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 48748f2c08b..ca9fd45d421 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -28,15 +28,15 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.NonNull; 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.PlaybackException; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.RenderersFactory; -import com.google.android.exoplayer2.SimpleExoPlayer; +import com.google.android.exoplayer2.TracksInfo; import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.drm.FrameworkMediaDrm; import com.google.android.exoplayer2.ext.ima.ImaAdsLoader; @@ -45,11 +45,8 @@ import com.google.android.exoplayer2.offline.DownloadRequest; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; import com.google.android.exoplayer2.source.MediaSourceFactory; -import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.ads.AdsLoader; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; -import com.google.android.exoplayer2.trackselection.MappingTrackSelector.MappedTrackInfo; -import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.ui.StyledPlayerControlView; import com.google.android.exoplayer2.ui.StyledPlayerView; import com.google.android.exoplayer2.upstream.DataSource; @@ -60,34 +57,33 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; -/** An activity that plays media using {@link SimpleExoPlayer}. */ +/** An activity that plays media using {@link ExoPlayer}. */ public class PlayerActivity extends AppCompatActivity implements OnClickListener, StyledPlayerControlView.VisibilityListener { // Saved instance state keys. - private static final String KEY_TRACK_SELECTOR_PARAMETERS = "track_selector_parameters"; - private static final String KEY_WINDOW = "window"; + private static final String KEY_TRACK_SELECTION_PARAMETERS = "track_selection_parameters"; + private static final String KEY_ITEM_INDEX = "item_index"; private static final String KEY_POSITION = "position"; private static final String KEY_AUTO_PLAY = "auto_play"; protected StyledPlayerView playerView; protected LinearLayout debugRootView; protected TextView debugTextView; - protected @Nullable SimpleExoPlayer player; + protected @Nullable ExoPlayer player; private boolean isShowingTrackSelectionDialog; private Button selectTracksButton; private DataSource.Factory dataSourceFactory; private List mediaItems; private DefaultTrackSelector trackSelector; - private DefaultTrackSelector.Parameters trackSelectorParameters; + private DefaultTrackSelector.Parameters trackSelectionParameters; private DebugTextViewHelper debugViewHelper; - private TrackGroupArray lastSeenTrackGroupArray; + private TracksInfo lastSeenTracksInfo; private boolean startAutoPlay; - private int startWindow; + private int startItemIndex; private long startPosition; // For ad playback only. @@ -97,7 +93,7 @@ public class PlayerActivity extends AppCompatActivity // Activity lifecycle. @Override - public void onCreate(Bundle savedInstanceState) { + public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); dataSourceFactory = DemoUtil.getDataSourceFactory(/* context= */ this); @@ -113,14 +109,16 @@ public void onCreate(Bundle savedInstanceState) { playerView.requestFocus(); if (savedInstanceState != null) { - trackSelectorParameters = savedInstanceState.getParcelable(KEY_TRACK_SELECTOR_PARAMETERS); + // Restore as DefaultTrackSelector.Parameters in case ExoPlayer specific parameters were set. + trackSelectionParameters = + DefaultTrackSelector.Parameters.CREATOR.fromBundle( + savedInstanceState.getBundle(KEY_TRACK_SELECTION_PARAMETERS)); startAutoPlay = savedInstanceState.getBoolean(KEY_AUTO_PLAY); - startWindow = savedInstanceState.getInt(KEY_WINDOW); + startItemIndex = savedInstanceState.getInt(KEY_ITEM_INDEX); startPosition = savedInstanceState.getLong(KEY_POSITION); } else { - DefaultTrackSelector.ParametersBuilder builder = - new DefaultTrackSelector.ParametersBuilder(/* context= */ this); - trackSelectorParameters = builder.build(); + trackSelectionParameters = + new DefaultTrackSelector.ParametersBuilder(/* context= */ this).build(); clearStartPosition(); } } @@ -186,7 +184,7 @@ public void onDestroy() { @Override public void onRequestPermissionsResult( - int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (grantResults.length == 0) { // Empty results are triggered if a permission is requested while another request was already @@ -202,13 +200,13 @@ public void onRequestPermissionsResult( } @Override - public void onSaveInstanceState(@NonNull Bundle outState) { + public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); updateTrackSelectorParameters(); updateStartPosition(); - outState.putParcelable(KEY_TRACK_SELECTOR_PARAMETERS, trackSelectorParameters); + outState.putBundle(KEY_TRACK_SELECTION_PARAMETERS, trackSelectionParameters.toBundle()); outState.putBoolean(KEY_AUTO_PLAY, startAutoPlay); - outState.putInt(KEY_WINDOW, startWindow); + outState.putInt(KEY_ITEM_INDEX, startItemIndex); outState.putLong(KEY_POSITION, startPosition); } @@ -269,13 +267,13 @@ protected boolean initializePlayer() { .setAdViewProvider(playerView); trackSelector = new DefaultTrackSelector(/* context= */ this); - trackSelector.setParameters(trackSelectorParameters); - lastSeenTrackGroupArray = null; + lastSeenTracksInfo = TracksInfo.EMPTY; player = - new SimpleExoPlayer.Builder(/* context= */ this, renderersFactory) + new ExoPlayer.Builder(/* context= */ this, renderersFactory) .setMediaSourceFactory(mediaSourceFactory) .setTrackSelector(trackSelector) .build(); + player.setTrackSelectionParameters(trackSelectionParameters); player.addListener(new PlayerEventListener()); player.addAnalyticsListener(new EventLogger(trackSelector)); player.setAudioAttributes(AudioAttributes.DEFAULT, /* handleAudioFocus= */ true); @@ -284,9 +282,9 @@ protected boolean initializePlayer() { debugViewHelper = new DebugTextViewHelper(player, debugTextView); debugViewHelper.start(); } - boolean haveStartPosition = startWindow != C.INDEX_UNSET; + boolean haveStartPosition = startItemIndex != C.INDEX_UNSET; if (haveStartPosition) { - player.seekTo(startWindow, startPosition); + player.seekTo(startItemIndex, startPosition); } player.setMediaItems(mediaItems, /* resetPosition= */ !haveStartPosition); player.prepare(); @@ -320,19 +318,19 @@ private List createMediaItems(Intent intent) { } MediaItem.DrmConfiguration drmConfiguration = - checkNotNull(mediaItem.playbackProperties).drmConfiguration; + checkNotNull(mediaItem.localConfiguration).drmConfiguration; if (drmConfiguration != null) { if (Util.SDK_INT < 18) { showToast(R.string.error_drm_unsupported_before_api_18); finish(); return Collections.emptyList(); - } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.uuid)) { + } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.scheme)) { showToast(R.string.error_drm_unsupported_scheme); finish(); return Collections.emptyList(); } } - hasAds |= mediaItem.playbackProperties.adsConfiguration != null; + hasAds |= mediaItem.localConfiguration.adsConfiguration != null; } if (!hasAds) { releaseAdsLoader(); @@ -358,7 +356,6 @@ protected void releasePlayer() { player.release(); player = null; mediaItems = Collections.emptyList(); - trackSelector = null; } if (adsLoader != null) { adsLoader.setPlayer(null); @@ -374,22 +371,25 @@ private void releaseAdsLoader() { } private void updateTrackSelectorParameters() { - if (trackSelector != null) { - trackSelectorParameters = trackSelector.getParameters(); + if (player != null) { + // Until the demo app is fully migrated to TrackSelectionParameters, rely on ExoPlayer to use + // DefaultTrackSelector by default. + trackSelectionParameters = + (DefaultTrackSelector.Parameters) player.getTrackSelectionParameters(); } } private void updateStartPosition() { if (player != null) { startAutoPlay = player.getPlayWhenReady(); - startWindow = player.getCurrentWindowIndex(); + startItemIndex = player.getCurrentMediaItemIndex(); startPosition = Math.max(0, player.getContentPosition()); } } protected void clearStartPosition() { startAutoPlay = true; - startWindow = C.INDEX_UNSET; + startItemIndex = C.INDEX_UNSET; startPosition = C.TIME_UNSET; } @@ -423,7 +423,7 @@ public void onPlaybackStateChanged(@Player.State int playbackState) { } @Override - public void onPlayerError(@NonNull PlaybackException error) { + public void onPlayerError(PlaybackException error) { if (error.errorCode == PlaybackException.ERROR_CODE_BEHIND_LIVE_WINDOW) { player.seekToDefaultPosition(); player.prepare(); @@ -435,31 +435,25 @@ public void onPlayerError(@NonNull PlaybackException error) { @Override @SuppressWarnings("ReferenceEquality") - public void onTracksChanged( - @NonNull TrackGroupArray trackGroups, @NonNull TrackSelectionArray trackSelections) { + public void onTracksInfoChanged(TracksInfo tracksInfo) { updateButtonVisibility(); - if (trackGroups != lastSeenTrackGroupArray) { - MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo(); - if (mappedTrackInfo != null) { - if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_VIDEO) - == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - showToast(R.string.error_unsupported_video); - } - if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_AUDIO) - == MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) { - showToast(R.string.error_unsupported_audio); - } - } - lastSeenTrackGroupArray = trackGroups; + if (tracksInfo == lastSeenTracksInfo) { + return; + } + if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_VIDEO)) { + showToast(R.string.error_unsupported_video); } + if (!tracksInfo.isTypeSupportedOrEmpty(C.TRACK_TYPE_AUDIO)) { + showToast(R.string.error_unsupported_audio); + } + lastSeenTracksInfo = tracksInfo; } } private class PlayerErrorMessageProvider implements ErrorMessageProvider { @Override - @NonNull - public Pair getErrorMessage(@NonNull PlaybackException e) { + public Pair getErrorMessage(PlaybackException e) { String errorString = getString(R.string.error_generic); Throwable cause = e.getCause(); if (cause instanceof DecoderInitializationException) { @@ -493,7 +487,7 @@ private static List createMediaItems(Intent intent, DownloadTracker d for (MediaItem item : IntentUtil.createMediaItemsFromIntent(intent)) { @Nullable DownloadRequest downloadRequest = - downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri); + downloadTracker.getDownloadRequest(checkNotNull(item.localConfiguration).uri); if (downloadRequest != null) { MediaItem.Builder builder = item.buildUpon(); builder @@ -501,9 +495,13 @@ private static List createMediaItems(Intent intent, DownloadTracker d .setUri(downloadRequest.uri) .setCustomCacheKey(downloadRequest.customCacheKey) .setMimeType(downloadRequest.mimeType) - .setStreamKeys(downloadRequest.streamKeys) - .setDrmKeySetId(downloadRequest.keySetId) - .setDrmLicenseRequestHeaders(getDrmRequestHeaders(item)); + .setStreamKeys(downloadRequest.streamKeys); + @Nullable + MediaItem.DrmConfiguration drmConfiguration = item.localConfiguration.drmConfiguration; + if (drmConfiguration != null) { + builder.setDrmConfiguration( + drmConfiguration.buildUpon().setKeySetId(downloadRequest.keySetId).build()); + } mediaItems.add(builder.build()); } else { @@ -512,10 +510,4 @@ private static List createMediaItems(Intent intent, DownloadTracker d } return mediaItems; } - - @Nullable - private static Map getDrmRequestHeaders(MediaItem item) { - MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration; - return drmConfiguration != null ? drmConfiguration.requestHeaders : null; - } } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java index c655179fe3a..6cfe215a78c 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java @@ -40,10 +40,8 @@ import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaMetadata; import com.google.android.exoplayer2.ParserException; @@ -51,10 +49,11 @@ import com.google.android.exoplayer2.offline.DownloadService; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSourceInputStream; +import com.google.android.exoplayer2.upstream.DataSourceUtil; import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.Util; -import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -64,6 +63,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; /** An activity for selecting from a list of media samples. */ public class SampleChooserActivity extends AppCompatActivity @@ -162,7 +162,7 @@ public void onDownloadsChanged() { @Override public void onRequestPermissionsResult( - int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (grantResults.length == 0) { // Empty results are triggered if a permission is requested while another request was already @@ -249,12 +249,12 @@ private int getDownloadUnsupportedStringId(PlaylistHolder playlistHolder) { if (playlistHolder.mediaItems.size() > 1) { return R.string.download_playlist_unsupported; } - MediaItem.PlaybackProperties playbackProperties = - checkNotNull(playlistHolder.mediaItems.get(0).playbackProperties); - if (playbackProperties.adsConfiguration != null) { + MediaItem.LocalConfiguration localConfiguration = + checkNotNull(playlistHolder.mediaItems.get(0).localConfiguration); + if (localConfiguration.adsConfiguration != null) { return R.string.download_ads_unsupported; } - String scheme = playbackProperties.uri.getScheme(); + String scheme = localConfiguration.uri.getScheme(); if (!("http".equals(scheme) || "https".equals(scheme))) { return R.string.download_scheme_unsupported; } @@ -284,7 +284,7 @@ protected List doInBackground(String... uris) { Log.e(TAG, "Error loading sample list: " + uri, e); sawError = true; } finally { - Util.closeQuietly(dataSource); + DataSourceUtil.closeQuietly(dataSource); } } return result; @@ -345,6 +345,12 @@ private PlaylistHolder readEntry(JsonReader reader, boolean insidePlaylist) thro Uri subtitleUri = null; String subtitleMimeType = null; String subtitleLanguage = null; + UUID drmUuid = null; + String drmLicenseUri = null; + ImmutableMap drmLicenseRequestHeaders = ImmutableMap.of(); + boolean drmSessionForClearContent = false; + boolean drmMultiSession = false; + boolean drmForceDefaultLicenseUri = false; MediaItem.Builder mediaItem = new MediaItem.Builder(); reader.beginObject(); @@ -367,14 +373,15 @@ private PlaylistHolder readEntry(JsonReader reader, boolean insidePlaylist) thro mediaItem.setClipEndPositionMs(reader.nextLong()); break; case "ad_tag_uri": - mediaItem.setAdTagUri(reader.nextString()); + mediaItem.setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(reader.nextString())).build()); break; case "drm_scheme": - mediaItem.setDrmUuid(Util.getDrmUuid(reader.nextString())); + drmUuid = Util.getDrmUuid(reader.nextString()); break; case "drm_license_uri": case "drm_license_url": // For backward compatibility only. - mediaItem.setDrmLicenseUri(reader.nextString()); + drmLicenseUri = reader.nextString(); break; case "drm_key_request_properties": Map requestHeaders = new HashMap<>(); @@ -383,19 +390,16 @@ private PlaylistHolder readEntry(JsonReader reader, boolean insidePlaylist) thro requestHeaders.put(reader.nextName(), reader.nextString()); } reader.endObject(); - mediaItem.setDrmLicenseRequestHeaders(requestHeaders); + drmLicenseRequestHeaders = ImmutableMap.copyOf(requestHeaders); break; case "drm_session_for_clear_content": - if (reader.nextBoolean()) { - mediaItem.setDrmSessionForClearTypes( - ImmutableList.of(C.TRACK_TYPE_VIDEO, C.TRACK_TYPE_AUDIO)); - } + drmSessionForClearContent = reader.nextBoolean(); break; case "drm_multi_session": - mediaItem.setDrmMultiSession(reader.nextBoolean()); + drmMultiSession = reader.nextBoolean(); break; case "drm_force_default_license_uri": - mediaItem.setDrmForceDefaultLicenseUri(reader.nextBoolean()); + drmForceDefaultLicenseUri = reader.nextBoolean(); break; case "subtitle_uri": subtitleUri = Uri.parse(reader.nextString()); @@ -436,6 +440,28 @@ private PlaylistHolder readEntry(JsonReader reader, boolean insidePlaylist) thro .setUri(uri) .setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build()) .setMimeType(adaptiveMimeType); + if (drmUuid != null) { + mediaItem.setDrmConfiguration( + new MediaItem.DrmConfiguration.Builder(drmUuid) + .setLicenseUri(drmLicenseUri) + .setLicenseRequestHeaders(drmLicenseRequestHeaders) + .forceSessionsForAudioAndVideoTracks(drmSessionForClearContent) + .setMultiSession(drmMultiSession) + .setForceDefaultLicenseUri(drmForceDefaultLicenseUri) + .build()); + } else { + checkState(drmLicenseUri == null, "drm_uuid is required if drm_license_uri is set."); + checkState( + drmLicenseRequestHeaders.isEmpty(), + "drm_uuid is required if drm_key_request_properties is set."); + checkState( + !drmSessionForClearContent, + "drm_uuid is required if drm_session_for_clear_content is set."); + checkState(!drmMultiSession, "drm_uuid is required if drm_multi_session is set."); + checkState( + !drmForceDefaultLicenseUri, + "drm_uuid is required if drm_force_default_license_uri is set."); + } if (subtitleUri != null) { MediaItem.Subtitle subtitle = new MediaItem.Subtitle( diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionDialog.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionDialog.java index 5b50298df0d..00d90bbcf5d 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionDialog.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/TrackSelectionDialog.java @@ -24,7 +24,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatDialog; import androidx.fragment.app.DialogFragment; @@ -213,7 +212,6 @@ public List getOverrides(int rendererIndex) { } @Override - @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { // We need to own the view to let tab layout work correctly on all API levels. We can't use // AlertDialog because it owns the view itself, so we use AppCompatDialog instead, themed using @@ -225,7 +223,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { } @Override - public void onDismiss(@NonNull DialogInterface dialog) { + public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); onDismissListener.onDismiss(dialog); } @@ -290,7 +288,6 @@ public FragmentAdapter(FragmentManager fragmentManager) { } @Override - @NonNull public Fragment getItem(int position) { return tabFragments.valueAt(position); } @@ -364,8 +361,7 @@ public View onCreateView( } @Override - public void onTrackSelectionChanged( - boolean isDisabled, @NonNull List overrides) { + public void onTrackSelectionChanged(boolean isDisabled, List overrides) { this.isDisabled = isDisabled; this.overrides = overrides; } diff --git a/demos/surface/README.md b/demos/surface/README.md index 3febb23feb3..496e1b49316 100644 --- a/demos/surface/README.md +++ b/demos/surface/README.md @@ -18,7 +18,7 @@ called, and because you can move output off-screen easily (`setOutputSurface` can't take a `null` surface, so the player has to use a `DummySurface`, which doesn't handle protected output on all devices). -Please see the [demos README](../README.md) for instructions on how to build and -run this demo. +See the [demos README](../README.md) for instructions on how to build and run +this demo. [SurfaceControl]: https://developer.android.com/reference/android/view/SurfaceControl diff --git a/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java b/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java index a31cd7efe01..c9abfcef149 100644 --- a/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java +++ b/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java @@ -28,9 +28,9 @@ import android.widget.GridLayout; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.Player; -import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.drm.DefaultDrmSessionManager; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.FrameworkMediaDrm; @@ -40,8 +40,8 @@ import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.ui.PlayerControlView; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; @@ -66,7 +66,7 @@ public final class MainActivity extends Activity { @Nullable private SurfaceView nonFullScreenView; @Nullable private SurfaceView currentOutputView; - @Nullable private static SimpleExoPlayer player; + @Nullable private static ExoPlayer player; @Nullable private static SurfaceControl surfaceControl; @Nullable private static Surface videoSurface; @@ -189,7 +189,7 @@ private void initializePlayer() { String drmScheme = Assertions.checkNotNull(intent.getStringExtra(DRM_SCHEME_EXTRA)); String drmLicenseUrl = Assertions.checkNotNull(intent.getStringExtra(DRM_LICENSE_URL_EXTRA)); UUID drmSchemeUuid = Assertions.checkNotNull(Util.getDrmUuid(drmScheme)); - HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSourceFactory(); + HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSource.Factory(); HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory); drmSessionManager = @@ -200,7 +200,7 @@ private void initializePlayer() { drmSessionManager = DrmSessionManager.DRM_UNSUPPORTED; } - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(this); MediaSource mediaSource; @C.ContentType int type = Util.inferContentType(uri, intent.getStringExtra(EXTENSION_EXTRA)); if (type == C.TYPE_DASH) { @@ -216,7 +216,7 @@ private void initializePlayer() { } else { throw new IllegalStateException(); } - SimpleExoPlayer player = new SimpleExoPlayer.Builder(getApplicationContext()).build(); + ExoPlayer player = new ExoPlayer.Builder(getApplicationContext()).build(); player.setMediaSource(mediaSource); player.prepare(); player.play(); diff --git a/docs/README.md b/docs/README.md index bb169336b18..775776676ad 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,4 @@ -# ExoPlayer website # +# ExoPlayer website The [ExoPlayer website](https://exoplayer.dev/) is hosted on GitHub Pages, and is statically generated using Jekyll. diff --git a/docs/ad-insertion.md b/docs/ad-insertion.md index 972f07a9c59..4e42430f5b6 100644 --- a/docs/ad-insertion.md +++ b/docs/ad-insertion.md @@ -36,7 +36,11 @@ An ad tag URI can be specified when building a `MediaItem`: ~~~ MediaItem mediaItem = - new MediaItem.Builder().setUri(videoUri).setAdTagUri(adTagUri).build(); + new MediaItem.Builder() + .setUri(videoUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri).build()) + .build(); ~~~ {: .language-java} @@ -49,7 +53,7 @@ MediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(context) .setAdsLoaderProvider(adsLoaderProvider) .setAdViewProvider(playerView); -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context) +ExoPlayer player = new ExoPlayer.Builder(context) .setMediaSourceFactory(mediaSourceFactory) .build(); ~~~ @@ -88,12 +92,18 @@ playlist from start to finish. MediaItem firstItem = new MediaItem.Builder() .setUri(firstVideoUri) - .setAdTagUri(adTagUri, /* adsId= */ adTagUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri) + .setAdsId(adTagUri) + .build()) .build(); MediaItem secondItem = new MediaItem.Builder() .setUri(secondVideoUri) - .setAdTagUri(adTagUri, /* adsId= */ adTagUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri) + .setAdsId(adTagUri) + .build()) .build(); player.addMediaItem(firstItem); player.addMediaItem(secondItem); @@ -168,7 +178,10 @@ MediaItem preRollAd = MediaItem.fromUri(preRollAdUri); MediaItem contentStart = new MediaItem.Builder() .setUri(contentUri) - .setClipEndPositionMs(120_000) + .setClippingConfiguration( + new ClippingConfiguration.Builder() + .setEndPositionMs(120_000) + .build()) .build(); // A mid-roll ad. MediaItem midRollAd = MediaItem.fromUri(midRollAdUri); @@ -176,7 +189,10 @@ MediaItem midRollAd = MediaItem.fromUri(midRollAdUri); MediaItem contentEnd = new MediaItem.Builder() .setUri(contentUri) - .setClipStartPositionMs(120_000) + .setClippingConfiguration( + new ClippingConfiguration.Builder() + .setStartPositionMs(120_000) + .build()) .build(); // Build the playlist. @@ -199,7 +215,7 @@ events to an ad SDK or ad server. For example, the media stream may include timed events that need to be reported by the client (see [supported formats][] for information on what timed metadata formats are supported by ExoPlayer). Apps can listen for timed metadata events from the player, e.g., via -`SimpleExoPlayer.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. diff --git a/docs/analytics.md b/docs/analytics.md index 5451d8a992a..f748cc18858 100644 --- a/docs/analytics.md +++ b/docs/analytics.md @@ -44,7 +44,7 @@ implementations. You can easily add your own listener and override only the methods you are interested in: ~~~ -simpleExoPlayer.addAnalyticsListener(new AnalyticsListener() { +exoPlayer.addAnalyticsListener(new AnalyticsListener() { @Override public void onPlaybackStateChanged( EventTime eventTime, @Player.State int state) { @@ -98,7 +98,7 @@ current playback session at any time using `PlaybackStatsListener.getPlaybackStats()`. ~~~ -simpleExoPlayer.addAnalyticsListener( +exoPlayer.addAnalyticsListener( new PlaybackStatsListener( /* keepHistory= */ true, (eventTime, playbackStats) -> { // Analytics data for the session started at `eventTime` is ready. @@ -215,7 +215,7 @@ new PlaybackStatsListener( /* keepHistory= */ false, (eventTime, playbackStats) -> { Object mediaTag = eventTime.timeline.getWindow(eventTime.windowIndex, new Window()) - .mediaItem.playbackProperties.tag; + .mediaItem.localConfiguration.tag; // Report playbackStats with mediaTag metadata. }); ~~~ @@ -246,7 +246,7 @@ class ExtendedCollector extends AnalyticsCollector { } // Usage - Setup and listener registration. -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context) +ExoPlayer player = new ExoPlayer.Builder(context) .setAnalyticsCollector(new ExtendedCollector()) .build(); player.addAnalyticsListener(new ExtendedListener() { diff --git a/docs/customization.md b/docs/customization.md index 7a5cf7e51ae..6be6d39e77c 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -4,13 +4,13 @@ title: Customization At the core of the ExoPlayer library is the `Player` interface. A `Player` exposes traditional high-level media player functionality such as the ability to -buffer media, play, pause and seek. The default implementations `ExoPlayer` and -`SimpleExoPlayer` are designed to make few assumptions about (and hence impose -few restrictions on) the type of media being played, how and where it is stored, -and how it is rendered. Rather than implementing the loading and rendering of -media directly, `ExoPlayer` implementations delegate this work to components -that are injected when a player is created or when new media sources are passed -to the player. Components common to all `ExoPlayer` implementations are: +buffer media, play, pause and seek. The default implementation `ExoPlayer` is +designed to make few assumptions about (and hence impose few restrictions on) +the type of media being played, how and where it is stored, and how it is +rendered. Rather than implementing the loading and rendering of media directly, +`ExoPlayer` implementations delegate this work to components that are injected +when a player is created or when new media sources are passed to the player. +Components common to all `ExoPlayer` implementations are: * `MediaSource` instances that define media to be played, load the media, and from which the loaded media can be read. `MediaSource` instances are created @@ -53,14 +53,14 @@ default network stack with cross-protocol redirects enabled: HttpDataSource.Factory httpDataSourceFactory = new DefaultHttpDataSource.Factory().setAllowCrossProtocolRedirects(true); -// Wrap the HttpDataSource.Factory in a DefaultDataSourceFactory, which adds in +// Wrap the HttpDataSource.Factory in a DefaultDataSource.Factory, which adds in // support for requesting data from other sources (e.g., files, resources, etc). -DefaultDataSourceFactory dataSourceFactory = - new DefaultDataSourceFactory(context, httpDataSourceFactory); +DefaultDataSource.Factory dataSourceFactory = + new DefaultDataSource.Factory(context, httpDataSourceFactory); // Inject the DefaultDataSourceFactory when creating the player. -SimpleExoPlayer player = - new SimpleExoPlayer.Builder(context) +ExoPlayer player = + new ExoPlayer.Builder(context) .setMediaSourceFactory(new DefaultMediaSourceFactory(dataSourceFactory)) .build(); ~~~ @@ -82,7 +82,7 @@ DataSource.Factory cacheDataSourceFactory = .setCache(simpleCache) .setUpstreamDataSourceFactory(httpDataSourceFactory); -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context) +ExoPlayer player = new ExoPlayer.Builder(context) .setMediaSourceFactory( new DefaultMediaSourceFactory(cacheDataSourceFactory)) .build(); @@ -107,7 +107,7 @@ DataSource.Factory dataSourceFactory = () -> { return dataSource; }; -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context) +ExoPlayer player = new ExoPlayer.Builder(context) .setMediaSourceFactory(new DefaultMediaSourceFactory(dataSourceFactory)) .build(); ~~~ @@ -157,8 +157,8 @@ LoadErrorHandlingPolicy loadErrorHandlingPolicy = } }; -SimpleExoPlayer player = - new SimpleExoPlayer.Builder(context) +ExoPlayer player = + new ExoPlayer.Builder(context) .setMediaSourceFactory( new DefaultMediaSourceFactory(context) .setLoadErrorHandlingPolicy(loadErrorHandlingPolicy)) @@ -181,7 +181,7 @@ DefaultExtractorsFactory extractorsFactory = new DefaultExtractorsFactory() .setMp3ExtractorFlags(Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING); -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context) +ExoPlayer player = new ExoPlayer.Builder(context) .setMediaSourceFactory( new DefaultMediaSourceFactory(context, extractorsFactory)) .build(); diff --git a/docs/dash.md b/docs/dash.md index 01bf698455c..88cc6679138 100644 --- a/docs/dash.md +++ b/docs/dash.md @@ -17,7 +17,7 @@ You can then create a `MediaItem` for a DASH MPD URI and pass it to the player. ~~~ // Create a player instance. -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build(); +ExoPlayer player = new ExoPlayer.Builder(context).build(); // Set the media item to be played. player.setMediaItem(MediaItem.fromUri(dashUri)); // Prepare the player. @@ -45,7 +45,7 @@ MediaSource mediaSource = new DashMediaSource.Factory(dataSourceFactory) .createMediaSource(MediaItem.fromUri(dashUri)); // Create a player instance. -SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build(); +ExoPlayer player = new ExoPlayer.Builder(context).build(); // Set the media source to be played. player.setMediaSource(mediaSource); // Prepare the player. diff --git a/docs/debug-logging.md b/docs/debug-logging.md index 25ea13ccf57..c7d5a652ea1 100644 --- a/docs/debug-logging.md +++ b/docs/debug-logging.md @@ -6,7 +6,7 @@ By default ExoPlayer only logs errors. To log player events, the `EventLogger` class can be used. The additional logging it provides can be helpful for understanding what the player is doing, as well as for debugging playback issues. `EventLogger` implements `AnalyticsListener`, so registering an instance -with a `SimpleExoPlayer` is easy: +with an `ExoPlayer` is easy: ``` player.addAnalyticsListener(new EventLogger(trackSelector)); diff --git a/docs/doc/reference/allclasses-index.html b/docs/doc/reference/allclasses-index.html index 0b597a9f2a3..f99c81d5553 100644 --- a/docs/doc/reference/allclasses-index.html +++ b/docs/doc/reference/allclasses-index.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":2,"i1":32,"i2":2,"i3":2,"i4":2,"i5":2,"i6":2,"i7":2,"i8":32,"i9":2,"i10":2,"i11":2,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2,"i17":2,"i18":2,"i19":2,"i20":2,"i21":2,"i22":2,"i23":2,"i24":2,"i25":2,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":2,"i44":2,"i45":1,"i46":2,"i47":2,"i48":1,"i49":2,"i50":2,"i51":1,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i57":2,"i58":32,"i59":2,"i60":2,"i61":32,"i62":1,"i63":1,"i64":2,"i65":8,"i66":32,"i67":2,"i68":32,"i69":2,"i70":1,"i71":2,"i72":2,"i73":2,"i74":2,"i75":1,"i76":2,"i77":32,"i78":2,"i79":1,"i80":32,"i81":2,"i82":2,"i83":2,"i84":2,"i85":2,"i86":2,"i87":1,"i88":32,"i89":2,"i90":2,"i91":8,"i92":2,"i93":2,"i94":2,"i95":2,"i96":2,"i97":1,"i98":1,"i99":1,"i100":2,"i101":8,"i102":1,"i103":2,"i104":1,"i105":8,"i106":8,"i107":1,"i108":32,"i109":8,"i110":8,"i111":2,"i112":2,"i113":1,"i114":1,"i115":2,"i116":2,"i117":2,"i118":2,"i119":2,"i120":2,"i121":2,"i122":2,"i123":2,"i124":2,"i125":2,"i126":2,"i127":8,"i128":2,"i129":2,"i130":2,"i131":2,"i132":2,"i133":1,"i134":2,"i135":1,"i136":2,"i137":1,"i138":1,"i139":2,"i140":2,"i141":2,"i142":2,"i143":2,"i144":2,"i145":2,"i146":2,"i147":2,"i148":32,"i149":32,"i150":32,"i151":32,"i152":32,"i153":32,"i154":32,"i155":32,"i156":32,"i157":32,"i158":32,"i159":32,"i160":32,"i161":32,"i162":32,"i163":32,"i164":32,"i165":32,"i166":32,"i167":32,"i168":32,"i169":32,"i170":32,"i171":32,"i172":1,"i173":8,"i174":1,"i175":2,"i176":2,"i177":2,"i178":8,"i179":2,"i180":2,"i181":2,"i182":32,"i183":1,"i184":2,"i185":32,"i186":2,"i187":2,"i188":1,"i189":1,"i190":2,"i191":2,"i192":1,"i193":1,"i194":2,"i195":2,"i196":32,"i197":2,"i198":2,"i199":2,"i200":2,"i201":2,"i202":2,"i203":2,"i204":2,"i205":2,"i206":1,"i207":1,"i208":1,"i209":2,"i210":2,"i211":2,"i212":1,"i213":1,"i214":2,"i215":2,"i216":8,"i217":32,"i218":1,"i219":2,"i220":2,"i221":2,"i222":2,"i223":2,"i224":2,"i225":1,"i226":2,"i227":2,"i228":2,"i229":1,"i230":2,"i231":2,"i232":8,"i233":1,"i234":2,"i235":1,"i236":2,"i237":2,"i238":2,"i239":8,"i240":2,"i241":2,"i242":2,"i243":2,"i244":2,"i245":32,"i246":2,"i247":32,"i248":32,"i249":32,"i250":1,"i251":1,"i252":2,"i253":2,"i254":2,"i255":2,"i256":8,"i257":2,"i258":2,"i259":1,"i260":2,"i261":2,"i262":8,"i263":1,"i264":2,"i265":1,"i266":2,"i267":1,"i268":1,"i269":1,"i270":1,"i271":2,"i272":2,"i273":2,"i274":2,"i275":8,"i276":2,"i277":2,"i278":2,"i279":32,"i280":32,"i281":2,"i282":1,"i283":2,"i284":2,"i285":2,"i286":8,"i287":2,"i288":32,"i289":8,"i290":2,"i291":32,"i292":32,"i293":2,"i294":8,"i295":2,"i296":2,"i297":1,"i298":2,"i299":8,"i300":32,"i301":2,"i302":2,"i303":2,"i304":2,"i305":2,"i306":2,"i307":2,"i308":2,"i309":2,"i310":2,"i311":2,"i312":2,"i313":2,"i314":2,"i315":2,"i316":2,"i317":2,"i318":8,"i319":32,"i320":2,"i321":2,"i322":2,"i323":2,"i324":2,"i325":2,"i326":2,"i327":2,"i328":2,"i329":2,"i330":2,"i331":2,"i332":2,"i333":2,"i334":2,"i335":2,"i336":2,"i337":2,"i338":2,"i339":1,"i340":2,"i341":2,"i342":32,"i343":2,"i344":2,"i345":2,"i346":2,"i347":2,"i348":2,"i349":2,"i350":2,"i351":2,"i352":2,"i353":2,"i354":2,"i355":2,"i356":2,"i357":2,"i358":32,"i359":2,"i360":2,"i361":32,"i362":1,"i363":2,"i364":2,"i365":32,"i366":32,"i367":2,"i368":1,"i369":1,"i370":1,"i371":1,"i372":8,"i373":2,"i374":1,"i375":8,"i376":1,"i377":2,"i378":1,"i379":2,"i380":2,"i381":2,"i382":2,"i383":8,"i384":2,"i385":2,"i386":2,"i387":1,"i388":8,"i389":32,"i390":1,"i391":2,"i392":1,"i393":1,"i394":1,"i395":2,"i396":32,"i397":2,"i398":2,"i399":2,"i400":2,"i401":2,"i402":2,"i403":1,"i404":2,"i405":2,"i406":2,"i407":2,"i408":1,"i409":2,"i410":2,"i411":2,"i412":1,"i413":32,"i414":2,"i415":8,"i416":32,"i417":1,"i418":1,"i419":2,"i420":1,"i421":2,"i422":2,"i423":2,"i424":2,"i425":2,"i426":2,"i427":2,"i428":2,"i429":1,"i430":1,"i431":2,"i432":2,"i433":32,"i434":2,"i435":1,"i436":1,"i437":1,"i438":1,"i439":2,"i440":8,"i441":32,"i442":1,"i443":1,"i444":1,"i445":2,"i446":1,"i447":1,"i448":1,"i449":1,"i450":2,"i451":2,"i452":2,"i453":8,"i454":32,"i455":1,"i456":2,"i457":1,"i458":1,"i459":32,"i460":2,"i461":2,"i462":2,"i463":1,"i464":2,"i465":1,"i466":1,"i467":1,"i468":2,"i469":2,"i470":2,"i471":2,"i472":2,"i473":2,"i474":2,"i475":2,"i476":2,"i477":2,"i478":2,"i479":2,"i480":2,"i481":2,"i482":2,"i483":2,"i484":2,"i485":2,"i486":2,"i487":2,"i488":2,"i489":2,"i490":8,"i491":2,"i492":2,"i493":2,"i494":2,"i495":2,"i496":1,"i497":2,"i498":2,"i499":2,"i500":2,"i501":2,"i502":2,"i503":2,"i504":2,"i505":2,"i506":1,"i507":2,"i508":2,"i509":2,"i510":2,"i511":8,"i512":2,"i513":2,"i514":2,"i515":8,"i516":2,"i517":2,"i518":32,"i519":1,"i520":2,"i521":2,"i522":2,"i523":2,"i524":2,"i525":8,"i526":2,"i527":2,"i528":32,"i529":32,"i530":2,"i531":2,"i532":2,"i533":2,"i534":2,"i535":2,"i536":2,"i537":2,"i538":2,"i539":2,"i540":2,"i541":2,"i542":2,"i543":2,"i544":2,"i545":2,"i546":2,"i547":2,"i548":2,"i549":32,"i550":2,"i551":2,"i552":2,"i553":2,"i554":8,"i555":2,"i556":2,"i557":2,"i558":2,"i559":2,"i560":2,"i561":2,"i562":2,"i563":2,"i564":2,"i565":1,"i566":1,"i567":2,"i568":2,"i569":1,"i570":2,"i571":1,"i572":2,"i573":2,"i574":2,"i575":2,"i576":1,"i577":2,"i578":2,"i579":2,"i580":32,"i581":2,"i582":2,"i583":2,"i584":2,"i585":2,"i586":2,"i587":32,"i588":2,"i589":2,"i590":8,"i591":1,"i592":1,"i593":1,"i594":1,"i595":8,"i596":8,"i597":1,"i598":2,"i599":2,"i600":2,"i601":2,"i602":1,"i603":1,"i604":2,"i605":8,"i606":1,"i607":8,"i608":32,"i609":8,"i610":8,"i611":2,"i612":2,"i613":2,"i614":2,"i615":2,"i616":2,"i617":2,"i618":2,"i619":1,"i620":2,"i621":2,"i622":2,"i623":8,"i624":2,"i625":2,"i626":2,"i627":2,"i628":2,"i629":2,"i630":2,"i631":2,"i632":8,"i633":1,"i634":2,"i635":2,"i636":2,"i637":2,"i638":2,"i639":2,"i640":2,"i641":2,"i642":2,"i643":1,"i644":1,"i645":1,"i646":1,"i647":2,"i648":1,"i649":1,"i650":2,"i651":1,"i652":8,"i653":1,"i654":2,"i655":1,"i656":2,"i657":2,"i658":32,"i659":2,"i660":2,"i661":2,"i662":2,"i663":2,"i664":2,"i665":2,"i666":2,"i667":2,"i668":1,"i669":2,"i670":2,"i671":2,"i672":32,"i673":2,"i674":2,"i675":1,"i676":1,"i677":1,"i678":2,"i679":1,"i680":1,"i681":2,"i682":8,"i683":2,"i684":2,"i685":8,"i686":1,"i687":2,"i688":8,"i689":8,"i690":2,"i691":2,"i692":1,"i693":8,"i694":2,"i695":2,"i696":2,"i697":2,"i698":2,"i699":2,"i700":2,"i701":2,"i702":2,"i703":1,"i704":1,"i705":2,"i706":2,"i707":2,"i708":32,"i709":32,"i710":2,"i711":2,"i712":2,"i713":2,"i714":1,"i715":1,"i716":2,"i717":1,"i718":2,"i719":2,"i720":1,"i721":1,"i722":1,"i723":2,"i724":1,"i725":1,"i726":32,"i727":1,"i728":1,"i729":1,"i730":1,"i731":1,"i732":2,"i733":1,"i734":1,"i735":2,"i736":1,"i737":2,"i738":2,"i739":8,"i740":32,"i741":2,"i742":1,"i743":1,"i744":1,"i745":2,"i746":1,"i747":2,"i748":2,"i749":2,"i750":2,"i751":2,"i752":2,"i753":32,"i754":2,"i755":32,"i756":2,"i757":2,"i758":2,"i759":2,"i760":2,"i761":2,"i762":2,"i763":2,"i764":2,"i765":1,"i766":32,"i767":2,"i768":2,"i769":2,"i770":32,"i771":2,"i772":2,"i773":2,"i774":2,"i775":2,"i776":2,"i777":2,"i778":8,"i779":2,"i780":2,"i781":2,"i782":1,"i783":2,"i784":2,"i785":2,"i786":2,"i787":8,"i788":2,"i789":1,"i790":2,"i791":2,"i792":2,"i793":2,"i794":2,"i795":2,"i796":2,"i797":2,"i798":8,"i799":32,"i800":32,"i801":2,"i802":2,"i803":1,"i804":1,"i805":2,"i806":2,"i807":2,"i808":2,"i809":2,"i810":1,"i811":1,"i812":32,"i813":2,"i814":2,"i815":32,"i816":32,"i817":1,"i818":2,"i819":1,"i820":32,"i821":32,"i822":32,"i823":2,"i824":32,"i825":32,"i826":32,"i827":2,"i828":1,"i829":1,"i830":2,"i831":1,"i832":2,"i833":1,"i834":1,"i835":2,"i836":2,"i837":1,"i838":1,"i839":1,"i840":32,"i841":32,"i842":2,"i843":32,"i844":2,"i845":2,"i846":2,"i847":2,"i848":8,"i849":2,"i850":2,"i851":2,"i852":2,"i853":2,"i854":1,"i855":1,"i856":2,"i857":2,"i858":2,"i859":2,"i860":2,"i861":2,"i862":2,"i863":2,"i864":2,"i865":2,"i866":2,"i867":8,"i868":1,"i869":32,"i870":32,"i871":1,"i872":1,"i873":32,"i874":32,"i875":32,"i876":32,"i877":2,"i878":1,"i879":2,"i880":2,"i881":32,"i882":2,"i883":2,"i884":2,"i885":2,"i886":32,"i887":2,"i888":1,"i889":2,"i890":2,"i891":1,"i892":2,"i893":2,"i894":2,"i895":2,"i896":2,"i897":2,"i898":2,"i899":2,"i900":2,"i901":1,"i902":1,"i903":2,"i904":2,"i905":2,"i906":8,"i907":2,"i908":2,"i909":2,"i910":1,"i911":8,"i912":1,"i913":32,"i914":32,"i915":1,"i916":1,"i917":2,"i918":1,"i919":2,"i920":2,"i921":2,"i922":2,"i923":2,"i924":2,"i925":2,"i926":2,"i927":2,"i928":2,"i929":2,"i930":2,"i931":2,"i932":1,"i933":1,"i934":2,"i935":2,"i936":2,"i937":1,"i938":2,"i939":1,"i940":1,"i941":2,"i942":1,"i943":2,"i944":1,"i945":1,"i946":1,"i947":1,"i948":2,"i949":2,"i950":1,"i951":2,"i952":2,"i953":2,"i954":2,"i955":2,"i956":2,"i957":2,"i958":2,"i959":2,"i960":2,"i961":2,"i962":2,"i963":2,"i964":2,"i965":2,"i966":2,"i967":2,"i968":2,"i969":2,"i970":2,"i971":2,"i972":2,"i973":1,"i974":2,"i975":2,"i976":1,"i977":1,"i978":1,"i979":1,"i980":1,"i981":1,"i982":1,"i983":1,"i984":1,"i985":2,"i986":2,"i987":1,"i988":2,"i989":2,"i990":2,"i991":2,"i992":2,"i993":2,"i994":2,"i995":2,"i996":2,"i997":1,"i998":1,"i999":2,"i1000":2,"i1001":2,"i1002":2,"i1003":2,"i1004":8,"i1005":2,"i1006":2,"i1007":2,"i1008":2,"i1009":2,"i1010":2,"i1011":2,"i1012":2,"i1013":2,"i1014":1,"i1015":1,"i1016":1,"i1017":2,"i1018":32,"i1019":2,"i1020":1,"i1021":1,"i1022":8,"i1023":1,"i1024":2,"i1025":2,"i1026":2,"i1027":32,"i1028":2,"i1029":2,"i1030":2,"i1031":2,"i1032":1,"i1033":2,"i1034":2,"i1035":2,"i1036":2,"i1037":2,"i1038":2,"i1039":2,"i1040":32,"i1041":2,"i1042":32,"i1043":32,"i1044":2,"i1045":1,"i1046":2,"i1047":2,"i1048":1,"i1049":1,"i1050":2,"i1051":2,"i1052":2,"i1053":2,"i1054":2,"i1055":2,"i1056":2,"i1057":1,"i1058":2,"i1059":1,"i1060":2,"i1061":2,"i1062":2,"i1063":2,"i1064":1,"i1065":2,"i1066":2,"i1067":32,"i1068":2,"i1069":2,"i1070":2,"i1071":1,"i1072":1,"i1073":2,"i1074":32,"i1075":1,"i1076":2,"i1077":2,"i1078":1,"i1079":2,"i1080":2,"i1081":2,"i1082":1,"i1083":2,"i1084":1,"i1085":2,"i1086":1,"i1087":2,"i1088":1,"i1089":2,"i1090":2,"i1091":1,"i1092":32,"i1093":2,"i1094":32,"i1095":1,"i1096":2,"i1097":2,"i1098":1,"i1099":32,"i1100":2,"i1101":2,"i1102":2,"i1103":2,"i1104":2,"i1105":8,"i1106":32,"i1107":8,"i1108":8,"i1109":32,"i1110":2,"i1111":2,"i1112":2,"i1113":2,"i1114":2,"i1115":2,"i1116":2,"i1117":2,"i1118":2,"i1119":2,"i1120":1,"i1121":1,"i1122":2,"i1123":1,"i1124":1,"i1125":2,"i1126":2,"i1127":2,"i1128":2,"i1129":2,"i1130":2,"i1131":2,"i1132":2,"i1133":2,"i1134":8,"i1135":2,"i1136":2,"i1137":2,"i1138":2,"i1139":2,"i1140":2,"i1141":2,"i1142":32,"i1143":32,"i1144":2,"i1145":2,"i1146":2,"i1147":2,"i1148":2,"i1149":2,"i1150":2,"i1151":2,"i1152":1,"i1153":2}; +var data = {"i0":2,"i1":32,"i2":2,"i3":2,"i4":2,"i5":2,"i6":2,"i7":2,"i8":32,"i9":2,"i10":2,"i11":2,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2,"i17":2,"i18":2,"i19":2,"i20":2,"i21":2,"i22":2,"i23":2,"i24":2,"i25":2,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":2,"i44":2,"i45":1,"i46":2,"i47":2,"i48":1,"i49":2,"i50":2,"i51":1,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i57":2,"i58":32,"i59":2,"i60":2,"i61":32,"i62":1,"i63":1,"i64":2,"i65":8,"i66":32,"i67":2,"i68":32,"i69":2,"i70":1,"i71":2,"i72":2,"i73":2,"i74":2,"i75":1,"i76":2,"i77":32,"i78":2,"i79":1,"i80":32,"i81":2,"i82":2,"i83":2,"i84":2,"i85":2,"i86":2,"i87":1,"i88":32,"i89":2,"i90":2,"i91":2,"i92":8,"i93":2,"i94":2,"i95":2,"i96":2,"i97":2,"i98":1,"i99":1,"i100":2,"i101":8,"i102":1,"i103":2,"i104":1,"i105":8,"i106":8,"i107":1,"i108":32,"i109":8,"i110":8,"i111":2,"i112":2,"i113":1,"i114":1,"i115":2,"i116":2,"i117":2,"i118":2,"i119":2,"i120":2,"i121":2,"i122":2,"i123":2,"i124":2,"i125":2,"i126":2,"i127":8,"i128":2,"i129":2,"i130":2,"i131":2,"i132":2,"i133":1,"i134":2,"i135":1,"i136":2,"i137":1,"i138":1,"i139":2,"i140":2,"i141":2,"i142":2,"i143":2,"i144":2,"i145":2,"i146":2,"i147":2,"i148":32,"i149":32,"i150":32,"i151":32,"i152":32,"i153":32,"i154":32,"i155":32,"i156":32,"i157":32,"i158":32,"i159":32,"i160":32,"i161":32,"i162":32,"i163":32,"i164":32,"i165":32,"i166":32,"i167":32,"i168":32,"i169":32,"i170":32,"i171":32,"i172":32,"i173":32,"i174":32,"i175":32,"i176":32,"i177":1,"i178":8,"i179":1,"i180":2,"i181":2,"i182":2,"i183":8,"i184":2,"i185":2,"i186":32,"i187":1,"i188":2,"i189":32,"i190":2,"i191":1,"i192":1,"i193":2,"i194":2,"i195":1,"i196":1,"i197":2,"i198":2,"i199":32,"i200":2,"i201":2,"i202":2,"i203":2,"i204":2,"i205":2,"i206":2,"i207":2,"i208":2,"i209":1,"i210":1,"i211":1,"i212":2,"i213":2,"i214":2,"i215":1,"i216":1,"i217":2,"i218":2,"i219":8,"i220":32,"i221":1,"i222":2,"i223":2,"i224":2,"i225":2,"i226":2,"i227":2,"i228":1,"i229":2,"i230":2,"i231":2,"i232":1,"i233":2,"i234":2,"i235":8,"i236":1,"i237":2,"i238":2,"i239":2,"i240":2,"i241":8,"i242":2,"i243":2,"i244":2,"i245":1,"i246":8,"i247":2,"i248":2,"i249":32,"i250":2,"i251":32,"i252":32,"i253":32,"i254":2,"i255":2,"i256":1,"i257":1,"i258":2,"i259":2,"i260":2,"i261":2,"i262":8,"i263":2,"i264":2,"i265":1,"i266":2,"i267":2,"i268":8,"i269":1,"i270":2,"i271":1,"i272":2,"i273":1,"i274":1,"i275":1,"i276":1,"i277":2,"i278":2,"i279":2,"i280":2,"i281":8,"i282":2,"i283":2,"i284":2,"i285":2,"i286":32,"i287":32,"i288":2,"i289":1,"i290":2,"i291":2,"i292":2,"i293":8,"i294":2,"i295":32,"i296":8,"i297":2,"i298":1,"i299":2,"i300":32,"i301":32,"i302":2,"i303":2,"i304":2,"i305":1,"i306":2,"i307":8,"i308":32,"i309":2,"i310":2,"i311":2,"i312":2,"i313":2,"i314":2,"i315":2,"i316":2,"i317":2,"i318":2,"i319":2,"i320":2,"i321":2,"i322":2,"i323":2,"i324":2,"i325":2,"i326":8,"i327":32,"i328":2,"i329":2,"i330":2,"i331":2,"i332":2,"i333":2,"i334":2,"i335":2,"i336":2,"i337":2,"i338":2,"i339":2,"i340":2,"i341":2,"i342":2,"i343":2,"i344":2,"i345":2,"i346":2,"i347":1,"i348":2,"i349":2,"i350":32,"i351":2,"i352":2,"i353":2,"i354":2,"i355":2,"i356":2,"i357":2,"i358":2,"i359":2,"i360":2,"i361":2,"i362":2,"i363":2,"i364":2,"i365":2,"i366":32,"i367":2,"i368":2,"i369":32,"i370":2,"i371":2,"i372":32,"i373":32,"i374":2,"i375":1,"i376":1,"i377":1,"i378":1,"i379":8,"i380":2,"i381":1,"i382":8,"i383":1,"i384":2,"i385":1,"i386":2,"i387":2,"i388":2,"i389":2,"i390":8,"i391":2,"i392":2,"i393":2,"i394":1,"i395":8,"i396":32,"i397":1,"i398":2,"i399":1,"i400":1,"i401":1,"i402":2,"i403":32,"i404":2,"i405":2,"i406":2,"i407":2,"i408":2,"i409":2,"i410":1,"i411":2,"i412":2,"i413":2,"i414":2,"i415":1,"i416":2,"i417":2,"i418":2,"i419":1,"i420":32,"i421":2,"i422":8,"i423":32,"i424":1,"i425":1,"i426":2,"i427":1,"i428":2,"i429":2,"i430":2,"i431":2,"i432":2,"i433":2,"i434":2,"i435":2,"i436":1,"i437":2,"i438":2,"i439":32,"i440":2,"i441":1,"i442":1,"i443":1,"i444":1,"i445":2,"i446":8,"i447":32,"i448":1,"i449":1,"i450":1,"i451":2,"i452":1,"i453":1,"i454":1,"i455":2,"i456":2,"i457":2,"i458":2,"i459":8,"i460":32,"i461":1,"i462":2,"i463":1,"i464":1,"i465":32,"i466":2,"i467":2,"i468":2,"i469":1,"i470":2,"i471":1,"i472":1,"i473":1,"i474":2,"i475":2,"i476":2,"i477":2,"i478":2,"i479":2,"i480":2,"i481":2,"i482":2,"i483":2,"i484":2,"i485":2,"i486":2,"i487":2,"i488":2,"i489":2,"i490":2,"i491":2,"i492":2,"i493":2,"i494":2,"i495":2,"i496":2,"i497":8,"i498":2,"i499":2,"i500":2,"i501":2,"i502":2,"i503":1,"i504":2,"i505":2,"i506":2,"i507":2,"i508":2,"i509":2,"i510":2,"i511":2,"i512":2,"i513":2,"i514":2,"i515":1,"i516":2,"i517":2,"i518":2,"i519":2,"i520":8,"i521":2,"i522":2,"i523":2,"i524":8,"i525":2,"i526":32,"i527":1,"i528":2,"i529":2,"i530":2,"i531":2,"i532":2,"i533":8,"i534":2,"i535":2,"i536":32,"i537":32,"i538":2,"i539":2,"i540":2,"i541":2,"i542":2,"i543":2,"i544":2,"i545":2,"i546":2,"i547":2,"i548":2,"i549":2,"i550":2,"i551":2,"i552":2,"i553":2,"i554":2,"i555":2,"i556":2,"i557":32,"i558":2,"i559":2,"i560":2,"i561":2,"i562":8,"i563":2,"i564":2,"i565":2,"i566":2,"i567":8,"i568":2,"i569":2,"i570":8,"i571":2,"i572":2,"i573":2,"i574":2,"i575":1,"i576":1,"i577":2,"i578":2,"i579":1,"i580":2,"i581":1,"i582":2,"i583":2,"i584":2,"i585":2,"i586":1,"i587":2,"i588":2,"i589":2,"i590":32,"i591":2,"i592":2,"i593":2,"i594":2,"i595":2,"i596":2,"i597":32,"i598":2,"i599":2,"i600":8,"i601":1,"i602":1,"i603":1,"i604":1,"i605":8,"i606":8,"i607":1,"i608":2,"i609":2,"i610":2,"i611":2,"i612":1,"i613":1,"i614":2,"i615":8,"i616":1,"i617":8,"i618":32,"i619":8,"i620":8,"i621":2,"i622":2,"i623":2,"i624":2,"i625":2,"i626":2,"i627":2,"i628":2,"i629":1,"i630":2,"i631":2,"i632":2,"i633":8,"i634":2,"i635":2,"i636":2,"i637":2,"i638":2,"i639":2,"i640":2,"i641":8,"i642":1,"i643":2,"i644":2,"i645":2,"i646":2,"i647":2,"i648":2,"i649":2,"i650":2,"i651":2,"i652":1,"i653":1,"i654":1,"i655":1,"i656":2,"i657":1,"i658":1,"i659":2,"i660":1,"i661":8,"i662":1,"i663":2,"i664":1,"i665":2,"i666":2,"i667":32,"i668":2,"i669":2,"i670":2,"i671":2,"i672":2,"i673":2,"i674":2,"i675":2,"i676":2,"i677":1,"i678":2,"i679":2,"i680":2,"i681":32,"i682":2,"i683":2,"i684":1,"i685":1,"i686":1,"i687":2,"i688":1,"i689":1,"i690":2,"i691":8,"i692":2,"i693":2,"i694":8,"i695":1,"i696":2,"i697":8,"i698":8,"i699":2,"i700":2,"i701":1,"i702":8,"i703":2,"i704":2,"i705":2,"i706":2,"i707":2,"i708":2,"i709":2,"i710":2,"i711":2,"i712":2,"i713":2,"i714":2,"i715":2,"i716":2,"i717":2,"i718":2,"i719":2,"i720":1,"i721":1,"i722":2,"i723":2,"i724":2,"i725":32,"i726":32,"i727":2,"i728":2,"i729":2,"i730":2,"i731":1,"i732":1,"i733":2,"i734":1,"i735":2,"i736":2,"i737":1,"i738":1,"i739":1,"i740":2,"i741":1,"i742":1,"i743":32,"i744":1,"i745":1,"i746":1,"i747":1,"i748":1,"i749":2,"i750":1,"i751":1,"i752":2,"i753":1,"i754":2,"i755":2,"i756":8,"i757":32,"i758":2,"i759":1,"i760":1,"i761":1,"i762":2,"i763":1,"i764":2,"i765":2,"i766":2,"i767":2,"i768":2,"i769":2,"i770":32,"i771":2,"i772":32,"i773":2,"i774":2,"i775":2,"i776":2,"i777":2,"i778":2,"i779":2,"i780":2,"i781":2,"i782":2,"i783":1,"i784":32,"i785":2,"i786":2,"i787":2,"i788":32,"i789":2,"i790":2,"i791":2,"i792":2,"i793":2,"i794":2,"i795":2,"i796":8,"i797":2,"i798":2,"i799":2,"i800":2,"i801":2,"i802":2,"i803":8,"i804":2,"i805":1,"i806":2,"i807":2,"i808":2,"i809":2,"i810":2,"i811":2,"i812":2,"i813":2,"i814":8,"i815":32,"i816":32,"i817":2,"i818":2,"i819":1,"i820":1,"i821":2,"i822":2,"i823":2,"i824":2,"i825":2,"i826":1,"i827":1,"i828":32,"i829":2,"i830":2,"i831":32,"i832":32,"i833":1,"i834":2,"i835":1,"i836":32,"i837":32,"i838":32,"i839":2,"i840":32,"i841":32,"i842":32,"i843":2,"i844":1,"i845":1,"i846":2,"i847":1,"i848":2,"i849":1,"i850":1,"i851":2,"i852":2,"i853":1,"i854":1,"i855":1,"i856":32,"i857":32,"i858":2,"i859":32,"i860":2,"i861":2,"i862":2,"i863":2,"i864":2,"i865":8,"i866":2,"i867":2,"i868":2,"i869":2,"i870":2,"i871":1,"i872":1,"i873":2,"i874":2,"i875":2,"i876":2,"i877":2,"i878":2,"i879":2,"i880":2,"i881":2,"i882":2,"i883":2,"i884":8,"i885":1,"i886":32,"i887":32,"i888":1,"i889":1,"i890":32,"i891":32,"i892":32,"i893":32,"i894":2,"i895":1,"i896":2,"i897":2,"i898":32,"i899":2,"i900":2,"i901":2,"i902":2,"i903":32,"i904":2,"i905":1,"i906":2,"i907":2,"i908":1,"i909":2,"i910":2,"i911":2,"i912":2,"i913":2,"i914":2,"i915":2,"i916":2,"i917":1,"i918":1,"i919":2,"i920":2,"i921":2,"i922":8,"i923":2,"i924":2,"i925":2,"i926":1,"i927":8,"i928":1,"i929":32,"i930":32,"i931":1,"i932":1,"i933":2,"i934":1,"i935":2,"i936":2,"i937":2,"i938":2,"i939":2,"i940":2,"i941":2,"i942":2,"i943":2,"i944":2,"i945":2,"i946":2,"i947":2,"i948":1,"i949":1,"i950":2,"i951":2,"i952":2,"i953":1,"i954":2,"i955":1,"i956":1,"i957":2,"i958":1,"i959":2,"i960":1,"i961":1,"i962":1,"i963":1,"i964":2,"i965":2,"i966":1,"i967":2,"i968":2,"i969":2,"i970":2,"i971":2,"i972":2,"i973":2,"i974":2,"i975":2,"i976":2,"i977":2,"i978":2,"i979":2,"i980":2,"i981":2,"i982":2,"i983":2,"i984":2,"i985":2,"i986":2,"i987":2,"i988":2,"i989":1,"i990":2,"i991":2,"i992":1,"i993":1,"i994":1,"i995":1,"i996":1,"i997":1,"i998":1,"i999":1,"i1000":1,"i1001":2,"i1002":2,"i1003":1,"i1004":2,"i1005":2,"i1006":2,"i1007":2,"i1008":2,"i1009":2,"i1010":2,"i1011":2,"i1012":2,"i1013":1,"i1014":1,"i1015":2,"i1016":2,"i1017":2,"i1018":2,"i1019":2,"i1020":8,"i1021":2,"i1022":2,"i1023":2,"i1024":2,"i1025":2,"i1026":2,"i1027":2,"i1028":2,"i1029":2,"i1030":2,"i1031":2,"i1032":1,"i1033":1,"i1034":1,"i1035":2,"i1036":32,"i1037":2,"i1038":1,"i1039":1,"i1040":8,"i1041":1,"i1042":2,"i1043":2,"i1044":2,"i1045":2,"i1046":32,"i1047":2,"i1048":2,"i1049":2,"i1050":2,"i1051":1,"i1052":2,"i1053":2,"i1054":2,"i1055":2,"i1056":2,"i1057":2,"i1058":2,"i1059":32,"i1060":2,"i1061":32,"i1062":32,"i1063":2,"i1064":1,"i1065":2,"i1066":2,"i1067":1,"i1068":1,"i1069":2,"i1070":2,"i1071":2,"i1072":2,"i1073":2,"i1074":2,"i1075":2,"i1076":1,"i1077":2,"i1078":1,"i1079":2,"i1080":2,"i1081":2,"i1082":2,"i1083":1,"i1084":2,"i1085":2,"i1086":32,"i1087":2,"i1088":2,"i1089":2,"i1090":1,"i1091":1,"i1092":2,"i1093":32,"i1094":1,"i1095":32,"i1096":2,"i1097":2,"i1098":1,"i1099":2,"i1100":2,"i1101":2,"i1102":2,"i1103":2,"i1104":2,"i1105":1,"i1106":2,"i1107":1,"i1108":2,"i1109":1,"i1110":2,"i1111":2,"i1112":2,"i1113":2,"i1114":2,"i1115":1,"i1116":32,"i1117":1,"i1118":2,"i1119":2,"i1120":1,"i1121":32,"i1122":2,"i1123":2,"i1124":32,"i1125":1,"i1126":2,"i1127":2,"i1128":1,"i1129":32,"i1130":2,"i1131":2,"i1132":2,"i1133":2,"i1134":2,"i1135":8,"i1136":32,"i1137":8,"i1138":8,"i1139":32,"i1140":2,"i1141":2,"i1142":2,"i1143":2,"i1144":2,"i1145":2,"i1146":2,"i1147":2,"i1148":1,"i1149":1,"i1150":2,"i1151":1,"i1152":2,"i1153":2,"i1154":2,"i1155":2,"i1156":2,"i1157":2,"i1158":2,"i1159":2,"i1160":2,"i1161":8,"i1162":2,"i1163":2,"i1164":2,"i1165":2,"i1166":2,"i1167":2,"i1168":2,"i1169":32,"i1170":32,"i1171":2,"i1172":2,"i1173":2,"i1174":2,"i1175":2,"i1176":2,"i1177":2,"i1178":2,"i1179":1,"i1180":2}; var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -195,19 +195,19 @@

All Classes

Action.AddMediaItems - + Action.ClearMediaItems - + Action.ClearVideoSurface - + @@ -219,7 +219,7 @@

All Classes

Action.MoveMediaItem - + @@ -238,13 +238,13 @@

All Classes

Action.RemoveMediaItem - + Action.RemoveMediaItems - + @@ -262,19 +262,19 @@

All Classes

Action.SetAudioAttributes - + Action.SetMediaItems - + Action.SetMediaItemsResetPosition - + @@ -299,7 +299,7 @@

All Classes

Action.SetRepeatMode - + @@ -317,7 +317,7 @@

All Classes

Action.SetVideoSurface - + @@ -353,27 +353,27 @@

All Classes

Action.WaitForPlaybackState -
Waits for a specified playback state, returning either immediately or after a call to Player.Listener.onPlaybackStateChanged(int).
+
Waits for a specified playback state, returning either immediately or after a call to Player.Listener.onPlaybackStateChanged(int).
Action.WaitForPlayWhenReady
Waits for a specified playWhenReady value, returning either immediately or after a call to - Player.Listener.onPlayWhenReadyChanged(boolean, int).
+ Player.Listener.onPlayWhenReadyChanged(boolean, int). Action.WaitForPositionDiscontinuity -
Waits for Player.Listener.onPositionDiscontinuity(Player.PositionInfo, + Action.WaitForTimelineChanged - + @@ -655,61 +655,61 @@

All Classes

+AssetContentProvider + +
A ContentProvider for reading asset data.
+ + + AssetDataSource
A DataSource for reading from a local asset.
- + AssetDataSource.AssetDataSourceException
Thrown when an IOException is encountered reading a local asset.
- + AtomicFile
A helper class for performing atomic operations on a file by creating a backup file until a write has successfully completed.
- + AudioAttributes
Attributes for audio playback, which configure the underlying platform AudioTrack.
- + AudioAttributes.Builder
Builder for AudioAttributes.
- + AudioCapabilities
Represents the set of audio formats that a device is capable of playing.
- + AudioCapabilitiesReceiver
Receives broadcast events indicating changes to the device's audio capabilities, notifying a AudioCapabilitiesReceiver.Listener when audio capability changes occur.
- + AudioCapabilitiesReceiver.Listener
Listener notified when audio capabilities change.
- -AudioListener -Deprecated. - - - AudioProcessor @@ -960,7 +960,7 @@

All Classes

-BundleableUtils +BundleableUtil
Utilities for Bundleable.
@@ -1040,1041 +1040,1089 @@

All Classes

+C.AudioManagerOffloadMode + +
Playback offload mode.
+ + + C.AudioUsage
Usage types for audio attributes.
- + C.BufferFlags
Flags which can apply to a buffer containing a media sample.
- + C.ColorRange
Video color range.
- + C.ColorSpace
Video colorspaces.
- + C.ColorTransfer
Video color transfer characteristics.
- + C.ContentType
Represents a streaming or other media type.
- + C.CryptoMode
Crypto modes for a codec.
- + +C.CryptoType + +
Types of crypto implementation.
+ + + C.DataType
Represents a type of data.
- + C.Encoding
Represents an audio encoding, or an invalid or unset value.
- + C.FormatSupport
Level of renderer support for a format.
- + C.NetworkType
Network connection type.
- + C.PcmEncoding
Represents a PCM audio encoding, or an invalid or unset value.
- + C.Projection
Video projection types.
- + C.RoleFlags
Track role flags.
- + C.SelectionFlags
Track selection flags.
- + +C.SelectionReason + +
Represents a reason for selection.
+ + + C.StereoMode
The stereo mode for 360/3D/VR videos.
- + C.StreamType
Stream types for an AudioTrack.
- + +C.TrackType + +
Represents a type of media track.
+ + + +C.VideoChangeFrameRateStrategy + + + + + C.VideoOutputMode
Video decoder output modes.
- + C.VideoScalingMode
Video scaling modes for MediaCodec-based renderers.
- + C.WakeMode
Mode specifying whether the player should hold a WakeLock and a WifiLock.
- + Cache
A cache that supports partial caching of resources.
- + Cache.CacheException
Thrown when an error is encountered when writing data.
- + Cache.Listener
Listener of Cache events.
- + CacheAsserts
Assertion methods for Cache.
- + CacheAsserts.RequestSet
Defines a set of data requests.
- + CacheDataSink
Writes data into a cache.
- + CacheDataSink.CacheDataSinkException
Thrown when an IOException is encountered when writing data to the sink.
- + CacheDataSink.Factory - -CacheDataSinkFactory -Deprecated. - - - - + CacheDataSource
A DataSource that reads and writes a Cache.
- + CacheDataSource.CacheIgnoredReason
Reasons the cache may be ignored.
- + CacheDataSource.EventListener
Listener of CacheDataSource events.
- + CacheDataSource.Factory - + CacheDataSource.Flags
Flags controlling the CacheDataSource's behavior.
- -CacheDataSourceFactory -Deprecated. - - - - -CachedRegionTracker + +CachedRegionTracker
Utility class for efficiently tracking regions of data that are stored in a Cache for a given cache key.
- + CacheEvictor
Evicts data from a Cache.
- + CacheKeyFactory
Factory for cache keys.
- + CacheSpan
Defines a span of data that may or may not be cached (as indicated by CacheSpan.isCached).
- + CacheWriter
Caching related utility methods.
- + CacheWriter.ProgressListener
Receives progress updates during cache operations.
- + CameraMotionListener
Listens camera motion.
- + CameraMotionRenderer
A Renderer that parses the camera motion track.
- + CaptionStyleCompat
A compatibility wrapper for CaptioningManager.CaptionStyle.
- + CaptionStyleCompat.EdgeType
The type of edge, which may be none.
- + CapturingAudioSink
A ForwardingAudioSink that captures configuration, discontinuity and buffer events.
- + CapturingRenderersFactory
A RenderersFactory that captures interactions with the audio and video MediaCodecAdapter instances.
- + CastPlayer
Player implementation that communicates with a Cast receiver app.
- + Cea608Decoder
A SubtitleDecoder for CEA-608 (also known as "line 21 captions" and "EIA-608").
- + Cea708Decoder
A SubtitleDecoder for CEA-708 (also known as "EIA-708").
- + CeaUtil
Utility methods for handling CEA-608/708 messages.
- + ChapterFrame
Chapter information ID3 frame.
- + ChapterTocFrame
Chapter table of contents ID3 frame.
- + Chunk
An abstract base class for Loader.Loadable implementations that load chunks of data required for the playback of streams.
- + ChunkExtractor
Extracts samples and track Formats from chunks.
- + ChunkExtractor.Factory
Creates ChunkExtractor instances.
- + ChunkExtractor.TrackOutputProvider
Provides TrackOutput instances to be written to during extraction.
- + ChunkHolder
Holds a chunk or an indication that the end of the stream has been reached.
- + ChunkIndex
Defines chunks of samples within a media stream.
- + ChunkSampleStream<T extends ChunkSource>
A SampleStream that loads media in Chunks, obtained from a ChunkSource.
- + ChunkSampleStream.ReleaseCallback<T extends ChunkSource>
A callback to be notified when a sample stream has finished being released.
- + ChunkSource
A provider of Chunks for a ChunkSampleStream to load.
- + ClippingMediaPeriod
Wraps a MediaPeriod and clips its SampleStreams to provide a subsequence of their samples.
- + ClippingMediaSource
MediaSource that wraps a source and clips its timeline based on specified start/end positions.
- + ClippingMediaSource.IllegalClippingException
Thrown when a ClippingMediaSource cannot clip its wrapped source.
- + ClippingMediaSource.IllegalClippingException.Reason
The reason clipping failed.
- + Clock
An interface through which system clocks can be read and HandlerWrappers created.
- + CodecSpecificDataUtil
Provides utilities for handling various types of codec-specific data.
- + ColorInfo
Stores color info.
- + ColorParser
Parser for color expressions found in styling formats, e.g.
- + CommentFrame
Comment ID3 frame.
- + CompositeMediaSource<T>
Composite MediaSource consisting of multiple child sources.
- + CompositeSequenceableLoader
A SequenceableLoader that encapsulates multiple other SequenceableLoaders.
- + CompositeSequenceableLoaderFactory
A factory to create composite SequenceableLoaders.
- + ConcatenatingMediaSource
Concatenates multiple MediaSources.
- + ConditionVariable
An interruptible condition variable.
- + ConstantBitrateSeekMap
A SeekMap implementation that assumes the stream has a constant bitrate and consists of multiple independent frames of the same size.
- + Consumer<T>
Represents an operation that accepts a single input argument and returns no result.
- + ContainerMediaChunk
A BaseMediaChunk that uses an Extractor to decode sample data.
- + ContentDataSource
A DataSource for reading from a content URI.
- + ContentDataSource.ContentDataSourceException
Thrown when an IOException is encountered reading from a content URI.
- + ContentMetadata
Interface for an immutable snapshot of keyed metadata.
- + ContentMetadataMutations
Defines multiple mutations on metadata value which are applied atomically.
- -ControlDispatcher -Deprecated. -
Use a ForwardingPlayer or configure the player to customize operations.
- - - + CopyOnWriteMultiset<E>
An unordered collection of elements that allows duplicates, but also allows access to a set of unique elements.
- + CronetDataSource
DataSource without intermediate buffer based on Cronet API set using UrlRequest.
- + CronetDataSource.Factory - + CronetDataSource.OpenException
Thrown when an error is encountered when trying to open a CronetDataSource.
- + CronetDataSourceFactory Deprecated. - + CronetEngineWrapper Deprecated.
Use CronetEngine directly.
- + CronetUtil
Cronet utility methods.
- + +CryptoConfig + +
Configuration for a decoder to allow it to decode encrypted media data.
+ + + +CryptoException + +
Thrown when a non-platform component fails to decrypt data.
+ + + CryptoInfo -
Compatibility wrapper for MediaCodec.CryptoInfo.
+
Metadata describing the structure of an encrypted input sample.
- + Cue
Contains information about a specific cue, including textual content and formatting data.
- + Cue.AnchorType
The type of anchor, which may be unset.
- + Cue.Builder
A builder for Cue objects.
- + Cue.LineType
The type of line, which may be unset.
- + Cue.TextSizeType
The type of default text size for this cue, which may be unset.
- + Cue.VerticalType
The type of vertical layout for this cue, which may be unset (i.e.
- -DashChunkSource + +CueDecoder -
A ChunkSource for DASH streams.
+
Decodes data encoded by CueEncoder.
- + +CueEncoder + +
Encodes data that can be decoded by CueDecoder.
+ + + +DashChunkSource + +
A ChunkSource for DASH streams.
+ + + DashChunkSource.Factory
Factory for DashChunkSources.
- + DashDownloader
A downloader for DASH streams.
- + DashManifest
Represents a DASH media presentation description (mpd), as defined by ISO/IEC 23009-1:2014 Section 5.3.1.2.
- + DashManifestParser
A parser of media presentation description files.
- + DashManifestParser.RepresentationInfo
A parsed Representation element.
- + DashManifestStaleException
Thrown when a live playback's manifest is stale and a new manifest could not be loaded.
- + DashMediaSource
A DASH MediaSource.
- + DashMediaSource.Factory
Factory for DashMediaSources.
- + DashSegmentIndex
Indexes the segments within a media stream.
- + DashUtil
Utility methods for DASH streams.
- + DashWrappingSegmentIndex
An implementation of DashSegmentIndex that wraps a ChunkIndex parsed from a media stream.
- + DatabaseIOException
An IOException whose cause is an SQLException.
- + DatabaseProvider -
Provides SQLiteDatabase instances to ExoPlayer components, which may read and write +
Provides SQLiteDatabase instances to media library components, which may read and write tables prefixed with DatabaseProvider.TABLE_PREFIX.
- + DataChunk
A base class for Chunk implementations where the data should be loaded into a byte[] before being consumed.
- + DataReader
Reads bytes from a data stream.
- + DataSchemeDataSource
A DataSource for reading data URLs, as defined by RFC 2397.
- + DataSink
A component to which streams of data can be written.
- + DataSink.Factory
A factory for DataSink instances.
- + DataSource
Reads data from URI-identified resources.
- + DataSource.Factory
A factory for DataSource instances.
- + DataSourceContractTest
A collection of contract tests for DataSource implementations.
- + DataSourceContractTest.FakeTransferListener
A TransferListener that only keeps track of the transferred bytes.
- + DataSourceContractTest.TestResource
Information about a resource that can be used to test the DataSource instance.
- + DataSourceContractTest.TestResource.Builder - + DataSourceException
Used to specify reason of a DataSource error.
- + DataSourceInputStream
Allows data corresponding to a given DataSpec to be read from a DataSource and consumed through an InputStream.
- + +DataSourceUtil + +
Utility methods for DataSource.
+ + + DataSpec
Defines a region of data in a resource.
- + DataSpec.Builder
Builds DataSpec instances.
- + DataSpec.Flags
The flags that apply to any request for data.
- + DataSpec.HttpMethod
HTTP methods supported by ExoPlayer HttpDataSources.
- + DebugTextViewHelper
A helper class for periodically updating a TextView with debug information obtained from - a SimpleExoPlayer.
+ an ExoPlayer.
- + Decoder<I,​O,​E extends DecoderException>
A media decoder.
- -DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleOutputBuffer,​? extends DecoderException>> + +DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleDecoderOutputBuffer,​? extends DecoderException>>
Decodes and renders audio using a Decoder.
- + DecoderCounters
Maintains decoder event counts, for debugging purposes only.
- + DecoderCountersUtil
Assertions for DecoderCounters.
- + DecoderException
Thrown when a Decoder error occurs.
- + DecoderInputBuffer
Holds input for a decoder.
- + DecoderInputBuffer.BufferReplacementMode
The buffer replacement mode.
- + DecoderInputBuffer.InsufficientCapacityException
Thrown when an attempt is made to write into a DecoderInputBuffer whose DecoderInputBuffer.bufferReplacementMode is DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED and who DecoderInputBuffer.data capacity is smaller than required.
- + +DecoderOutputBuffer + +
Output buffer decoded by a Decoder.
+ + + +DecoderOutputBuffer.Owner<S extends DecoderOutputBuffer> + +
Buffer owner.
+ + + DecoderReuseEvaluation
The result of an evaluation to determine whether a decoder can be reused for a new input format.
- + DecoderReuseEvaluation.DecoderDiscardReasons
Possible reasons why reuse is not possible.
- + DecoderReuseEvaluation.DecoderReuseResult
Possible outcomes of the evaluation.
- + DecoderVideoRenderer
Decodes and renders video using a Decoder.
- -DecryptionException - -
Thrown when a non-platform component fails to decrypt data.
- - - + DefaultAllocator
Default implementation of Allocator.
- + DefaultAudioSink
Plays audio data.
- + DefaultAudioSink.AudioProcessorChain
Provides a chain of audio processors, which are used for any user-defined processing and applying playback parameters (if supported).
- + DefaultAudioSink.DefaultAudioProcessorChain
The default audio processor chain, which applies a (possibly empty) chain of user-defined audio processors followed by SilenceSkippingAudioProcessor and SonicAudioProcessor.
- + DefaultAudioSink.InvalidAudioTrackTimestampException
Thrown when the audio track has provided a spurious timestamp, if DefaultAudioSink.failOnSpuriousAudioTimestamp is set.
- + DefaultAudioSink.OffloadMode
Audio offload mode configuration.
- + DefaultBandwidthMeter
Estimates bandwidth by listening to data transfers.
- + DefaultBandwidthMeter.Builder
Builder for a bandwidth meter.
- + DefaultCastOptionsProvider
A convenience OptionsProvider to target the default cast receiver app.
- + DefaultCompositeSequenceableLoaderFactory
Default implementation of CompositeSequenceableLoaderFactory.
- + DefaultContentMetadata
Default implementation of ContentMetadata.
- -DefaultControlDispatcher -Deprecated. -
Use a ForwardingPlayer or configure the player to customize operations.
- - - + DefaultDashChunkSource
A default DashChunkSource implementation.
- + DefaultDashChunkSource.Factory   - + DefaultDashChunkSource.RepresentationHolder
Holds information about a snapshot of a single Representation.
- + DefaultDashChunkSource.RepresentationSegmentIterator - + DefaultDatabaseProvider
A DatabaseProvider that provides instances obtained from a SQLiteOpenHelper.
- + DefaultDataSource
A DataSource that supports multiple URI schemes.
- -DefaultDataSourceFactory + +DefaultDataSource.Factory -
A DataSource.Factory that produces DefaultDataSource instances that delegate to DefaultHttpDataSources for non-file/asset/content URIs.
+ - + +DefaultDataSourceFactory +Deprecated. + + + + DefaultDownloaderFactory
Default DownloaderFactory, supporting creation of progressive, DASH, HLS and SmoothStreaming downloaders.
- + DefaultDownloadIndex
A DownloadIndex that uses SQLite to persist Downloads.
- + DefaultDrmSessionManager
A DrmSessionManager that supports playbacks using ExoMediaDrm.
- + DefaultDrmSessionManager.Builder
Builder for DefaultDrmSessionManager instances.
- + DefaultDrmSessionManager.MissingSchemeDataException - + DefaultDrmSessionManager.Mode
Determines the action to be done after a session acquired.
- + DefaultDrmSessionManagerProvider
Default implementation of DrmSessionManagerProvider.
- + DefaultExtractorInput
An ExtractorInput that wraps a DataReader.
- + DefaultExtractorsFactory
An ExtractorsFactory that provides an array of extractors for the following formats: @@ -2099,1745 +2147,1760 @@

All Classes

com.google.android.exoplayer2.ext.flac.FlacExtractor
is used.
- + DefaultHlsDataSourceFactory
Default implementation of HlsDataSourceFactory.
- + DefaultHlsExtractorFactory
Default HlsExtractorFactory implementation.
- + DefaultHlsPlaylistParserFactory
Default implementation for HlsPlaylistParserFactory.
- + DefaultHlsPlaylistTracker
Default implementation for HlsPlaylistTracker.
- + DefaultHttpDataSource
An HttpDataSource that uses Android's HttpURLConnection.
- + DefaultHttpDataSource.Factory - -DefaultHttpDataSourceFactory -Deprecated. - - - - + DefaultLivePlaybackSpeedControl
A LivePlaybackSpeedControl that adjusts the playback speed using a proportional controller.
- + DefaultLivePlaybackSpeedControl.Builder - + DefaultLoadControl
The default LoadControl implementation.
- + DefaultLoadControl.Builder
Builder for DefaultLoadControl.
- + DefaultLoadErrorHandlingPolicy
Default implementation of LoadErrorHandlingPolicy.
- + +DefaultMediaCodecAdapterFactory + + + + + DefaultMediaDescriptionAdapter - + DefaultMediaItemConverter
Default MediaItemConverter implementation.
- + DefaultMediaItemConverter
Default implementation of MediaItemConverter.
- + DefaultMediaSourceFactory
The default MediaSourceFactory implementation.
- + DefaultMediaSourceFactory.AdsLoaderProvider -
Provides AdsLoader instances for media items that have ad tag URIs.
+
Provides AdsLoader instances for media items that have ad tag URIs.
- + DefaultPlaybackSessionManager
Default PlaybackSessionManager which instantiates a new session for each window in the timeline and also for each ad within the windows.
- + DefaultRenderersFactory
Default RenderersFactory implementation.
- + DefaultRenderersFactory.ExtensionRendererMode
Modes for using extension renderers.
- + DefaultRenderersFactoryAsserts
Assertions for DefaultRenderersFactory.
- + DefaultRtpPayloadReaderFactory
Default RtpPayloadReader.Factory implementation.
- + DefaultSsChunkSource
A default SsChunkSource implementation.
- + DefaultSsChunkSource.Factory   - + DefaultTimeBar
A time bar that shows a current position, buffered position, duration and ad markers.
- + DefaultTrackNameProvider - + DefaultTrackSelector
A default TrackSelector suitable for most use cases.
- + DefaultTrackSelector.AudioTrackScore
Represents how well an audio track matches the selection DefaultTrackSelector.Parameters.
- + DefaultTrackSelector.OtherTrackScore
Represents how well any other track (non video, audio or text) matches the selection DefaultTrackSelector.Parameters.
- + DefaultTrackSelector.Parameters
Extends DefaultTrackSelector.Parameters by adding fields that are specific to DefaultTrackSelector.
- + DefaultTrackSelector.ParametersBuilder - + DefaultTrackSelector.SelectionOverride
A track selection override.
- + DefaultTrackSelector.TextTrackScore
Represents how well a text track matches the selection DefaultTrackSelector.Parameters.
- + DefaultTrackSelector.VideoTrackScore
Represents how well a video track matches the selection DefaultTrackSelector.Parameters.
- + DefaultTsPayloadReaderFactory
Default TsPayloadReader.Factory implementation.
- + DefaultTsPayloadReaderFactory.Flags
Flags controlling elementary stream readers' behavior.
- + Descriptor
A descriptor, as defined by ISO 23009-1, 2nd edition, 5.8.2.
- -DeviceInfo + +DeviceInfo
Information about the playback device.
- -DeviceInfo.PlaybackType + +DeviceInfo.PlaybackType
Types of playback.
- -DeviceListener -Deprecated. - - - - + DolbyVisionConfig
Dolby Vision configuration data.
- + Download
Represents state of a download.
- + Download.FailureReason
Failure reasons.
- + Download.State
Download states.
- + DownloadBuilder
Builder for Download.
- + DownloadCursor
Provides random read-write access to the result set returned by a database query.
- + Downloader
Downloads and removes a piece of content.
- + Downloader.ProgressListener
Receives progress updates during download operations.
- + DownloaderFactory
Creates Downloaders for given DownloadRequests.
- + DownloadException
Thrown on an error during downloading.
- + DownloadHelper
A helper for initializing and removing downloads.
- + DownloadHelper.Callback
A callback to be notified when the DownloadHelper is prepared.
- + DownloadHelper.LiveContentUnsupportedException
Thrown at an attempt to download live content.
- + DownloadIndex
An index of Downloads.
- + DownloadManager
Manages downloads.
- + DownloadManager.Listener
Listener for DownloadManager events.
- + DownloadNotificationHelper
Helper for creating download notifications.
- + DownloadProgress
Mutable Download progress.
- + DownloadRequest
Defines content to be downloaded.
- + DownloadRequest.Builder
A builder for download requests.
- + DownloadRequest.UnsupportedRequestException
Thrown when the encoded request data belongs to an unsupported request type.
- + DownloadService
A Service for downloading media.
- + DrmInitData
Initialization data for one or more DRM schemes.
- + DrmInitData.SchemeData
Scheme initialization data.
- + DrmSession
A DRM session.
- + DrmSession.DrmSessionException
Wraps the throwable which is the cause of the error state.
- + DrmSession.State
The state of the DRM session.
- + DrmSessionEventListener
Listener of DrmSessionManager events.
- + DrmSessionEventListener.EventDispatcher
Dispatches events to DrmSessionEventListeners.
- + DrmSessionManager
Manages a DRM session.
- + DrmSessionManager.DrmSessionReference
Represents a single reference count of a DrmSession, while deliberately not giving access to the underlying session.
- + DrmSessionManagerProvider
A provider to obtain a DrmSessionManager suitable for playing the content described by a MediaItem.
- + DrmUtil
DRM-related utility methods.
- + DrmUtil.ErrorSource
Identifies the operation which caused a DRM-related error.
- + DtsReader
Parses a continuous DTS byte stream and extracts individual samples.
- + DtsUtil
Utility methods for parsing DTS frames.
- + DummyDataSource
A DataSource which provides no data.
- + DummyExoMediaDrm
An ExoMediaDrm that does not support any protection schemes.
- + DummyExtractorOutput
A fake ExtractorOutput implementation.
- + DummyMainThread
Helper class to simulate main/UI thread in tests.
- + DummyMainThread.TestRunnable
Runnable variant which can throw a checked exception.
- + DummySurface
A dummy Surface.
- + DummyTrackOutput
A fake TrackOutput implementation.
- + DumpableFormat
Wraps a Format to allow dumping it.
- + Dumper
Helper utility to dump field values.
- + Dumper.Dumpable
Provides custom dump method.
- + DumpFileAsserts
Helper class to enable assertions based on golden-data dump files.
- + DvbDecoder
A SimpleSubtitleDecoder for DVB subtitles.
- + DvbSubtitleReader
Parses DVB subtitle data and extracts individual frames.
- + EbmlProcessor
Defines EBML element IDs/types and processes events.
- + EbmlProcessor.ElementType
EBML element types.
- + EGLSurfaceTexture
Generates a SurfaceTexture using EGL/GLES functions.
- + EGLSurfaceTexture.GlException
A runtime exception to be thrown if some EGL operations failed.
- + EGLSurfaceTexture.SecureMode
Secure mode to be used by the EGL surface and context.
- + EGLSurfaceTexture.TextureImageListener
Listener to be called when the texture image on SurfaceTexture has been updated.
- + ElementaryStreamReader
Extracts individual samples from an elementary media stream, preserving original order.
- + EmptySampleStream
An empty SampleStream.
- + ErrorMessageProvider<T extends Throwable>
Converts throwables into error codes and user readable error messages.
- + ErrorStateDrmSession
A DrmSession that's in a terminal error state.
- + EventLogger
Logs events from Player and other core components using Log.
- + EventMessage
An Event Message (emsg) as defined in ISO 23009-1.
- + EventMessageDecoder
Decodes data encoded by EventMessageEncoder.
- + EventMessageEncoder
Encodes data that can be decoded by EventMessageDecoder.
- + EventStream
A DASH in-MPD EventStream element, as defined by ISO/IEC 23009-1, 2nd edition, section 5.10.
- + ExoDatabaseProvider - -
An SQLiteOpenHelper that provides instances of a standalone ExoPlayer database.
+Deprecated. + - + ExoHostedTest
A HostActivity.HostedTest for ExoPlayer playback tests.
- -ExoMediaCrypto - -
Enables decoding of encrypted data using keys in a DRM session.
- - - + ExoMediaDrm
Used to obtain keys for decrypting protected media streams.
- + ExoMediaDrm.AppManagedProvider
Provides an ExoMediaDrm instance owned by the app.
- + ExoMediaDrm.KeyRequest
Contains data used to request keys from a license server.
- + ExoMediaDrm.KeyRequest.RequestType
Key request types.
- + ExoMediaDrm.KeyStatus
Defines the status of a key.
- + ExoMediaDrm.OnEventListener
Called when a DRM event occurs.
- + ExoMediaDrm.OnExpirationUpdateListener
Called when a session expiration update occurs.
- + ExoMediaDrm.OnKeyStatusChangeListener
Called when the keys in a DRM session change state.
- + ExoMediaDrm.Provider
Provider for ExoMediaDrm instances.
- + ExoMediaDrm.ProvisionRequest
Contains data to request a certificate from a provisioning server.
- + ExoPlaybackException
Thrown when a non locally recoverable playback failure occurs.
- + ExoPlaybackException.Type
The type of source that produced the error.
- + ExoPlayer
An extensible media player that plays MediaSources.
- + ExoPlayer.AudioComponent - -
The audio component of an ExoPlayer.
+Deprecated. +
Use ExoPlayer, as the ExoPlayer.AudioComponent methods are defined by that + interface.
- + ExoPlayer.AudioOffloadListener
A listener for audio offload events.
- + ExoPlayer.Builder -Deprecated. - - - - -ExoPlayer.DeviceComponent -
The device component of an ExoPlayer.
+
A builder for ExoPlayer instances.
- -ExoPlayer.MetadataComponent - -
The metadata component of an ExoPlayer.
+ +ExoPlayer.DeviceComponent +Deprecated. +
Use Player, as the ExoPlayer.DeviceComponent methods are defined by that + interface.
- + ExoPlayer.TextComponent - -
The text component of an ExoPlayer.
+Deprecated. +
Use Player, as the ExoPlayer.TextComponent methods are defined by that + interface.
- + ExoPlayer.VideoComponent +Deprecated. +
Use ExoPlayer, as the ExoPlayer.VideoComponent methods are defined by that + interface.
+ + + +ExoplayerCuesDecoder -
The video component of an ExoPlayer.
+
A SubtitleDecoder that decodes subtitle samples of type MimeTypes.TEXT_EXOPLAYER_CUES
- + ExoPlayerLibraryInfo -
Information about the ExoPlayer library.
+
Information about the media libraries.
- + ExoPlayerTestRunner
Helper class to run an ExoPlayer test.
- + ExoPlayerTestRunner.Builder -
Builder to set-up a ExoPlayerTestRunner.
+
Builder to set-up an ExoPlayerTestRunner.
- + ExoTimeoutException
A timeout of an operation on the ExoPlayer playback thread.
- + ExoTimeoutException.TimeoutOperation
The operation which produced the timeout error.
- + ExoTrackSelection - + ExoTrackSelection.Definition
Contains of a subset of selected tracks belonging to a TrackGroup.
- + ExoTrackSelection.Factory
Factory for ExoTrackSelection instances.
- + Extractor
Extracts media data from a container format.
- + Extractor.ReadResult
Result values that can be returned by Extractor.read(ExtractorInput, PositionHolder).
- + ExtractorAsserts
Assertion methods for Extractor.
- + ExtractorAsserts.AssertionConfig
A config for the assertions made (e.g.
- + ExtractorAsserts.AssertionConfig.Builder
Builder for ExtractorAsserts.AssertionConfig instances.
- + ExtractorAsserts.ExtractorFactory
A factory for Extractor instances.
- + ExtractorAsserts.SimulationConfig
A config of different environments to simulate and extractor behaviours to test.
- + ExtractorInput
Provides data to be consumed by an Extractor.
- + ExtractorOutput
Receives stream level data extracted by an Extractor.
- + ExtractorsFactory
Factory for arrays of Extractor instances.
- + ExtractorUtil
Extractor related utility methods.
- + FailOnCloseDataSink
A DataSink that can simulate caching the bytes being written to it, and then failing to persist them when FailOnCloseDataSink.close() is called.
- + FailOnCloseDataSink.Factory
Factory to create a FailOnCloseDataSink.
- + FakeAdaptiveDataSet
Fake data set emulating the data of an adaptive media source.
- + FakeAdaptiveDataSet.Factory
Factory for FakeAdaptiveDataSets.
- + FakeAdaptiveDataSet.Iterator
MediaChunkIterator for the chunks defined by a fake adaptive data set.
- + FakeAdaptiveMediaPeriod
Fake MediaPeriod that provides tracks from the given TrackGroupArray.
- + FakeAdaptiveMediaSource
Fake MediaSource that provides a given timeline.
- + FakeAudioRenderer - + FakeChunkSource
Fake ChunkSource with adaptive media chunks of a given duration.
- + FakeChunkSource.Factory
Factory for a FakeChunkSource.
- + FakeClock
Fake Clock implementation that allows to advance the time manually to trigger pending timed messages.
- + +FakeCryptoConfig + + + + + FakeDataSet
Collection of FakeDataSet.FakeData to be served by a FakeDataSource.
- + FakeDataSet.FakeData
Container of fake data to be served by a FakeDataSource.
- + FakeDataSet.FakeData.Segment
A segment of FakeDataSet.FakeData.
- + FakeDataSource
A fake DataSource capable of simulating various scenarios.
- + FakeDataSource.Factory
Factory to create a FakeDataSource.
- + FakeExoMediaDrm
A fake implementation of ExoMediaDrm for use in tests.
- + FakeExoMediaDrm.Builder
Builder for FakeExoMediaDrm instances.
- + FakeExoMediaDrm.LicenseServer
An license server implementation to interact with FakeExoMediaDrm.
- + FakeExtractorInput
A fake ExtractorInput capable of simulating various scenarios.
- + FakeExtractorInput.Builder
Builder of FakeExtractorInput instances.
- + FakeExtractorInput.SimulatedIOException
Thrown when simulating an IOException.
- + FakeExtractorOutput - + FakeMediaChunk - + FakeMediaChunkIterator - + FakeMediaClockRenderer
Fake abstract Renderer which is also a MediaClock.
- + FakeMediaPeriod
Fake MediaPeriod that provides tracks from the given TrackGroupArray.
- + FakeMediaPeriod.TrackDataFactory
A factory to create the test data for a particular track.
- + FakeMediaSource
Fake MediaSource that provides a given timeline.
- + FakeMediaSource.InitialTimeline
A forwarding timeline to provide an initial timeline for fake multi window sources.
- + +FakeMediaSourceFactory + +
Fake MediaSourceFactory that creates a FakeMediaSource.
+ + + +FakeMetadataEntry + + + + + FakeRenderer
Fake Renderer that supports any format with the matching track type.
- + FakeSampleStream
Fake SampleStream that outputs a given Format and any amount of items.
- + FakeSampleStream.FakeSampleStreamItem - + FakeShuffleOrder
Fake ShuffleOrder which returns a reverse order.
- + FakeTimeline
Fake Timeline which can be setup to return custom FakeTimeline.TimelineWindowDefinitions.
- + FakeTimeline.TimelineWindowDefinition
Definition used to define a FakeTimeline.
- + FakeTrackOutput
A fake TrackOutput.
- + FakeTrackOutput.Factory
Factory for FakeTrackOutput instances.
- + FakeTrackSelection
A fake ExoTrackSelection that only returns 1 fixed track, and allows querying the number of calls to its methods.
- + FakeTrackSelector - + FakeVideoRenderer - + FfmpegAudioRenderer
Decodes and renders audio using FFmpeg.
- + FfmpegDecoderException
Thrown when an FFmpeg decoder error occurs.
- + FfmpegLibrary
Configures and queries the underlying native library.
- + FileDataSource
A DataSource for reading local files.
- + FileDataSource.Factory - + FileDataSource.FileDataSourceException
Thrown when a FileDataSource encounters an error reading a file.
- -FileDataSourceFactory -Deprecated. - - - - + FileTypes
Defines common file type constants and helper methods.
- + FileTypes.Type
File types.
- + FilterableManifest<T>
A manifest that can generate copies of itself including only the streams specified by the given keys.
- + FilteringHlsPlaylistParserFactory
A HlsPlaylistParserFactory that includes only the streams identified by the given stream keys.
- + FilteringManifestParser<T extends FilterableManifest<T>>
A manifest parser that includes only the streams identified by the given stream keys.
- + FixedTrackSelection
A TrackSelection consisting of a single track.
- -FlacConstants + +FlacConstants
Defines constants used by the FLAC extractor.
- + FlacDecoder
Flac decoder.
- + FlacDecoderException
Thrown when an Flac decoder error occurs.
- + FlacExtractor
Facilitates the extraction of data from the FLAC container format.
- + FlacExtractor
Extracts data from FLAC container format.
- + FlacExtractor.Flags
Flags controlling the behavior of the extractor.
- + FlacExtractor.Flags
Flags controlling the behavior of the extractor.
- + FlacFrameReader
Reads and peeks FLAC frame elements according to the FLAC format specification.
- + FlacFrameReader.SampleNumberHolder
Holds a sample number.
- + FlacLibrary
Configures and queries the underlying native library.
- + FlacMetadataReader
Reads and peeks FLAC stream metadata elements according to the FLAC format specification.
- + FlacMetadataReader.FlacStreamMetadataHolder - + FlacSeekTableSeekMap
A SeekMap implementation for FLAC streams that contain a seek table.
- + FlacStreamMetadata
Holder for FLAC metadata.
- + FlacStreamMetadata.SeekTable
A FLAC seek table.
- + FlagSet
A set of integer flags.
- + FlagSet.Builder
A builder for FlagSet instances.
- + FlvExtractor
Extracts data from the FLV container format.
- + Format
Represents a media format.
- + Format.Builder
Builds Format instances.
- + FormatHolder
Holds a Format.
- + ForwardingAudioSink
An overridable AudioSink implementation forwarding all methods to another sink.
- + ForwardingExtractorInput
An overridable ExtractorInput implementation forwarding all methods to another input.
- + ForwardingPlayer
A Player that forwards operations to another Player.
- + ForwardingTimeline
An overridable Timeline implementation forwarding all methods to another timeline.
- + FragmentedMp4Extractor
Extracts data from the FMP4 container format.
- + FragmentedMp4Extractor.Flags
Flags controlling the behavior of the extractor.
- -FrameworkMediaCrypto + +FrameworkCryptoConfig -
An ExoMediaCrypto implementation that contains the necessary information to build or - update a framework MediaCrypto.
+ - + FrameworkMediaDrm
An ExoMediaDrm implementation that wraps the framework MediaDrm.
- + GaplessInfoHolder
Holder for gapless playback information.
- + Gav1Decoder
Gav1 decoder.
- + Gav1DecoderException
Thrown when a libgav1 decoder error occurs.
- + Gav1Library
Configures and queries the underlying native library.
- + GeobFrame
GEOB (General Encapsulated Object) ID3 frame.
- + GlUtil
GL utilities.
- + GlUtil.Attribute
GL attribute, which can be attached to a buffer with GlUtil.Attribute.setBuffer(float[], int).
- + +GlUtil.GlException + +
Thrown when an OpenGL error occurs and GlUtil.glAssertionsEnabled is true.
+ + + +GlUtil.Program + +
GL program.
+ + + GlUtil.Uniform
GL uniform, which can be attached to a sampler using GlUtil.Uniform.setSamplerTexId(int, int).
- -GvrAudioProcessor -Deprecated. -
If you still need this component, please contact us by filing an issue on our issue tracker.
+ +GlUtil.UnsupportedEglVersionException + +
Thrown when the required EGL version is not supported by the device.
- + H262Reader
Parses a continuous H262 byte stream and extracts individual frames.
- + H263Reader
Parses an ISO/IEC 14496-2 (MPEG-4 Part 2) or ITU-T Recommendation H.263 byte stream and extracts individual frames.
- + H264Reader
Parses a continuous H264 byte stream and extracts individual frames.
- + H265Reader
Parses a continuous H.265 byte stream and extracts individual frames.
- + HandlerWrapper
An interface to call through to a Handler.
- + HandlerWrapper.Message
A message obtained from the handler.
- + HeartRating
A rating expressed as "heart" or "no heart".
- + HevcConfig
HEVC configuration data.
- + HlsDataSourceFactory
Creates DataSources for HLS playlists, encryption and media chunks.
- + HlsDownloader
A downloader for HLS streams.
- + HlsExtractorFactory
Factory for HLS media chunk extractors.
- + HlsManifest
Holds a master playlist along with a snapshot of one of its media playlists.
- + HlsMasterPlaylist
Represents an HLS master playlist.
- + HlsMasterPlaylist.Rendition
A rendition (i.e.
- + HlsMasterPlaylist.Variant
A variant (i.e.
- + HlsMediaChunkExtractor
Extracts samples and track Formats from HlsMediaChunks.
- + HlsMediaPeriod
A MediaPeriod that loads an HLS stream.
- + HlsMediaPlaylist
Represents an HLS media playlist.
- + HlsMediaPlaylist.Part
A media part.
- + HlsMediaPlaylist.PlaylistType
Type of the playlist, as defined by #EXT-X-PLAYLIST-TYPE.
- + HlsMediaPlaylist.RenditionReport
A rendition report for an alternative rendition defined in another media playlist.
- + HlsMediaPlaylist.Segment
Media segment reference.
- + HlsMediaPlaylist.SegmentBase
The base for a HlsMediaPlaylist.Segment or a HlsMediaPlaylist.Part required for playback.
- + HlsMediaPlaylist.ServerControl
Server control attributes.
- + HlsMediaSource
An HLS MediaSource.
- + HlsMediaSource.Factory
Factory for HlsMediaSources.
- + HlsMediaSource.MetadataType
The types of metadata that can be extracted from HLS streams.
- + HlsPlaylist
Represents an HLS playlist.
- + HlsPlaylistParser
HLS playlists parsing logic.
- + HlsPlaylistParser.DeltaUpdateException
Exception thrown when merging a delta update fails.
- + HlsPlaylistParserFactory
Factory for HlsPlaylist parsers.
- + HlsPlaylistTracker
Tracks playlists associated to an HLS stream and provides snapshots.
- + HlsPlaylistTracker.Factory
Factory for HlsPlaylistTracker instances.
- + HlsPlaylistTracker.PlaylistEventListener
Called on playlist loading events.
- + HlsPlaylistTracker.PlaylistResetException
Thrown when the media sequence of a new snapshot indicates the server has reset.
- + HlsPlaylistTracker.PlaylistStuckException
Thrown when a playlist is considered to be stuck due to a server side error.
- + HlsPlaylistTracker.PrimaryPlaylistListener
Listener for primary playlist changes.
- + HlsTrackMetadataEntry
Holds metadata associated to an HLS media track.
- + HlsTrackMetadataEntry.VariantInfo
Holds attributes defined in an EXT-X-STREAM-INF tag.
- + HorizontalTextInVerticalContextSpan
A styling span for horizontal text in a vertical context.
- + HostActivity
A host activity for performing playback tests.
- + HostActivity.HostedTest
Interface for tests that run inside of a HostActivity.
- + HttpDataSource
An HTTP DataSource.
- + HttpDataSource.BaseFactory
Base implementation of HttpDataSource.Factory that sets default request properties.
- + HttpDataSource.CleartextNotPermittedException
Thrown when cleartext HTTP traffic is not permitted.
- + HttpDataSource.Factory
A factory for HttpDataSource instances.
- + HttpDataSource.HttpDataSourceException
Thrown when an error is encountered when trying to read from a HttpDataSource.
- + HttpDataSource.HttpDataSourceException.Type
The type of operation that produced the error.
- + HttpDataSource.InvalidContentTypeException
Thrown when the content type is invalid.
- + HttpDataSource.InvalidResponseCodeException
Thrown when an attempt to open a connection results in a response code not in the 2xx range.
- + HttpDataSource.RequestProperties
Stores HTTP request properties (aka HTTP headers) and provides methods to modify the headers in @@ -3845,330 +3908,324 @@

All Classes

state.
- + HttpDataSourceTestEnv
A JUnit Rule that creates test resources for HttpDataSource contract tests.
- + HttpMediaDrmCallback
A MediaDrmCallback that makes requests using HttpDataSource instances.
- + HttpUtil
Utility methods for HTTP.
- + IcyDecoder
Decodes ICY stream information.
- + IcyHeaders
ICY headers.
- + IcyInfo
ICY in-stream information.
- + Id3Decoder
Decodes ID3 tags.
- + Id3Decoder.FramePredicate
A predicate for determining whether individual frames should be decoded.
- + Id3Frame
Base class for ID3 frames.
- + Id3Peeker
Peeks data from the beginning of an ExtractorInput to determine if there is any ID3 tag.
- + Id3Reader
Parses ID3 data and extracts individual text information frames.
- + IllegalSeekPositionException
Thrown when an attempt is made to seek to a position that does not exist in the player's Timeline.
- + ImaAdsLoader
AdsLoader using the IMA SDK.
- + ImaAdsLoader.Builder
Builder for ImaAdsLoader.
- + IndexSeekMap
A SeekMap implementation based on a mapping between times and positions in the input stream.
- + InitializationChunk
A Chunk that uses an Extractor to decode initialization data for single track.
- + InputReaderAdapterV30
MediaParser.SeekableInputReader implementation wrapping a DataReader.
- -IntArrayQueue - -
Array-based unbounded queue for int primitives with amortized O(1) add and remove.
- - - + InternalFrame
Internal ID3 frame that is intended for use by the player.
- + JpegExtractor
Extracts JPEG image using the Exif format.
- + KeysExpiredException
Thrown when the drm keys loaded into an open session expire.
- + LanguageFeatureSpan
Marker interface for span classes that carry language features rather than style information.
- + LatmReader
Parses and extracts samples from an AAC/LATM elementary stream.
- + LeanbackPlayerAdapter
Leanback PlayerAdapter implementation for Player.
- + LeastRecentlyUsedCacheEvictor
Evicts least recently used cache files first.
- + LibflacAudioRenderer
Decodes and renders audio using the native Flac decoder.
- + Libgav1VideoRenderer
Decodes and renders video using libgav1 decoder.
- + LibopusAudioRenderer
Decodes and renders audio using the native Opus decoder.
- + LibraryLoader
Configurable loader for native libraries.
- + LibvpxVideoRenderer
Decodes and renders video using the native VP9 decoder.
- -ListenerSet<T> + +ListenerSet<T extends @NonNull Object>
A set of listeners.
- + ListenerSet.Event<T>
An event sent to a listener.
- + ListenerSet.IterationFinishedEvent<T>
An event sent to a listener when all other events sent during one Looper message queue iteration were handled by the listener.
- + LivePlaybackSpeedControl
Controls the playback speed while playing live content in order to maintain a steady target live offset.
- + LoadControl
Controls buffering of media.
- + Loader
Manages the background loading of Loader.Loadables.
- + Loader.Callback<T extends Loader.Loadable>
A callback to be notified of Loader events.
- + Loader.Loadable
An object that can be loaded using a Loader.
- + Loader.LoadErrorAction - + Loader.ReleaseCallback
A callback to be notified when a Loader has finished being released.
- + Loader.UnexpectedLoaderException
Thrown when an unexpected exception or error is encountered during loading.
- + LoaderErrorThrower
Conditionally throws errors affecting a Loader.
- + LoaderErrorThrower.Dummy
A LoaderErrorThrower that never throws.
- + LoadErrorHandlingPolicy
A policy that defines how load errors are handled.
- + LoadErrorHandlingPolicy.FallbackOptions
Holds information about the available fallback options.
- + LoadErrorHandlingPolicy.FallbackSelection
A selected fallback option.
- + LoadErrorHandlingPolicy.FallbackType
Fallback type.
- + LoadErrorHandlingPolicy.LoadErrorInfo
Holds information about a load task error.
- + LoadEventInfo
MediaSource load event information.
- + LocalMediaDrmCallback
A MediaDrmCallback that provides a fixed response to key requests.
- + Log
Wrapper around Log which allows to set the log level.
- + LongArray
An append-only, auto-growing long[].
- + LoopingMediaSource Deprecated. -
To loop a MediaSource indefinitely, use Player.setRepeatMode(int) +
To loop a MediaSource indefinitely, use Player.setRepeatMode(int) instead of this class.
- + MappingTrackSelector
Base class for TrackSelectors that first establish a mapping between TrackGroups @@ -4176,1667 +4233,1708 @@

All Classes

renderer.
- + MappingTrackSelector.MappedTrackInfo
Provides mapped track information for each renderer.
- + MaskingMediaPeriod
Media period that defers calling MediaSource.createPeriod(MediaPeriodId, Allocator, long) on a given source until MaskingMediaPeriod.createPeriod(MediaPeriodId) has been called.
- + MaskingMediaPeriod.PrepareListener
Listener for preparation events.
- + MaskingMediaSource
A MediaSource that masks the Timeline with a placeholder until the actual media structure is known.
- + MaskingMediaSource.PlaceholderTimeline
A timeline with one dynamic window with a period of indeterminate duration.
- + MatroskaExtractor
Extracts data from the Matroska and WebM container formats.
- + MatroskaExtractor.Flags
Flags controlling the behavior of the extractor.
- + MdtaMetadataEntry
Stores extensible metadata with handler type 'mdta'.
- + MediaChunk
An abstract base class for Chunks that contain media samples.
- + MediaChunkIterator
Iterator for media chunk sequences.
- + MediaClock
Tracks the progression of media time.
- + MediaCodecAdapter
Abstracts MediaCodec operations.
- + MediaCodecAdapter.Configuration
Configuration parameters for a MediaCodecAdapter.
- + MediaCodecAdapter.Factory
A factory for MediaCodecAdapter instances.
- + MediaCodecAdapter.OnFrameRenderedListener
Listener to be called when an output frame has rendered on the output surface.
- + MediaCodecAudioRenderer
Decodes and renders audio using MediaCodec and an AudioSink.
- + MediaCodecDecoderException
Thrown when a failure occurs in a MediaCodec decoder.
- + MediaCodecInfo
Information about a MediaCodec for a given mime type.
- + MediaCodecRenderer
An abstract renderer that uses MediaCodec to decode samples for rendering.
- + MediaCodecRenderer.DecoderInitializationException
Thrown when a failure occurs instantiating a decoder.
- + MediaCodecSelector
Selector of MediaCodec instances.
- + MediaCodecUtil
A utility class for querying the available codecs.
- + MediaCodecUtil.DecoderQueryException
Thrown when an error occurs querying the device for its underlying media capabilities.
- + MediaCodecVideoDecoderException
Thrown when a failure occurs in a MediaCodec video decoder.
- + MediaCodecVideoRenderer
Decodes and renders video using MediaCodec.
- + MediaCodecVideoRenderer.CodecMaxValues   - + MediaDrmCallback
Performs ExoMediaDrm key and provisioning requests.
- + MediaDrmCallbackException
Thrown when an error occurs while executing a DRM key or provisioning request.
- + MediaFormatUtil
Helper class containing utility methods for managing MediaFormat instances.
- + MediaItem
Representation of a media item.
- + MediaItem.AdsConfiguration
Configuration for playing back linear ads with a media item.
- + +MediaItem.AdsConfiguration.Builder + +
Builder for MediaItem.AdsConfiguration instances.
+ + + MediaItem.Builder
A builder for MediaItem instances.
- -MediaItem.ClippingProperties + +MediaItem.ClippingConfiguration
Optionally clips the media item to a custom start and end position.
- + +MediaItem.ClippingConfiguration.Builder + +
Builder for MediaItem.ClippingConfiguration instances.
+ + + +MediaItem.ClippingProperties +Deprecated. + + + + MediaItem.DrmConfiguration
DRM configuration for a media item.
- + +MediaItem.DrmConfiguration.Builder + + + + + MediaItem.LiveConfiguration
Live playback configuration.
- -MediaItem.PlaybackProperties + +MediaItem.LiveConfiguration.Builder + +
Builder for MediaItem.LiveConfiguration instances.
+ + + +MediaItem.LocalConfiguration
Properties for local playback.
- + +MediaItem.PlaybackProperties +Deprecated. + + + + MediaItem.Subtitle +Deprecated. + + + + +MediaItem.SubtitleConfiguration
Properties for a text track.
- + +MediaItem.SubtitleConfiguration.Builder + +
Builder for MediaItem.SubtitleConfiguration instances.
+ + + MediaItemConverter
Converts between MediaItem and the Cast SDK's MediaQueueItem.
- + MediaItemConverter
Converts between Media2 MediaItem and ExoPlayer MediaItem.
- + MediaLoadData
Descriptor for data being loaded or selected by a MediaSource.
- + MediaMetadata
Metadata of a MediaItem, playlist, or a combination of multiple sources of Metadata.
- + MediaMetadata.Builder
A builder for MediaMetadata instances.
- + MediaMetadata.FolderType
The folder type of the media item.
- + MediaMetadata.PictureType
The picture type of the artwork.
- + MediaParserChunkExtractor
ChunkExtractor implemented on top of the platform's MediaParser.
- + MediaParserExtractorAdapter
ProgressiveMediaExtractor implemented on top of the platform's MediaParser.
- + MediaParserHlsMediaChunkExtractor
HlsMediaChunkExtractor implemented on top of the platform's MediaParser.
- + MediaParserUtil
Miscellaneous constants and utility methods related to the MediaParser integration.
- + MediaPeriod
Loads media corresponding to a Timeline.Period, and allows that media to be read.
- + MediaPeriod.Callback
A callback to be notified of MediaPeriod events.
- + MediaPeriodAsserts
Assertion methods for MediaPeriod.
- + MediaPeriodAsserts.FilterableManifestMediaPeriodFactory<T extends FilterableManifest<T>>
Interface to create media periods for testing based on a FilterableManifest.
- + MediaPeriodId
Identifies a specific playback of a Timeline.Period.
- + MediaSessionConnector
Connects a MediaSessionCompat to a Player.
- + MediaSessionConnector.CaptionCallback
Handles requests for enabling or disabling captions.
- + MediaSessionConnector.CommandReceiver
Receiver of media commands sent by a media controller.
- + MediaSessionConnector.CustomActionProvider
Provides a PlaybackStateCompat.CustomAction to be published and handles the action when sent by a media controller.
- + MediaSessionConnector.DefaultMediaMetadataProvider
Provides a default MediaMetadataCompat with properties and extras taken from the MediaDescriptionCompat of the MediaSessionCompat.QueueItem of the active queue item.
- + MediaSessionConnector.MediaButtonEventHandler
Handles a media button event.
- + MediaSessionConnector.MediaMetadataProvider
Provides a MediaMetadataCompat for a given player state.
- + MediaSessionConnector.PlaybackActions
Playback actions supported by the connector.
- + MediaSessionConnector.PlaybackPreparer
Interface to which playback preparation and play actions are delegated.
- + MediaSessionConnector.QueueEditor
Handles media session queue edits.
- + MediaSessionConnector.QueueNavigator
Handles queue navigation actions, and updates the media session queue by calling MediaSessionCompat.setQueue().
- + MediaSessionConnector.RatingCallback
Callback receiving a user rating for the active media item.
- + MediaSource
Defines and provides media to be played by an ExoPlayer.
- + MediaSource.MediaPeriodId
Identifier for a MediaPeriod.
- + MediaSource.MediaSourceCaller
A caller of media sources, which will be notified of source events.
- + MediaSourceEventListener
Interface for callbacks to be notified of MediaSource events.
- + MediaSourceEventListener.EventDispatcher
Dispatches events to MediaSourceEventListeners.
- + MediaSourceFactory
Factory for creating MediaSources from MediaItems.
- + MediaSourceTestRunner
A runner for MediaSource tests.
- + MergingMediaSource
Merges multiple MediaSources.
- + MergingMediaSource.IllegalMergeException
Thrown when a MergingMediaSource cannot merge its sources.
- + MergingMediaSource.IllegalMergeException.Reason
The reason the merge failed.
- + Metadata
A collection of metadata entries.
- + Metadata.Entry
A metadata entry.
- + MetadataDecoder
Decodes metadata from binary data.
- + MetadataDecoderFactory
A factory for MetadataDecoder instances.
- + MetadataInputBuffer - + MetadataOutput
Receives metadata output.
- + MetadataRenderer
A renderer for metadata.
- + MetadataRetriever
Retrieves the static metadata of MediaItems.
- + MimeTypes
Defines common MIME types and helper methods.
- + MlltFrame
MPEG location lookup table frame.
- + MotionPhotoMetadata
Metadata of a motion photo file.
- + Mp3Extractor
Extracts data from the MP3 container format.
- + Mp3Extractor.Flags
Flags controlling the behavior of the extractor.
- + Mp4Extractor
Extracts data from the MP4 container format.
- + Mp4Extractor.Flags
Flags controlling the behavior of the extractor.
- + Mp4WebvttDecoder
A SimpleSubtitleDecoder for Webvtt embedded in a Mp4 container file.
- + MpegAudioReader
Parses a continuous MPEG Audio byte stream and extracts individual frames.
- + MpegAudioUtil
Utility methods for handling MPEG audio streams.
- + MpegAudioUtil.Header
Stores the metadata for an MPEG audio frame.
- + NalUnitUtil
Utility methods for handling H.264/AVC and H.265/HEVC NAL units.
- + +NalUnitUtil.H265SpsData + +
Holds data parsed from a H.265 sequence parameter set NAL unit.
+ + + NalUnitUtil.PpsData
Holds data parsed from a picture parameter set NAL unit.
- + NalUnitUtil.SpsData -
Holds data parsed from a sequence parameter set NAL unit.
+
Holds data parsed from a H.264 sequence parameter set NAL unit.
- + NetworkTypeObserver
Observer for network type changes.
- + NetworkTypeObserver.Config
Configuration for NetworkTypeObserver.
- + NetworkTypeObserver.Listener
A listener for network type changes.
- + NonNullApi
Annotation to declare all type usages in the annotated instance as Nonnull, unless explicitly marked with a nullable annotation.
- + NoOpCacheEvictor
Evictor that doesn't ever evict cache files.
- + NoSampleRenderer
A Renderer implementation whose track type is C.TRACK_TYPE_NONE and does not consume data from its SampleStream.
- + NotificationUtil
Utility methods for displaying Notifications.
- + NotificationUtil.Importance
Notification channel importance levels.
- + NoUidTimeline
A timeline which wraps another timeline and overrides all window and period uids to 0.
- + OfflineLicenseHelper
Helper class to download, renew and release offline licenses.
- + OggExtractor
Extracts data from the Ogg container format.
- + OkHttpDataSource
An HttpDataSource that delegates to Square's Call.Factory.
- + OkHttpDataSource.Factory - + OkHttpDataSourceFactory Deprecated. - + OpusDecoder
Opus decoder.
- + OpusDecoderException
Thrown when an Opus decoder error occurs.
- + OpusLibrary
Configures and queries the underlying native library.
- + OpusUtil
Utility methods for handling Opus audio streams.
- -OutputBuffer - -
Output buffer decoded by a Decoder.
- - - -OutputBuffer.Owner<S extends OutputBuffer> - -
Buffer owner.
- - - + OutputConsumerAdapterV30
MediaParser.OutputConsumer implementation that redirects output to an ExtractorOutput.
- + ParsableBitArray
Wraps a byte array, providing methods that allow it to be read as a bitstream.
- + ParsableByteArray
Wraps a byte array, providing a set of methods for parsing data from it.
- + ParsableNalUnitBitArray
Wraps a byte array, providing methods that allow it to be read as a NAL unit bitstream.
- + ParserException
Thrown when an error occurs parsing media data and metadata.
- + ParsingLoadable<T>
A Loader.Loadable for objects that can be parsed from binary data using a ParsingLoadable.Parser.
- + ParsingLoadable.Parser<T>
Parses an object from loaded data.
- + PassthroughSectionPayloadReader
A SectionPayloadReader that directly outputs the section bytes as sample data.
- + PercentageRating
A rating expressed as a percentage.
- + Period
Encapsulates media content components over a contiguous period of time.
- + PesReader
Parses PES packet data and extracts samples.
- + PgsDecoder
A SimpleSubtitleDecoder for PGS subtitles.
- + PictureFrame
A picture parsed from a FLAC file.
- + PlatformScheduler
A Scheduler that uses JobScheduler.
- + PlatformScheduler.PlatformSchedulerService
A JobService that starts the target service if the requirements are met.
- + PlaybackException
Thrown when a non locally recoverable playback failure occurs.
- + PlaybackException.ErrorCode
Codes that identify causes of player errors.
- + PlaybackException.FieldNumber
Identifiers for fields in a Bundle which represents a playback exception.
- + PlaybackOutput
Class to capture output from a playback test.
- + PlaybackParameters
Parameters that apply to playback, including speed setting.
- + PlaybackSessionManager
Manager for active playback sessions.
- + PlaybackSessionManager.Listener
A listener for session updates.
- + PlaybackStats
Statistics about playbacks.
- + PlaybackStats.EventTimeAndException
Stores an exception with the event time at which it occurred.
- + PlaybackStats.EventTimeAndFormat
Stores a format with the event time at which it started being used, or null to indicate that no format was used.
- + PlaybackStats.EventTimeAndPlaybackState
Stores a playback state with the event time at which it became active.
- + PlaybackStatsListener
AnalyticsListener to gather PlaybackStats from the player.
- + PlaybackStatsListener.Callback
A listener for PlaybackStats updates.
- + Player
A media player interface defining traditional high-level functionality, such as the ability to play, pause, seek and query properties of the currently playing media.
- + Player.Command
Commands that can be executed on a Player.
- + Player.Commands
A set of commands.
- + Player.Commands.Builder
A builder for Player.Commands instances.
- + Player.DiscontinuityReason
Reasons for position discontinuities.
- + Player.Event
Events that can be reported via Player.Listener.onEvents(Player, Events).
- + Player.EventListener Deprecated. - + Player.Events
A set of events.
- + Player.Listener
Listener of all changes in the Player.
- + Player.MediaItemTransitionReason
Reasons for media item transitions.
- + Player.PlaybackSuppressionReason
Reason why playback is suppressed even though Player.getPlayWhenReady() is true.
- + Player.PlayWhenReadyChangeReason
Reasons for playWhenReady changes.
- + Player.PositionInfo
Position info describing a playback position involved in a discontinuity.
- + Player.RepeatMode
Repeat modes for playback.
- + Player.State
Playback state.
- + Player.TimelineChangeReason
Reasons for timeline changes.
- + PlayerControlView
A view for controlling Player instances.
- + PlayerControlView.ProgressUpdateListener
Listener to be notified when progress has been updated.
- + PlayerControlView.VisibilityListener
Listener to be notified about changes of the visibility of the UI control.
- + PlayerEmsgHandler
Handles all emsg messages from all media tracks for the player.
- + PlayerEmsgHandler.PlayerEmsgCallback
Callbacks for player emsg events encountered during DASH live stream.
- + PlayerMessage
Defines a player message which can be sent with a PlayerMessage.Sender and received by a PlayerMessage.Target.
- + PlayerMessage.Sender
A sender for messages.
- + PlayerMessage.Target
A target for messages.
- + PlayerNotificationManager
Starts, updates and cancels a media style notification reflecting the player state.
- + PlayerNotificationManager.Builder
A builder for PlayerNotificationManager instances.
- + PlayerNotificationManager.CustomActionReceiver
Defines and handles custom actions.
- + PlayerNotificationManager.MediaDescriptionAdapter
An adapter to provide content assets of the media currently playing.
- + PlayerNotificationManager.NotificationListener
A listener for changes to the notification.
- + PlayerNotificationManager.Priority
Priority of the notification (required for API 25 and lower).
- + PlayerNotificationManager.Visibility
Visibility of notification on the lock screen.
- + PlayerView
A high level view for Player media playbacks.
- + PlayerView.ShowBuffering
Determines when the buffering view is shown.
- + PositionHolder
Holds a position in the stream.
- + PriorityDataSource
A DataSource that can be used as part of a task registered with a PriorityTaskManager.
- -PriorityDataSourceFactory + +PriorityDataSource.Factory -
A DataSource.Factory that produces PriorityDataSource instances.
+ - + +PriorityDataSourceFactory +Deprecated. + + + + PriorityTaskManager
Allows tasks with associated priorities to control how they proceed relative to one another.
- + PriorityTaskManager.PriorityTooLowException
Thrown when task attempts to proceed when another registered task has a higher priority.
- + PrivateCommand
Represents a private command as defined in SCTE35, Section 9.3.6.
- + PrivFrame
PRIV (Private) ID3 frame.
- + ProgramInformation
A parsed program information element.
- + ProgressHolder
Holds a progress percentage.
- + ProgressiveDownloader
A downloader for progressive media streams.
- + ProgressiveMediaExtractor
Extracts the contents of a container file from a progressive media stream.
- + ProgressiveMediaExtractor.Factory
Creates ProgressiveMediaExtractor instances.
- + ProgressiveMediaSource
Provides one period that loads data from a Uri and extracted using an Extractor.
- + ProgressiveMediaSource.Factory - + PsExtractor
Extracts data from the MPEG-2 PS container format.
- + PsshAtomUtil
Utility methods for handling PSSH atoms.
- + RandomizedMp3Decoder
Generates randomized, but correct amount of data on MP3 audio input.
- + RandomTrackSelection
An ExoTrackSelection whose selected track is updated randomly.
- + RandomTrackSelection.Factory
Factory for RandomTrackSelection instances.
- + RangedUri
Defines a range of data located at a reference uri.
- + Rating
A rating for media content.
- + RawCcExtractor
Extracts data from the RawCC container format.
- + RawResourceDataSource
A DataSource for reading a raw resource inside the APK.
- + RawResourceDataSource.RawResourceDataSourceException
Thrown when an IOException is encountered reading from a raw resource.
- + Renderer
Renders media read from a SampleStream.
- -Renderer.State + +Renderer.MessageType -
The renderer states.
+
Represents a type of message that can be passed to a renderer.
- -Renderer.VideoScalingMode -Deprecated. - + +Renderer.State + +
The renderer states.
- + Renderer.WakeupListener
Some renderers can signal when Renderer.render(long, long) should be called.
- + RendererCapabilities
Defines the capabilities of a Renderer.
- + RendererCapabilities.AdaptiveSupport
Level of renderer support for adaptive format switches.
- + RendererCapabilities.Capabilities
Combined renderer capabilities.
- + RendererCapabilities.FormatSupport Deprecated.
Use C.FormatSupport instead.
- + RendererCapabilities.TunnelingSupport
Level of renderer support for tunneling.
- + RendererConfiguration
The configuration of a Renderer.
- + RenderersFactory -
Builds Renderer instances for use by a SimpleExoPlayer.
+
Builds Renderer instances for use by an ExoPlayer.
- + RepeatModeActionProvider
Provides a custom action for toggling repeat modes.
- + RepeatModeUtil
Util class for repeat mode handling.
- + RepeatModeUtil.RepeatToggleModes
Set of repeat toggle modes.
- + Representation
A DASH representation.
- + Representation.MultiSegmentRepresentation
A DASH representation consisting of multiple segments.
- + Representation.SingleSegmentRepresentation
A DASH representation consisting of a single segment.
- + Requirements
Defines a set of device state requirements.
- + Requirements.RequirementFlags
Requirement flags.
- + RequirementsWatcher
Watches whether the Requirements are met and notifies the RequirementsWatcher.Listener on changes.
- + RequirementsWatcher.Listener
Notified when RequirementsWatcher instance first created and on changes whether the Requirements are met.
- + ResolvingDataSource
DataSource wrapper allowing just-in-time resolution of DataSpecs.
- + ResolvingDataSource.Factory - + ResolvingDataSource.Resolver
Resolves DataSpecs.
- -ReusableBufferedOutputStream - -
This is a subclass of BufferedOutputStream with a ReusableBufferedOutputStream.reset(OutputStream) method - that allows an instance to be re-used with another underlying output stream.
- - - + RobolectricUtil
Utility methods for Robolectric-based tests.
- + RtmpDataSource
A Real-Time Messaging Protocol (RTMP) DataSource.
- + RtmpDataSource.Factory - + RtmpDataSourceFactory Deprecated. - + RtpAc3Reader
Parses an AC3 byte stream carried on RTP packets, and extracts AC3 frames.
- + RtpPacket
Represents the header and the payload of an RTP packet.
- + RtpPacket.Builder
Builder class for an RtpPacket
- + RtpPayloadFormat
Represents the payload format used in RTP.
- + RtpPayloadReader
Extracts media samples from the payload of received RTP packets.
- + RtpPayloadReader.Factory
Factory of RtpPayloadReader instances.
- + RtpUtils
Utility methods for RTP.
- + RtspMediaSource
An Rtsp MediaSource
- + RtspMediaSource.Factory
Factory for RtspMediaSource
- + RtspMediaSource.RtspPlaybackException
Thrown when an exception or error is encountered during loading an RTSP stream.
- + RubySpan
A styling span for ruby text.
- + RunnableFutureTask<R,​E extends Exception>
A RunnableFuture that supports additional uninterruptible operations to query whether execution has started and finished.
- + SampleQueue
A queue of media samples.
- + SampleQueue.UpstreamFormatChangedListener
A listener for changes to the upstream format.
- + SampleQueueMappingException
Thrown when it is not possible to map a TrackGroup to a SampleQueue.
- + SampleStream
A stream of media samples (and associated format information).
- + SampleStream.ReadDataResult - + SampleStream.ReadFlags - + Scheduler
Schedules a service to be started in the foreground when some Requirements are met.
- + SectionPayloadReader
Reads section data.
- + SectionReader
Reads section data packets and feeds the whole sections to a given SectionPayloadReader.
- + SeekMap
Maps seek positions (in microseconds) to corresponding positions (byte offsets) in the stream.
- + SeekMap.SeekPoints
Contains one or two SeekPoints.
- + SeekMap.Unseekable
A SeekMap that does not support seeking.
- + SeekParameters
Parameters that apply to seeking.
- + SeekPoint
Defines a seek point in a media stream.
- + SegmentBase
An approximate representation of a SegmentBase manifest element.
- + SegmentBase.MultiSegmentBase
A SegmentBase that consists of multiple segments.
- + SegmentBase.SegmentList
A SegmentBase.MultiSegmentBase that uses a SegmentList to define its segments.
- + SegmentBase.SegmentTemplate
A SegmentBase.MultiSegmentBase that uses a SegmentTemplate to define its segments.
- + SegmentBase.SegmentTimelineElement
Represents a timeline segment from the MPD's SegmentTimeline list.
- + SegmentBase.SingleSegmentBase
A SegmentBase that defines a single segment.
- + SegmentDownloader<M extends FilterableManifest<M>>
Base class for multi segment stream downloaders.
- + SegmentDownloader.Segment
Smallest unit of content to be downloaded.
- + SeiReader
Consumes SEI buffers, outputting contained CEA-608/708 messages to a TrackOutput.
- + SequenceableLoader
A loader that can proceed in approximate synchronization with other loaders.
- + SequenceableLoader.Callback<T extends SequenceableLoader>
A callback to be notified of SequenceableLoader events.
- + ServerSideInsertedAdsMediaSource
A MediaSource for server-side inserted ad breaks.
- + ServerSideInsertedAdsUtil
A static utility class with methods to work with server-side inserted ads.
- + ServiceDescriptionElement
Represents a service description element.
- + SessionAvailabilityListener
Listener of changes in the cast session availability.
- + SessionCallbackBuilder
Builds a MediaSession.SessionCallback with various collaborators.
- + SessionCallbackBuilder.AllowedCommandProvider
Provides allowed commands for MediaController.
- + SessionCallbackBuilder.CustomCommandProvider
Callbacks for querying what custom commands are supported, and for handling a custom command when a controller sends it.
- + SessionCallbackBuilder.DefaultAllowedCommandProvider
Default implementation of SessionCallbackBuilder.AllowedCommandProvider that behaves as follows: @@ -5847,1288 +5945,1356 @@

All Classes

Controller is in the same package as the session.
- + SessionCallbackBuilder.DisconnectedCallback
Callback for handling controller disconnection.
- + SessionCallbackBuilder.MediaIdMediaItemProvider
A SessionCallbackBuilder.MediaItemProvider that creates media items containing only a media ID.
- + SessionCallbackBuilder.MediaItemProvider
Provides the MediaItem.
- + SessionCallbackBuilder.PostConnectCallback
Callback for handling extra initialization after the connection.
- + SessionCallbackBuilder.RatingCallback
Callback receiving a user rating for a specified media id.
- + SessionCallbackBuilder.SkipCallback
Callback receiving skip backward and skip forward.
- + SessionPlayerConnector
An implementation of SessionPlayer that wraps a given ExoPlayer Player instance.
- + ShadowMediaCodecConfig
A JUnit @Rule to configure Roboelectric's ShadowMediaCodec.
- + ShuffleOrder
Shuffled order of indices.
- + ShuffleOrder.DefaultShuffleOrder
The default ShuffleOrder implementation for random shuffle order.
- + ShuffleOrder.UnshuffledShuffleOrder
A ShuffleOrder implementation which does not shuffle.
- + SilenceMediaSource
Media source with a single period consisting of silent raw audio of a given duration.
- + SilenceMediaSource.Factory
Factory for SilenceMediaSources.
- + SilenceSkippingAudioProcessor
An AudioProcessor that skips silence in the input stream.
- + SimpleCache
A Cache implementation that maintains an in-memory representation.
- -SimpleDecoder<I extends DecoderInputBuffer,​O extends OutputBuffer,​E extends DecoderException> + +SimpleDecoder<I extends DecoderInputBuffer,​O extends DecoderOutputBuffer,​E extends DecoderException>
Base class for Decoders that use their own decode thread and decode each input buffer immediately into a corresponding output buffer.
- -SimpleExoPlayer + +SimpleDecoderOutputBuffer -
An ExoPlayer implementation that uses default Renderer components.
+
Buffer for SimpleDecoder output.
- + +SimpleExoPlayer +Deprecated. +
Use ExoPlayer instead.
+ + + SimpleExoPlayer.Builder - -
A builder for SimpleExoPlayer instances.
+Deprecated. +
Use ExoPlayer.Builder instead.
- + SimpleMetadataDecoder
A MetadataDecoder base class that validates input buffers and discards any for which Buffer.isDecodeOnly() is true.
- -SimpleOutputBuffer - -
Buffer for SimpleDecoder output.
- - - + SimpleSubtitleDecoder
Base class for subtitle parsers that use their own decode thread.
- + SinglePeriodAdTimeline
A Timeline for sources that have ads.
- + SinglePeriodTimeline
A Timeline consisting of a single period and static window.
- + SingleSampleMediaChunk
A BaseMediaChunk for chunks consisting of a single raw sample.
- + SingleSampleMediaSource
Loads data at a given Uri as a single sample belonging to a single MediaPeriod.
- + SingleSampleMediaSource.Factory - -SlidingPercentile + +SlidingPercentile
Calculate any percentile over a sliding window of weighted values.
- + SlowMotionData
Holds information about the segments of slow motion playback within a track.
- + SlowMotionData.Segment
Holds information about a single segment of slow motion playback within a track.
- + SmtaMetadataEntry
Stores metadata from the Samsung smta box.
- + SntpClient
Static utility to retrieve the device time offset using SNTP.
- + SntpClient.InitializationCallback - + SonicAudioProcessor
An AudioProcessor that uses the Sonic library to modify audio speed/pitch/sample rate.
- + SpannedSubject
A Truth Subject for assertions on Spanned instances containing text styling.
- + SpannedSubject.AbsoluteSized
Allows assertions about the absolute size of a span.
- + SpannedSubject.Aligned
Allows assertions about the alignment of a span.
- + SpannedSubject.AndSpanFlags
Allows additional assertions to be made on the flags of matching spans.
- + SpannedSubject.Colored
Allows assertions about the color of a span.
- + SpannedSubject.EmphasizedText
Allows assertions about a span's text emphasis mark and its position.
- + SpannedSubject.RelativeSized
Allows assertions about the relative size of a span.
- + SpannedSubject.RubyText
Allows assertions about a span's ruby text and its position.
- + SpannedSubject.Typefaced
Allows assertions about the typeface of a span.
- + SpannedSubject.WithSpanFlags
Allows additional assertions to be made on the flags of matching spans.
- + SpanUtil
Utility methods for Android span styling.
- + SphericalGLSurfaceView
Renders a GL scene in a non-VR Activity that is affected by phone orientation and touch input.
- + SphericalGLSurfaceView.VideoSurfaceListener
Listener for the Surface to which video frames should be rendered.
- + SpliceCommand
Superclass for SCTE35 splice commands.
- + SpliceInfoDecoder
Decodes splice info sections and produces splice commands.
- + SpliceInsertCommand
Represents a splice insert command defined in SCTE35, Section 9.3.3.
- + SpliceInsertCommand.ComponentSplice
Holds splicing information for specific splice insert command components.
- + SpliceNullCommand
Represents a splice null command as defined in SCTE35, Section 9.3.1.
- + SpliceScheduleCommand
Represents a splice schedule command as defined in SCTE35, Section 9.3.2.
- + SpliceScheduleCommand.ComponentSplice
Holds splicing information for specific splice schedule command components.
- + SpliceScheduleCommand.Event
Represents a splice event as contained in a SpliceScheduleCommand.
- + SsaDecoder
A SimpleSubtitleDecoder for SSA/ASS.
- + SsChunkSource
A ChunkSource for SmoothStreaming.
- + SsChunkSource.Factory
Factory for SsChunkSources.
- + SsDownloader
A downloader for SmoothStreaming streams.
- + SsManifest
Represents a SmoothStreaming manifest.
- + SsManifest.ProtectionElement
Represents a protection element containing a single header.
- + SsManifest.StreamElement
Represents a StreamIndex element.
- + SsManifestParser
Parses SmoothStreaming client manifests.
- + SsManifestParser.MissingFieldException
Thrown if a required field is missing.
- + SsMediaSource
A SmoothStreaming MediaSource.
- + SsMediaSource.Factory
Factory for SsMediaSource.
- + +StandaloneDatabaseProvider + +
An SQLiteOpenHelper that provides instances of a standalone database.
+ + + StandaloneMediaClock
A MediaClock whose position advances with real time based on the playback parameters when started.
- + StarRating
A rating expressed as a fractional number of stars.
- + StartOffsetExtractorOutput
An extractor output that wraps another extractor output and applies a give start byte offset to seek positions.
- + StatsDataSource
DataSource wrapper which keeps track of bytes transferred, redirected uris, and response headers.
- + StreamKey
A key for a subset of media that can be separately loaded (a "stream").
- + StubExoPlayer
An abstract ExoPlayer implementation that throws UnsupportedOperationException from every method.
- + +StubPlayer + +
An abstract Player implementation that throws UnsupportedOperationException from + every method.
+ + + StyledPlayerControlView
A view for controlling Player instances.
- + StyledPlayerControlView.OnFullScreenModeChangedListener
Listener to be invoked to inform the fullscreen mode is changed.
- + StyledPlayerControlView.ProgressUpdateListener
Listener to be notified when progress has been updated.
- + StyledPlayerControlView.VisibilityListener
Listener to be notified about changes of the visibility of the UI control.
- + StyledPlayerView
A high level view for Player media playbacks.
- + StyledPlayerView.ShowBuffering
Determines when the buffering view is shown.
- + SubripDecoder
A SimpleSubtitleDecoder for SubRip.
- + Subtitle
A subtitle consisting of timed Cues.
- + SubtitleDecoder - + SubtitleDecoderException
Thrown when an error occurs decoding subtitle data.
- + SubtitleDecoderFactory
A factory for SubtitleDecoder instances.
- + +SubtitleExtractor + +
Generic extractor for extracting subtitles from various subtitle formats.
+ + + SubtitleInputBuffer - + SubtitleOutputBuffer
Base class for SubtitleDecoder output buffers.
- + SubtitleView
A view for displaying subtitle Cues.
- + SubtitleView.ViewType
The type of View to use to display subtitles.
- + SynchronousMediaCodecAdapter
A MediaCodecAdapter that operates the underlying MediaCodec in synchronous mode.
- + SynchronousMediaCodecAdapter.Factory
A factory for SynchronousMediaCodecAdapter instances.
- + SystemClock
The standard implementation of Clock, an instance of which is available via Clock.DEFAULT.
- + TeeAudioProcessor
Audio processor that outputs its input unmodified and also outputs its input to a given sink.
- + TeeAudioProcessor.AudioBufferSink
A sink for audio buffers handled by the audio processor.
- + TeeAudioProcessor.WavFileAudioBufferSink
A sink for audio buffers that writes output audio as .wav files with a given path prefix.
- + TeeDataSource
Tees data into a DataSink as the data is read.
- + TestDownloadManagerListener
Allows tests to block for, and assert properties of, calls from a DownloadManager to its DownloadManager.Listener.
- + TestExoPlayerBuilder
A builder of SimpleExoPlayer instances for testing.
- + TestPlayerRunHelper -
Helper methods to block the calling thread until the provided SimpleExoPlayer instance - reaches a particular state.
+
Helper methods to block the calling thread until the provided ExoPlayer instance reaches + a particular state.
- + TestUtil
Utility methods for tests.
- + TextAnnotation
Properties of a text annotation (i.e.
- + TextAnnotation.Position
The possible positions of the annotation text relative to the base text.
- + TextEmphasisSpan
A styling span for text emphasis marks.
- + TextEmphasisSpan.MarkFill
The possible mark fills that can be used.
- + TextEmphasisSpan.MarkShape
The possible mark shapes that can be used.
- + TextInformationFrame
Text information ID3 frame.
- + TextOutput
Receives text output.
- + TextRenderer
A renderer for text.
- + ThumbRating
A rating expressed as "thumbs up" or "thumbs down".
- + TimeBar
Interface for time bar views that can display a playback position, buffered position, duration and ad markers, and that have a listener for scrubbing (seeking) events.
- + TimeBar.OnScrubListener
Listener for scrubbing events.
- + TimedValueQueue<V>
A utility class to keep a queue of values with timestamps.
- + Timeline
A flexible representation of the structure of media.
- + Timeline.Period
Holds information about a period in a Timeline.
- + Timeline.RemotableTimeline
A concrete class of Timeline to restore a Timeline instance from a Bundle sent by another process via IBinder.
- + Timeline.Window
Holds information about a window in a Timeline.
- + TimelineAsserts
Assertion methods for Timeline.
- + TimelineQueueEditor - + TimelineQueueEditor.MediaDescriptionConverter
Converts a MediaDescriptionCompat to a MediaItem.
- + TimelineQueueEditor.MediaIdEqualityChecker
Media description comparator comparing the media IDs.
- + TimelineQueueEditor.QueueDataAdapter
Adapter to get MediaDescriptionCompat of items in the queue and to notify the application about changes in the queue to sync the data structure backing the MediaSessionConnector.
- + TimelineQueueNavigator
An abstract implementation of the MediaSessionConnector.QueueNavigator that maps the windows of a Player's Timeline to the media session queue.
- + TimeSignalCommand
Represents a time signal command as defined in SCTE35, Section 9.3.4.
- + TimestampAdjuster
Adjusts and offsets sample timestamps.
- + TimestampAdjusterProvider
Provides TimestampAdjuster instances for use during HLS playbacks.
- + TimeToFirstByteEstimator
Provides an estimate of the time to first byte of a transfer.
- + TraceUtil
Calls through to Trace methods on supported API levels.
- + Track
Encapsulates information describing an MP4 track.
- + Track.Transformation
The transformation to apply to samples in the track, if any.
- + TrackEncryptionBox
Encapsulates information parsed from a track encryption (tenc) box or sample group description (sgpd) box in an MP4 stream.
- + TrackGroup
Defines an immutable group of tracks identified by their format identity.
- + TrackGroupArray
An immutable array of TrackGroups.
- + TrackNameProvider
Converts Formats to user readable track names.
- + TrackOutput
Receives track level data extracted by an Extractor.
- + TrackOutput.CryptoData
Holds data required to decrypt a sample.
- + TrackOutput.SampleDataPart
Defines the part of the sample data to which a call to TrackOutput.sampleData(com.google.android.exoplayer2.upstream.DataReader, int, boolean) corresponds.
- + TrackSelection
A track selection consisting of a static subset of selected tracks belonging to a TrackGroup.
- + +TrackSelection.Type + +
Represents a type track selection.
+ + + TrackSelectionArray
An array of TrackSelections.
- + TrackSelectionDialogBuilder
Builder for a dialog with a TrackSelectionView.
- + TrackSelectionDialogBuilder.DialogCallback
Callback which is invoked when a track selection has been made.
- + +TrackSelectionOverrides + +
Forces the selection of the specified tracks in TrackGroups.
+ + + +TrackSelectionOverrides.Builder + + + + + +TrackSelectionOverrides.TrackSelectionOverride + + + + + TrackSelectionParameters
Constraint parameters for track selection.
- + TrackSelectionParameters.Builder - + TrackSelectionUtil
Track selection related utility methods.
- + TrackSelectionUtil.AdaptiveTrackSelectionFactory
Functional interface to create a single adaptive track selection.
- + TrackSelectionView
A view for making track selections.
- + TrackSelectionView.TrackSelectionListener
Listener for changes to the selected tracks.
- + TrackSelector
The component of an ExoPlayer responsible for selecting tracks to be consumed by each of the player's Renderers.
- + TrackSelector.InvalidationListener
Notified when selections previously made by a TrackSelector are no longer valid.
- + TrackSelectorResult
The result of a TrackSelector operation.
- + +TracksInfo + +
Immutable information (TracksInfo.TrackGroupInfo) about tracks.
+ + + +TracksInfo.TrackGroupInfo + +
Information about tracks in a TrackGroup: their C.TrackType, if their format is + supported by the player and if they are selected for playback.
+ + + +TranscodingTransformer + +
A transcoding transformer to transform media inputs.
+ + + +TranscodingTransformer.Builder + +
A builder for TranscodingTransformer instances.
+ + + +TranscodingTransformer.Listener + +
A listener for the transformation events.
+ + + +TranscodingTransformer.ProgressState + +
Progress state.
+ + + TransferListener
A listener of data transfer events.
- + Transformer
A transformer to transform media inputs.
- + Transformer.Builder
A builder for Transformer instances.
- + Transformer.Listener
A listener for the transformation events.
- + Transformer.ProgressState
Progress state.
- + +TrueHdSampleRechunker + +
Rechunks TrueHD sample data into groups of Ac3Util.TRUEHD_RECHUNK_SAMPLE_COUNT samples.
+ + + TsExtractor
Extracts data from the MPEG-2 TS container format.
- + TsExtractor.Mode
Modes for the extractor.
- + TsPayloadReader
Parses TS packet payload data.
- + TsPayloadReader.DvbSubtitleInfo
Holds information about a DVB subtitle, as defined in ETSI EN 300 468 V1.11.1 section 6.2.41.
- + TsPayloadReader.EsInfo
Holds information associated with a PMT entry.
- + TsPayloadReader.Factory
Factory of TsPayloadReader instances.
- + TsPayloadReader.Flags
Contextual flags indicating the presence of indicators in the TS packet or PES packet headers.
- + TsPayloadReader.TrackIdGenerator
Generates track ids for initializing TsPayloadReaders' TrackOutputs.
- + TsUtil
Utilities method for extracting MPEG-TS streams.
- + TtmlDecoder
A SimpleSubtitleDecoder for TTML supporting the DFXP presentation profile.
- + Tx3gDecoder - + UdpDataSource
A UDP DataSource.
- + UdpDataSource.UdpDataSourceException
Thrown when an error is encountered when trying to read from a UdpDataSource.
- + UnknownNull
Annotation for specifying unknown nullness.
- + UnrecognizedInputFormatException
Thrown if the input format was not recognized.
- + UnsupportedDrmException
Thrown when the requested DRM scheme is not supported.
- + UnsupportedDrmException.Reason
The reason for the exception.
- -UnsupportedMediaCrypto - -
ExoMediaCrypto type that cannot be used to handle any type of protected content.
- - - + UriUtil
Utility methods for manipulating URIs.
- + UrlLinkFrame
Url link ID3 frame.
- + UrlTemplate
A template from which URLs can be built.
- + UtcTimingElement
Represents a UTCTiming element.
- + Util
Miscellaneous utility methods.
- + VersionTable -
Utility methods for accessing versions of ExoPlayer database components.
+
Utility methods for accessing versions of media library database components.
- + VideoDecoderGLSurfaceView -
GLSurfaceView implementing VideoDecoderOutputBufferRenderer for rendering VideoDecoderOutputBuffers.
- - - -VideoDecoderInputBuffer - -
Input buffer to a video decoder.
+
GLSurfaceView implementing VideoDecoderOutputBufferRenderer for rendering VideoDecoderOutputBuffers.
- -VideoDecoderOutputBuffer + +VideoDecoderOutputBuffer
Video decoder output buffer containing video frame data.
- + VideoDecoderOutputBufferRenderer - + - + VideoFrameMetadataListener
A listener for metadata corresponding to video frames being rendered.
- + VideoFrameReleaseHelper
Helps a video Renderer release frames to a Surface.
- -VideoListener -Deprecated. - - - - + VideoRendererEventListener
Listener of video Renderer events.
- + VideoRendererEventListener.EventDispatcher
Dispatches events to a VideoRendererEventListener.
- + VideoSize
Represents the video size.
- + VorbisBitArray
Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream.
- + VorbisComment
A vorbis comment.
- + VorbisUtil
Utility methods for parsing Vorbis streams.
- + VorbisUtil.CommentHeader
Vorbis comment header.
- + VorbisUtil.Mode
Vorbis setup header modes.
- + VorbisUtil.VorbisIdHeader
Vorbis identification header.
- + VpxDecoder
Vpx decoder.
- + VpxDecoderException
Thrown when a libvpx decoder error occurs.
- + VpxLibrary
Configures and queries the underlying native library.
- + WavExtractor
Extracts data from WAV byte streams.
- + WavUtil
Utilities for handling WAVE files.
- + WebServerDispatcher
A Dispatcher for MockWebServer that allows per-path customisation of the static data served.
- + WebServerDispatcher.Resource
A resource served by WebServerDispatcher.
- + WebServerDispatcher.Resource.Builder - + WebvttCssStyle
Style object of a Css style block in a Webvtt file.
- + WebvttCssStyle.FontSizeUnit
Font size unit enum.
- + WebvttCssStyle.StyleFlags
Style flag enum.
- + WebvttCueInfo
A representation of a WebVTT cue.
- + WebvttCueParser
Parser for WebVTT cues.
- + WebvttDecoder
A SimpleSubtitleDecoder for WebVTT.
- + WebvttExtractor
A special purpose extractor for WebVTT content in HLS.
- + WebvttParserUtil
Utility methods for parsing WebVTT data.
- + WidevineUtil
Utility methods for Widevine.
- + WorkManagerScheduler
A Scheduler that uses WorkManager.
- + WorkManagerScheduler.SchedulerWorker
A Worker that starts the target service if the requirements are met.
- + WritableDownloadIndex
A writable index of Downloads.
- + XmlPullParserUtil
XmlPullParser utility methods.
diff --git a/docs/doc/reference/allclasses.html b/docs/doc/reference/allclasses.html index 288afe5bcf4..5d8782d8f4b 100644 --- a/docs/doc/reference/allclasses.html +++ b/docs/doc/reference/allclasses.html @@ -109,6 +109,7 @@

All Classes

  • AspectRatioFrameLayout.AspectRatioListener
  • AspectRatioFrameLayout.ResizeMode
  • Assertions
  • +
  • AssetContentProvider
  • AssetDataSource
  • AssetDataSource.AssetDataSourceException
  • AtomicFile
  • @@ -117,7 +118,6 @@

    All Classes

  • AudioCapabilities
  • AudioCapabilitiesReceiver
  • AudioCapabilitiesReceiver.Listener
  • -
  • AudioListener
  • AudioProcessor
  • AudioProcessor.AudioFormat
  • AudioProcessor.UnhandledAudioFormatException
  • @@ -158,7 +158,7 @@

    All Classes

  • Buffer
  • Bundleable
  • Bundleable.Creator
  • -
  • BundleableUtils
  • +
  • BundleableUtil
  • BundledChunkExtractor
  • BundledExtractorsAdapter
  • BundledHlsMediaChunkExtractor
  • @@ -171,6 +171,7 @@

    All Classes

  • C.AudioContentType
  • C.AudioFlags
  • C.AudioFocusGain
  • +
  • C.AudioManagerOffloadMode
  • C.AudioUsage
  • C.BufferFlags
  • C.ColorRange
  • @@ -178,6 +179,7 @@

    All Classes

  • C.ColorTransfer
  • C.ContentType
  • C.CryptoMode
  • +
  • C.CryptoType
  • C.DataType
  • C.Encoding
  • C.FormatSupport
  • @@ -186,8 +188,11 @@

    All Classes

  • C.Projection
  • C.RoleFlags
  • C.SelectionFlags
  • +
  • C.SelectionReason
  • C.StereoMode
  • C.StreamType
  • +
  • C.TrackType
  • +
  • C.VideoChangeFrameRateStrategy
  • C.VideoOutputMode
  • C.VideoScalingMode
  • C.WakeMode
  • @@ -199,14 +204,12 @@

    All Classes

  • CacheDataSink
  • CacheDataSink.CacheDataSinkException
  • CacheDataSink.Factory
  • -
  • CacheDataSinkFactory
  • CacheDataSource
  • CacheDataSource.CacheIgnoredReason
  • CacheDataSource.EventListener
  • CacheDataSource.Factory
  • CacheDataSource.Flags
  • -
  • CacheDataSourceFactory
  • -
  • CachedRegionTracker
  • +
  • CachedRegionTracker
  • CacheEvictor
  • CacheKeyFactory
  • CacheSpan
  • @@ -254,7 +257,6 @@

    All Classes

  • ContentDataSource.ContentDataSourceException
  • ContentMetadata
  • ContentMetadataMutations
  • -
  • ControlDispatcher
  • CopyOnWriteMultiset
  • CronetDataSource
  • CronetDataSource.Factory
  • @@ -262,6 +264,8 @@

    All Classes

  • CronetDataSourceFactory
  • CronetEngineWrapper
  • CronetUtil
  • +
  • CryptoConfig
  • +
  • CryptoException
  • CryptoInfo
  • Cue
  • Cue.AnchorType
  • @@ -269,6 +273,8 @@

    All Classes

  • Cue.LineType
  • Cue.TextSizeType
  • Cue.VerticalType
  • +
  • CueDecoder
  • +
  • CueEncoder
  • DashChunkSource
  • DashChunkSource.Factory
  • DashDownloader
  • @@ -296,6 +302,7 @@

    All Classes

  • DataSourceContractTest.TestResource.Builder
  • DataSourceException
  • DataSourceInputStream
  • +
  • DataSourceUtil
  • DataSpec
  • DataSpec.Builder
  • DataSpec.Flags
  • @@ -309,11 +316,12 @@

    All Classes

  • DecoderInputBuffer
  • DecoderInputBuffer.BufferReplacementMode
  • DecoderInputBuffer.InsufficientCapacityException
  • +
  • DecoderOutputBuffer
  • +
  • DecoderOutputBuffer.Owner
  • DecoderReuseEvaluation
  • DecoderReuseEvaluation.DecoderDiscardReasons
  • DecoderReuseEvaluation.DecoderReuseResult
  • DecoderVideoRenderer
  • -
  • DecryptionException
  • DefaultAllocator
  • DefaultAudioSink
  • DefaultAudioSink.AudioProcessorChain
  • @@ -325,13 +333,13 @@

    All Classes

  • DefaultCastOptionsProvider
  • DefaultCompositeSequenceableLoaderFactory
  • DefaultContentMetadata
  • -
  • DefaultControlDispatcher
  • DefaultDashChunkSource
  • DefaultDashChunkSource.Factory
  • DefaultDashChunkSource.RepresentationHolder
  • DefaultDashChunkSource.RepresentationSegmentIterator
  • DefaultDatabaseProvider
  • DefaultDataSource
  • +
  • DefaultDataSource.Factory
  • DefaultDataSourceFactory
  • DefaultDownloaderFactory
  • DefaultDownloadIndex
  • @@ -348,12 +356,12 @@

    All Classes

  • DefaultHlsPlaylistTracker
  • DefaultHttpDataSource
  • DefaultHttpDataSource.Factory
  • -
  • DefaultHttpDataSourceFactory
  • DefaultLivePlaybackSpeedControl
  • DefaultLivePlaybackSpeedControl.Builder
  • DefaultLoadControl
  • DefaultLoadControl.Builder
  • DefaultLoadErrorHandlingPolicy
  • +
  • DefaultMediaCodecAdapterFactory
  • DefaultMediaDescriptionAdapter
  • DefaultMediaItemConverter
  • DefaultMediaItemConverter
  • @@ -379,9 +387,8 @@

    All Classes

  • DefaultTsPayloadReaderFactory
  • DefaultTsPayloadReaderFactory.Flags
  • Descriptor
  • -
  • DeviceInfo
  • -
  • DeviceInfo.PlaybackType
  • -
  • DeviceListener
  • +
  • DeviceInfo
  • +
  • DeviceInfo.PlaybackType
  • DolbyVisionConfig
  • Download
  • Download.FailureReason
  • @@ -448,7 +455,6 @@

    All Classes

  • EventStream
  • ExoDatabaseProvider
  • ExoHostedTest
  • -
  • ExoMediaCrypto
  • ExoMediaDrm
  • ExoMediaDrm.AppManagedProvider
  • ExoMediaDrm.KeyRequest
  • @@ -466,9 +472,9 @@

    All Classes

  • ExoPlayer.AudioOffloadListener
  • ExoPlayer.Builder
  • ExoPlayer.DeviceComponent
  • -
  • ExoPlayer.MetadataComponent
  • ExoPlayer.TextComponent
  • ExoPlayer.VideoComponent
  • +
  • ExoplayerCuesDecoder
  • ExoPlayerLibraryInfo
  • ExoPlayerTestRunner
  • ExoPlayerTestRunner.Builder
  • @@ -499,6 +505,7 @@

    All Classes

  • FakeChunkSource
  • FakeChunkSource.Factory
  • FakeClock
  • +
  • FakeCryptoConfig
  • FakeDataSet
  • FakeDataSet.FakeData
  • FakeDataSet.FakeData.Segment
  • @@ -518,6 +525,8 @@

    All Classes

  • FakeMediaPeriod.TrackDataFactory
  • FakeMediaSource
  • FakeMediaSource.InitialTimeline
  • +
  • FakeMediaSourceFactory
  • +
  • FakeMetadataEntry
  • FakeRenderer
  • FakeSampleStream
  • FakeSampleStream.FakeSampleStreamItem
  • @@ -535,14 +544,13 @@

    All Classes

  • FileDataSource
  • FileDataSource.Factory
  • FileDataSource.FileDataSourceException
  • -
  • FileDataSourceFactory
  • FileTypes
  • FileTypes.Type
  • FilterableManifest
  • FilteringHlsPlaylistParserFactory
  • FilteringManifestParser
  • FixedTrackSelection
  • -
  • FlacConstants
  • +
  • FlacConstants
  • FlacDecoder
  • FlacDecoderException
  • FlacExtractor
  • @@ -569,7 +577,7 @@

    All Classes

  • ForwardingTimeline
  • FragmentedMp4Extractor
  • FragmentedMp4Extractor.Flags
  • -
  • FrameworkMediaCrypto
  • +
  • FrameworkCryptoConfig
  • FrameworkMediaDrm
  • GaplessInfoHolder
  • Gav1Decoder
  • @@ -578,8 +586,10 @@

    All Classes

  • GeobFrame
  • GlUtil
  • GlUtil.Attribute
  • +
  • GlUtil.GlException
  • +
  • GlUtil.Program
  • GlUtil.Uniform
  • -
  • GvrAudioProcessor
  • +
  • GlUtil.UnsupportedEglVersionException
  • H262Reader
  • H263Reader
  • H264Reader
  • @@ -648,7 +658,6 @@

    All Classes

  • IndexSeekMap
  • InitializationChunk
  • InputReaderAdapterV30
  • -
  • IntArrayQueue
  • InternalFrame
  • JpegExtractor
  • KeysExpiredException
  • @@ -716,12 +725,20 @@

    All Classes

  • MediaFormatUtil
  • MediaItem
  • MediaItem.AdsConfiguration
  • +
  • MediaItem.AdsConfiguration.Builder
  • MediaItem.Builder
  • +
  • MediaItem.ClippingConfiguration
  • +
  • MediaItem.ClippingConfiguration.Builder
  • MediaItem.ClippingProperties
  • MediaItem.DrmConfiguration
  • +
  • MediaItem.DrmConfiguration.Builder
  • MediaItem.LiveConfiguration
  • +
  • MediaItem.LiveConfiguration.Builder
  • +
  • MediaItem.LocalConfiguration
  • MediaItem.PlaybackProperties
  • MediaItem.Subtitle
  • +
  • MediaItem.SubtitleConfiguration
  • +
  • MediaItem.SubtitleConfiguration.Builder
  • MediaItemConverter
  • MediaItemConverter
  • MediaLoadData
  • @@ -780,6 +797,7 @@

    All Classes

  • MpegAudioUtil
  • MpegAudioUtil.Header
  • NalUnitUtil
  • +
  • NalUnitUtil.H265SpsData
  • NalUnitUtil.PpsData
  • NalUnitUtil.SpsData
  • NetworkTypeObserver
  • @@ -800,8 +818,6 @@

    All Classes

  • OpusDecoderException
  • OpusLibrary
  • OpusUtil
  • -
  • OutputBuffer
  • -
  • OutputBuffer.Owner
  • OutputConsumerAdapterV30
  • ParsableBitArray
  • ParsableByteArray
  • @@ -865,6 +881,7 @@

    All Classes

  • PlayerView.ShowBuffering
  • PositionHolder
  • PriorityDataSource
  • +
  • PriorityDataSource.Factory
  • PriorityDataSourceFactory
  • PriorityTaskManager
  • PriorityTaskManager.PriorityTooLowException
  • @@ -888,8 +905,8 @@

    All Classes

  • RawResourceDataSource
  • RawResourceDataSource.RawResourceDataSourceException
  • Renderer
  • +
  • Renderer.MessageType
  • Renderer.State
  • -
  • Renderer.VideoScalingMode
  • Renderer.WakeupListener
  • RendererCapabilities
  • RendererCapabilities.AdaptiveSupport
  • @@ -911,7 +928,6 @@

    All Classes

  • ResolvingDataSource
  • ResolvingDataSource.Factory
  • ResolvingDataSource.Resolver
  • -
  • ReusableBufferedOutputStream
  • RobolectricUtil
  • RtmpDataSource
  • RtmpDataSource.Factory
  • @@ -977,17 +993,17 @@

    All Classes

  • SilenceSkippingAudioProcessor
  • SimpleCache
  • SimpleDecoder
  • +
  • SimpleDecoderOutputBuffer
  • SimpleExoPlayer
  • SimpleExoPlayer.Builder
  • SimpleMetadataDecoder
  • -
  • SimpleOutputBuffer
  • SimpleSubtitleDecoder
  • SinglePeriodAdTimeline
  • SinglePeriodTimeline
  • SingleSampleMediaChunk
  • SingleSampleMediaSource
  • SingleSampleMediaSource.Factory
  • -
  • SlidingPercentile
  • +
  • SlidingPercentile
  • SlowMotionData
  • SlowMotionData.Segment
  • SmtaMetadataEntry
  • @@ -1026,12 +1042,14 @@

    All Classes

  • SsManifestParser.MissingFieldException
  • SsMediaSource
  • SsMediaSource.Factory
  • +
  • StandaloneDatabaseProvider
  • StandaloneMediaClock
  • StarRating
  • StartOffsetExtractorOutput
  • StatsDataSource
  • StreamKey
  • StubExoPlayer
  • +
  • StubPlayer
  • StyledPlayerControlView
  • StyledPlayerControlView.OnFullScreenModeChangedListener
  • StyledPlayerControlView.ProgressUpdateListener
  • @@ -1043,6 +1061,7 @@

    All Classes

  • SubtitleDecoder
  • SubtitleDecoderException
  • SubtitleDecoderFactory
  • +
  • SubtitleExtractor
  • SubtitleInputBuffer
  • SubtitleOutputBuffer
  • SubtitleView
  • @@ -1095,9 +1114,13 @@

    All Classes

  • TrackOutput.CryptoData
  • TrackOutput.SampleDataPart
  • TrackSelection
  • +
  • TrackSelection.Type
  • TrackSelectionArray
  • TrackSelectionDialogBuilder
  • TrackSelectionDialogBuilder.DialogCallback
  • +
  • TrackSelectionOverrides
  • +
  • TrackSelectionOverrides.Builder
  • +
  • TrackSelectionOverrides.TrackSelectionOverride
  • TrackSelectionParameters
  • TrackSelectionParameters.Builder
  • TrackSelectionUtil
  • @@ -1107,11 +1130,18 @@

    All Classes

  • TrackSelector
  • TrackSelector.InvalidationListener
  • TrackSelectorResult
  • +
  • TracksInfo
  • +
  • TracksInfo.TrackGroupInfo
  • +
  • TranscodingTransformer
  • +
  • TranscodingTransformer.Builder
  • +
  • TranscodingTransformer.Listener
  • +
  • TranscodingTransformer.ProgressState
  • TransferListener
  • Transformer
  • Transformer.Builder
  • Transformer.Listener
  • Transformer.ProgressState
  • +
  • TrueHdSampleRechunker
  • TsExtractor
  • TsExtractor.Mode
  • TsPayloadReader
  • @@ -1129,7 +1159,6 @@

    All Classes

  • UnrecognizedInputFormatException
  • UnsupportedDrmException
  • UnsupportedDrmException.Reason
  • -
  • UnsupportedMediaCrypto
  • UriUtil
  • UrlLinkFrame
  • UrlTemplate
  • @@ -1137,12 +1166,10 @@

    All Classes

  • Util
  • VersionTable
  • VideoDecoderGLSurfaceView
  • -
  • VideoDecoderInputBuffer
  • -
  • VideoDecoderOutputBuffer
  • +
  • VideoDecoderOutputBuffer
  • VideoDecoderOutputBufferRenderer
  • VideoFrameMetadataListener
  • VideoFrameReleaseHelper
  • -
  • VideoListener
  • VideoRendererEventListener
  • VideoRendererEventListener.EventDispatcher
  • VideoSize
  • diff --git a/docs/doc/reference/allpackages-index.html b/docs/doc/reference/allpackages-index.html index b1bd57364a3..aa307180e28 100644 --- a/docs/doc/reference/allpackages-index.html +++ b/docs/doc/reference/allpackages-index.html @@ -124,35 +124,27 @@

    All Packages

      -com.google.android.exoplayer2.device -  - - com.google.android.exoplayer2.drm   - -com.google.android.exoplayer2.ext.av1 -  - -com.google.android.exoplayer2.ext.cast +com.google.android.exoplayer2.ext.av1   -com.google.android.exoplayer2.ext.cronet +com.google.android.exoplayer2.ext.cast   -com.google.android.exoplayer2.ext.ffmpeg +com.google.android.exoplayer2.ext.cronet   -com.google.android.exoplayer2.ext.flac +com.google.android.exoplayer2.ext.ffmpeg   -com.google.android.exoplayer2.ext.gvr +com.google.android.exoplayer2.ext.flac   diff --git a/docs/doc/reference/com/google/android/exoplayer2/AbstractConcatenatedTimeline.html b/docs/doc/reference/com/google/android/exoplayer2/AbstractConcatenatedTimeline.html index 460a9366973..6dfc96dea18 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/AbstractConcatenatedTimeline.html +++ b/docs/doc/reference/com/google/android/exoplayer2/AbstractConcatenatedTimeline.html @@ -316,8 +316,8 @@

    Method Summary

    int -getNextWindowIndex​(int windowIndex, - int repeatMode, +getNextWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Returns the index of the window after the window at index windowIndex depending on the @@ -343,8 +343,8 @@

    Method Summary

    int -getPreviousWindowIndex​(int windowIndex, - int repeatMode, +getPreviousWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Returns the index of the window before the window at index windowIndex depending on the @@ -380,7 +380,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.Timeline

    -equals, getNextPeriodIndex, getPeriod, getPeriodCount, getPeriodPosition, getPeriodPosition, getWindow, getWindowCount, hashCode, isEmpty, isLastPeriod, toBundle, toBundle +equals, getNextPeriodIndex, getPeriod, getPeriodCount, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, getWindowCount, hashCode, isEmpty, isLastPeriod, toBundle, toBundle - +
      @@ -491,14 +491,14 @@

      getConcatenatedUid

      getNextWindowIndex

      public int getNextWindowIndex​(int windowIndex,
                                     @RepeatMode
      -                              int repeatMode,
      +                              @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                     boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getNextWindowIndex in class Timeline
      +
      getNextWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      @@ -508,7 +508,7 @@

      getNextWindowIndex

    - + @@ -254,156 +254,219 @@

    Method Summary

    +boolean +canAdvertiseSession() + +
    Returns whether the player can be used to advertise a media session.
    + + + void clearMediaItems()
    Clears the playlist.
    - + protected Player.Commands getAvailableCommands​(Player.Commands permanentAvailableCommands)
    Returns the Player.Commands available in the player.
    - + int getBufferedPercentage() -
    Returns an estimate of the percentage in the current content window or ad up to which data is +
    Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    - + long getContentDuration() -
    If Player.isPlayingAd() returns true, returns the duration of the current content - window in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    If Player.isPlayingAd() returns true, returns the duration of the current content in + milliseconds, or C.TIME_UNSET if the duration is not known.
    - + long getCurrentLiveOffset()
    Returns the offset of the current playback position from the live edge in milliseconds, or - C.TIME_UNSET if the current window isn't live or the - offset is unknown.
    + C.TIME_UNSET if the current MediaItem Player.isCurrentMediaItemLive() isn't + live} or the offset is unknown.
    - + Object getCurrentManifest()
    Returns the current manifest.
    - + MediaItem getCurrentMediaItem() -
    Returns the media item of the current window in the timeline.
    +
    Returns the currently playing MediaItem.
    - + +int +getCurrentWindowIndex() + +
    Deprecated.
    + + + MediaItem getMediaItemAt​(int index)
    Returns the MediaItem at the given index.
    - + int getMediaItemCount()
    Returns the number of media items in the playlist.
    - + +int +getNextMediaItemIndex() + +
    Returns the index of the MediaItem that will be played if Player.seekToNextMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    + + + int getNextWindowIndex() -
    Returns the index of the window that will be played if Player.seekToNextWindow() is called, - which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + +int +getPreviousMediaItemIndex() + +
    Returns the index of the MediaItem that will be played if Player.seekToPreviousMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    + + + int getPreviousWindowIndex() -
    Returns the index of the window that will be played if Player.seekToPreviousWindow() is - called, which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + boolean hasNext()
    Deprecated.
    - + +boolean +hasNextMediaItem() + +
    Returns whether a next MediaItem exists, which may depend on the current repeat mode + and whether shuffle mode is enabled.
    + + + boolean hasNextWindow() -
    Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled.
    +
    Deprecated.
    - + boolean hasPrevious()
    Deprecated.
    - + boolean -hasPreviousWindow() +hasPreviousMediaItem() -
    Returns whether a previous window exists, which may depend on the current repeat mode and +
    Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.
    - + boolean -isCommandAvailable​(int command) +hasPreviousWindow() + +
    Deprecated.
    + + + +boolean +isCommandAvailable​(@com.google.android.exoplayer2.Player.Command int command)
    Returns whether the provided Player.Command is available.
    - + +boolean +isCurrentMediaItemDynamic() + +
    Returns whether the current MediaItem is dynamic (may change when the Timeline + is updated), or false if the Timeline is empty.
    + + + +boolean +isCurrentMediaItemLive() + +
    Returns whether the current MediaItem is live, or false if the Timeline + is empty.
    + + + +boolean +isCurrentMediaItemSeekable() + +
    Returns whether the current MediaItem is seekable, or false if the Timeline is empty.
    + + + boolean isCurrentWindowDynamic() -
    Returns whether the current window is dynamic, or false if the Timeline is - empty.
    +
    Deprecated.
    - + boolean isCurrentWindowLive() -
    Returns whether the current window is live, or false if the Timeline is empty.
    +
    Deprecated.
    - + boolean isCurrentWindowSeekable() -
    Returns whether the current window is seekable, or false if the Timeline is - empty.
    +
    Deprecated.
    - + boolean isPlaying()
    Returns whether the player is playing, i.e.
    - + void moveMediaItem​(int currentIndex, int newIndex) @@ -411,107 +474,122 @@

    Method Summary

    Moves the media item at the current index to the new index.
    - + void next()
    Deprecated.
    - + void pause()
    Pauses playback.
    - + void play()
    Resumes playback as soon as Player.getPlaybackState() == Player.STATE_READY.
    - + void previous()
    Deprecated.
    - + void removeMediaItem​(int index)
    Removes the media item at the given index of the playlist.
    - + void seekBack() -
    Seeks back in the current window by Player.getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by Player.getSeekBackIncrement() milliseconds.
    - + void seekForward() -
    Seeks forward in the current window by Player.getSeekForwardIncrement() milliseconds.
    +
    Seeks forward in the current MediaItem by Player.getSeekForwardIncrement() + milliseconds.
    - + void seekTo​(long positionMs) -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    - + void seekToDefaultPosition() -
    Seeks to the default position associated with the current window.
    +
    Seeks to the default position associated with the current MediaItem.
    - + void -seekToDefaultPosition​(int windowIndex) +seekToDefaultPosition​(int mediaItemIndex) -
    Seeks to the default position associated with the specified window.
    +
    Seeks to the default position associated with the specified MediaItem.
    - + void seekToNext() -
    Seeks to a later position in the current or next window (if available).
    +
    Seeks to a later position in the current or next MediaItem (if available).
    - + +void +seekToNextMediaItem() + +
    Seeks to the default position of the next MediaItem, which may depend on the current + repeat mode and whether shuffle mode is enabled.
    + + + void seekToNextWindow() -
    Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled.
    +
    Deprecated.
    - + void seekToPrevious() -
    Seeks to an earlier position in the current or previous window (if available).
    +
    Seeks to an earlier position in the current or previous MediaItem (if available).
    - + +void +seekToPreviousMediaItem() + +
    Seeks to the default position of the previous MediaItem, which may depend on the + current repeat mode and whether shuffle mode is enabled.
    + + + void seekToPreviousWindow() -
    Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + void setMediaItem​(MediaItem mediaItem) @@ -519,7 +597,7 @@

    Method Summary

    default position.
    - + void setMediaItem​(MediaItem mediaItem, boolean resetPosition) @@ -527,7 +605,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItem​(MediaItem mediaItem, long startPositionMs) @@ -535,7 +613,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItems​(List<MediaItem> mediaItems) @@ -543,20 +621,13 @@

    Method Summary

    the default position.
    - + void setPlaybackSpeed​(float speed)
    Changes the rate at which playback occurs.
    - -void -stop() - -
    Stops playback without resetting the player.
    - - @@ -679,7 +750,7 @@

    setMediaItem

    Parameters:
    mediaItem - The new MediaItem.
    resetPosition - Whether the playback position should be reset to the default position. If - false, playback will start from the position defined by Player.getCurrentWindowIndex() + false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
    @@ -808,28 +879,27 @@

    clearMediaItems

    - +
    Specified by:
    -
    isCommandAvailable in interface Player
    +
    isCommandAvailable in interface Player
    Parameters:
    command - A Player.Command.
    Returns:
    @@ -839,6 +909,22 @@

    isCommandAvailable

    + + + +
      +
    • +

      canAdvertiseSession

      +
      public final boolean canAdvertiseSession()
      +
      Returns whether the player can be used to advertise a media session. + +

      BasePlayer and its descendents will return true.

      +
      +
      Specified by:
      +
      canAdvertiseSession in interface Player
      +
      +
    • +
    @@ -905,9 +991,9 @@

    isPlaying

    seekToDefaultPosition

    public final void seekToDefaultPosition()
    Description copied from interface: Player
    -
    Seeks to the default position associated with the current window. The position can depend on - the type of media being played. For live streams it will typically be the live edge of the - window. For other streams it will typically be the start of the window.
    +
    Seeks to the default position associated with the current MediaItem. The position can + depend on the type of media being played. For live streams it will typically be the live edge. + For other streams it will typically be the start.
    Specified by:
    seekToDefaultPosition in interface Player
    @@ -920,17 +1006,17 @@

    seekToDefaultPosition

    • seekToDefaultPosition

      -
      public final void seekToDefaultPosition​(int windowIndex)
      +
      public final void seekToDefaultPosition​(int mediaItemIndex)
      Description copied from interface: Player
      -
      Seeks to the default position associated with the specified window. The position can depend on - the type of media being played. For live streams it will typically be the live edge of the - window. For other streams it will typically be the start of the window.
      +
      Seeks to the default position associated with the specified MediaItem. The position can + depend on the type of media being played. For live streams it will typically be the live edge. + For other streams it will typically be the start.
      Specified by:
      seekToDefaultPosition in interface Player
      Parameters:
      -
      windowIndex - The index of the window whose associated default position should be seeked - to.
      +
      mediaItemIndex - The index of the MediaItem whose associated default position + should be seeked to.
    @@ -942,13 +1028,13 @@

    seekToDefaultPosition

    seekTo

    public final void seekTo​(long positionMs)
    Description copied from interface: Player
    -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    Specified by:
    seekTo in interface Player
    Parameters:
    -
    positionMs - The seek position in the current window, or C.TIME_UNSET to seek to - the window's default position.
    +
    positionMs - The seek position in the current MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
    @@ -960,7 +1046,7 @@

    seekTo

    seekBack

    public final void seekBack()
    Description copied from interface: Player
    -
    Seeks back in the current window by Player.getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by Player.getSeekBackIncrement() milliseconds.
    Specified by:
    seekBack in interface Player
    @@ -975,7 +1061,8 @@

    seekBack

    seekForward

    public final void seekForward()
    Description copied from interface: Player
    -
    Seeks forward in the current window by Player.getSeekForwardIncrement() milliseconds.
    +
    Seeks forward in the current MediaItem by Player.getSeekForwardIncrement() + milliseconds.
    Specified by:
    seekForward in interface Player
    @@ -1003,9 +1090,24 @@

    hasPrevious

    • hasPreviousWindow

      -
      public final boolean hasPreviousWindow()
      -
      Description copied from interface: Player
      -
      Returns whether a previous window exists, which may depend on the current repeat mode and +
      @Deprecated
      +public final boolean hasPreviousWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      hasPreviousWindow in interface Player
      +
      +
    • +
    + + + +
      +
    • +

      hasPreviousMediaItem

      +
      public final boolean hasPreviousMediaItem()
      +
      Description copied from interface: Player
      +
      Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.

      Note: When the repeat mode is Player.REPEAT_MODE_ONE, this method behaves the same as when @@ -1013,7 +1115,7 @@

      hasPreviousWindow

      details.
      Specified by:
      -
      hasPreviousWindow in interface Player
      +
      hasPreviousMediaItem in interface Player
    @@ -1038,18 +1140,32 @@

    previous

    • seekToPreviousWindow

      -
      public final void seekToPreviousWindow()
      -
      Description copied from interface: Player
      -
      Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled. Does nothing if Player.hasPreviousWindow() is - false. +
      @Deprecated
      +public final void seekToPreviousWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      seekToPreviousWindow in interface Player
      +
      +
    • +
    + + + + @@ -1061,18 +1177,20 @@

    seekToPreviousWindow

    seekToPrevious

    public final void seekToPrevious()
    Description copied from interface: Player
    -
    Seeks to an earlier position in the current or previous window (if available). More precisely: +
    Seeks to an earlier position in the current or previous MediaItem (if available). More + precisely:
    Specified by:
    @@ -1101,17 +1219,32 @@

    hasNext

    • hasNextWindow

      -
      public final boolean hasNextWindow()
      -
      Description copied from interface: Player
      -
      Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled. +
      @Deprecated
      +public final boolean hasNextWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      hasNextWindow in interface Player
      +
      +
    • +
    + + + + @@ -1136,17 +1269,33 @@

    next

    • seekToNextWindow

      -
      public final void seekToNextWindow()
      -
      Description copied from interface: Player
      -
      Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled. Does nothing if Player.hasNextWindow() is false. +
      @Deprecated
      +public final void seekToNextWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      seekToNextWindow in interface Player
      +
      +
    • +
    + + + + @@ -1158,14 +1307,15 @@

    seekToNextWindow

    seekToNext

    public final void seekToNext()
    Description copied from interface: Player
    -
    Seeks to a later position in the current or next window (if available). More precisely: +
    Seeks to a later position in the current or next MediaItem (if available). More + precisely:
    • If the timeline is empty or seeking is not possible, does nothing. -
    • Otherwise, if a next window exists, seeks to the default - position of the next window. -
    • Otherwise, if the current window is live and has not - ended, seeks to the live edge of the current window. +
    • Otherwise, if a next media item exists, seeks to the default + position of the next MediaItem. +
    • Otherwise, if the current MediaItem is live and + has not ended, seeks to the live edge of the current MediaItem.
    • Otherwise, does nothing.
    @@ -1195,26 +1345,18 @@

    setPlaybackSpeed

    - +
    • -

      stop

      -
      public final void stop()
      -
      Description copied from interface: Player
      -
      Stops playback without resetting the player. Use Player.pause() rather than this method if - the intention is to pause playback. - -

      Calling this method will cause the playback state to transition to Player.STATE_IDLE. The - player instance can still be used, and Player.release() must still be called on the player if - it's no longer required. - -

      Calling this method does not clear the playlist, reset the playback position or the playback - error.

      +

      getCurrentWindowIndex

      +
      @Deprecated
      +public final int getCurrentWindowIndex()
      +
      Deprecated.
      Specified by:
      -
      stop in interface Player
      +
      getCurrentWindowIndex in interface Player
    @@ -1224,17 +1366,33 @@

    stop

    + + + + @@ -1244,18 +1402,33 @@

    getNextWindowIndex

    + + + + @@ -1268,13 +1441,12 @@

    getCurrentMediaItem

    @Nullable
     public final MediaItem getCurrentMediaItem()
    Description copied from interface: Player
    -
    Returns the media item of the current window in the timeline. May be null if the timeline is - empty.
    +
    Returns the currently playing MediaItem. May be null if the timeline is empty.
    Specified by:
    getCurrentMediaItem in interface Player
    See Also:
    -
    Player.Listener.onMediaItemTransition(MediaItem, int)
    +
    Player.Listener.onMediaItemTransition(MediaItem, int)
    @@ -1332,7 +1504,7 @@

    getCurrentManifest

    getBufferedPercentage

    public final int getBufferedPercentage()
    Description copied from interface: Player
    -
    Returns an estimate of the percentage in the current content window or ad up to which data is +
    Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    Specified by:
    @@ -1346,13 +1518,28 @@

    getBufferedPercentage

    • isCurrentWindowDynamic

      -
      public final boolean isCurrentWindowDynamic()
      -
      Description copied from interface: Player
      -
      Returns whether the current window is dynamic, or false if the Timeline is - empty.
      +
      @Deprecated
      +public final boolean isCurrentWindowDynamic()
      +
      Deprecated.
      Specified by:
      isCurrentWindowDynamic in interface Player
      +
      +
    • +
    + + + +
    - + static int DEFAULT_MIN_BUFFER_SIZE
    The buffer size in bytes that will be used as a minimum target buffer in all cases.
    - + static int DEFAULT_MUXED_BUFFER_SIZE
    A default size in bytes for a muxed buffer (e.g.
    - + static boolean DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS
    The default prioritization of buffer time constraints over size constraints.
    - + static boolean DEFAULT_RETAIN_BACK_BUFFER_FROM_KEYFRAME
    The default for whether the back buffer is retained from the previous keyframe.
    - + static int DEFAULT_TARGET_BUFFER_BYTES
    The default target buffer size in bytes.
    - + static int DEFAULT_TEXT_BUFFER_SIZE
    A default size in bytes for a text buffer.
    - + static int DEFAULT_VIDEO_BUFFER_SIZE @@ -637,6 +644,20 @@

    DEFAULT_CAMERA_MOTION_BUFFER_SIZE

    + + + +
      +
    • +

      DEFAULT_IMAGE_BUFFER_SIZE

      +
      public static final int DEFAULT_IMAGE_BUFFER_SIZE
      +
      A default size in bytes for an image buffer.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/DefaultRenderersFactory.html b/docs/doc/reference/com/google/android/exoplayer2/DefaultRenderersFactory.html index 26c599093b7..dd8cb8f3f71 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/DefaultRenderersFactory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/DefaultRenderersFactory.html @@ -363,28 +363,30 @@

    Method Summary

    TextOutput textRendererOutput, MetadataOutput metadataRendererOutput)
    -
    Builds the Renderer instances for a SimpleExoPlayer.
    +
    Builds the Renderer instances for an ExoPlayer.
    DefaultRenderersFactory -experimentalSetAsynchronousBufferQueueingEnabled​(boolean enabled) +experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled​(boolean enabled) -
    Enable asynchronous buffer queueing for both MediaCodecAudioRenderer and MediaCodecVideoRenderer instances.
    +
    Enable synchronizing codec interactions with asynchronous buffer queueing.
    DefaultRenderersFactory -experimentalSetForceAsyncQueueingSynchronizationWorkaround​(boolean enabled) +forceDisableMediaCodecAsynchronousQueueing() -
    Enable the asynchronous queueing synchronization workaround.
    +
    Disables MediaCodecRenderer instances from + operating their MediaCodec in asynchronous mode and perform asynchronous queueing.
    DefaultRenderersFactory -experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled​(boolean enabled) +forceEnableMediaCodecAsynchronousQueueing() -
    Enable synchronizing codec interactions with asynchronous buffer queueing.
    +
    Enables MediaCodecRenderer instances to + operate their MediaCodec in asynchronous mode and perform asynchronous queueing.
    @@ -625,41 +627,35 @@

    setExtensionRendererMode

    - +
    • -

      experimentalSetAsynchronousBufferQueueingEnabled

      -
      public DefaultRenderersFactory experimentalSetAsynchronousBufferQueueingEnabled​(boolean enabled)
      -
      Enable asynchronous buffer queueing for both MediaCodecAudioRenderer and MediaCodecVideoRenderer instances. +

      forceEnableMediaCodecAsynchronousQueueing

      +
      public DefaultRenderersFactory forceEnableMediaCodecAsynchronousQueueing()
      +
      Enables MediaCodecRenderer instances to + operate their MediaCodec in asynchronous mode and perform asynchronous queueing. -

      This method is experimental, and will be renamed or removed in a future release.

      +

      This feature can be enabled only on devices with API versions >= 23. For devices with + older API versions, this method is a no-op.

      -
      Parameters:
      -
      enabled - Whether asynchronous queueing is enabled.
      Returns:
      This factory, for convenience.
    - +
    • -

      experimentalSetForceAsyncQueueingSynchronizationWorkaround

      -
      public DefaultRenderersFactory experimentalSetForceAsyncQueueingSynchronizationWorkaround​(boolean enabled)
      -
      Enable the asynchronous queueing synchronization workaround. - -

      When enabled, the queueing threads for MediaCodec instances will synchronize on a - shared lock when submitting buffers to the respective MediaCodec. - -

      This method is experimental, and will be renamed or removed in a future release.

      +

      forceDisableMediaCodecAsynchronousQueueing

      +
      public DefaultRenderersFactory forceDisableMediaCodecAsynchronousQueueing()
      +
      Disables MediaCodecRenderer instances from + operating their MediaCodec in asynchronous mode and perform asynchronous queueing. + MediaCodec instances will be operated synchronous mode.
      -
      Parameters:
      -
      enabled - Whether the asynchronous queueing synchronization workaround is enabled by - default.
      Returns:
      This factory, for convenience.
      @@ -825,7 +821,7 @@

      createRenderers

      TextOutput textRendererOutput, MetadataOutput metadataRendererOutput)
      Description copied from interface: RenderersFactory
      -
      Builds the Renderer instances for a SimpleExoPlayer.
      +
      Builds the Renderer instances for an ExoPlayer.
      Specified by:
      createRenderers in interface RenderersFactory
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/device/DeviceInfo.PlaybackType.html b/docs/doc/reference/com/google/android/exoplayer2/DeviceInfo.PlaybackType.html similarity index 75% rename from docs/doc/reference/com/google/android/exoplayer2/device/DeviceInfo.PlaybackType.html rename to docs/doc/reference/com/google/android/exoplayer2/DeviceInfo.PlaybackType.html index 89f4ac261d0..0c1598ddbfe 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/device/DeviceInfo.PlaybackType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/DeviceInfo.PlaybackType.html @@ -4,16 +4,16 @@ DeviceInfo.PlaybackType (ExoPlayer library) - - - - - + + + + + - - + +
    - + +void +removeAnalyticsListener​(AnalyticsListener listener) + +
    Removes an AnalyticsListener.
    + + + void removeAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener)
    Removes a listener of audio offload events.
    - + +void +removeListener​(Player.EventListener listener) + + + + + void retry() @@ -520,7 +651,36 @@

    Method Summary

    - + +void +setAudioAttributes​(AudioAttributes audioAttributes, + boolean handleAudioFocus) + +
    Sets the attributes for audio playback, used by the underlying audio track.
    + + + +void +setAudioSessionId​(int audioSessionId) + +
    Sets the ID of the audio session to attach to the underlying AudioTrack.
    + + + +void +setAuxEffectInfo​(AuxEffectInfo auxEffectInfo) + +
    Sets information on an auxiliary audio effect to attach to the underlying audio track.
    + + + +void +setCameraMotionListener​(CameraMotionListener listener) + +
    Sets a listener of camera motion events.
    + + + void setForegroundMode​(boolean foregroundMode) @@ -528,7 +688,24 @@

    Method Summary

    even when in the idle state. - + +void +setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy) + +
    Sets whether the player should pause automatically when audio is rerouted from a headset to + device speakers.
    + + + +void +setHandleWakeLock​(boolean handleWakeLock) + +
    Deprecated. +
    Use setWakeMode(int) instead.
    +
    + + + void setMediaSource​(MediaSource mediaSource) @@ -536,7 +713,7 @@

    Method Summary

    default position. - + void setMediaSource​(MediaSource mediaSource, boolean resetPosition) @@ -544,7 +721,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaSource.
    - + void setMediaSource​(MediaSource mediaSource, long startPositionMs) @@ -552,7 +729,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaSource.
    - + void setMediaSources​(List<MediaSource> mediaSources) @@ -560,7 +737,7 @@

    Method Summary

    position to the default position. - + void setMediaSources​(List<MediaSource> mediaSources, boolean resetPosition) @@ -568,43 +745,95 @@

    Method Summary

    Clears the playlist and adds the specified MediaSources.
    - + void setMediaSources​(List<MediaSource> mediaSources, - int startWindowIndex, + int startMediaItemIndex, long startPositionMs)
    Clears the playlist and adds the specified MediaSources.
    - + void setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems)
    Sets whether to pause playback at the end of each media item.
    - + +void +setPriorityTaskManager​(PriorityTaskManager priorityTaskManager) + +
    Sets a PriorityTaskManager, or null to clear a previously set priority task manager.
    + + + void setSeekParameters​(SeekParameters seekParameters)
    Sets the parameters that control how seek operations are performed.
    - + void setShuffleOrder​(ShuffleOrder shuffleOrder)
    Sets the shuffle order.
    + +void +setSkipSilenceEnabled​(boolean skipSilenceEnabled) + +
    Sets whether skipping silences in the audio stream is enabled.
    + + + +void +setThrowsWhenUsingWrongThread​(boolean throwsWhenUsingWrongThread) + +
    Deprecated. +
    Disabling the enforcement can result in hard-to-detect bugs.
    +
    + + + +void +setVideoChangeFrameRateStrategy​(int videoChangeFrameRateStrategy) + +
    Sets a C.VideoChangeFrameRateStrategy that will be used by the player when provided + with a video output Surface.
    + + + +void +setVideoFrameMetadataListener​(VideoFrameMetadataListener listener) + +
    Sets a listener to receive video frame metadata events.
    + + + +void +setVideoScalingMode​(int videoScalingMode) + + + + + +void +setWakeMode​(@com.google.android.exoplayer2.C.WakeMode int wakeMode) + +
    Sets how the player should keep the device awake for playback when the screen is off.
    + + @@ -625,7 +854,7 @@

    Field Detail

    -
      +
      • DEFAULT_RELEASE_TIMEOUT_MS

        static final long DEFAULT_RELEASE_TIMEOUT_MS
        @@ -637,6 +866,20 @@

        DEFAULT_RELEASE_TIMEOUT_MS

      + + + +
        +
      • +

        DEFAULT_DETACH_SURFACE_TIMEOUT_MS

        +
        static final long DEFAULT_DETACH_SURFACE_TIMEOUT_MS
        +
        The default timeout for detaching a surface from the player, in milliseconds.
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
    @@ -673,8 +916,12 @@

    getPlayerError

  • getAudioComponent

    @Nullable
    +@Deprecated
     ExoPlayer.AudioComponent getAudioComponent()
    -
    Returns the component of this player for audio output, or null if audio is not supported.
    +
    Deprecated. +
    Use ExoPlayer, as the ExoPlayer.AudioComponent methods are defined by that + interface.
    +
  • @@ -684,8 +931,12 @@

    getAudioComponent

  • getVideoComponent

    @Nullable
    +@Deprecated
     ExoPlayer.VideoComponent getVideoComponent()
    -
    Returns the component of this player for video output, or null if video is not supported.
    +
    Deprecated. +
    Use ExoPlayer, as the ExoPlayer.VideoComponent methods are defined by that + interface.
    +
  • @@ -695,30 +946,66 @@

    getVideoComponent

  • getTextComponent

    @Nullable
    +@Deprecated
     ExoPlayer.TextComponent getTextComponent()
    -
    Returns the component of this player for text output, or null if text is not supported.
    +
    Deprecated. +
    Use Player, as the ExoPlayer.TextComponent methods are defined by that + interface.
    +
  • - + - + + + + + @@ -749,6 +1036,44 @@

    removeAudioOffloadListener

    +
    + + + + + + +
      +
    • +

      addAnalyticsListener

      +
      void addAnalyticsListener​(AnalyticsListener listener)
      +
      Adds an AnalyticsListener to receive analytics events.
      +
      +
      Parameters:
      +
      listener - The listener to be added.
      +
      +
    • +
    + + + +
      +
    • +

      removeAnalyticsListener

      +
      void removeAnalyticsListener​(AnalyticsListener listener)
      +
      Removes an AnalyticsListener.
      +
      +
      Parameters:
      +
      listener - The listener to be removed.
      +
      +
    • +
    @@ -765,7 +1090,7 @@

    getRendererCount

    • getRendererType

      -
      int getRendererType​(int index)
      +
      @com.google.android.exoplayer2.C.TrackType int getRendererType​(int index)
      Returns the track type that the renderer at a given index handles.

      For example, a video renderer will return C.TRACK_TYPE_VIDEO, an audio renderer will @@ -774,7 +1099,7 @@

      getRendererType

      Parameters:
      index - The index of the renderer.
      Returns:
      -
      One of the TRACK_TYPE_* constants defined in C.
      +
      The track type that the renderer handles.
    @@ -879,7 +1204,7 @@

    setMediaSources

    mediaSources - The new MediaSources.
    resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined - by Player.getCurrentWindowIndex() and Player.getCurrentPosition().
    + by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition(). @@ -890,17 +1215,16 @@

    setMediaSources

  • setMediaSources

    void setMediaSources​(List<MediaSource> mediaSources,
    -                     int startWindowIndex,
    +                     int startMediaItemIndex,
                          long startPositionMs)
    Clears the playlist and adds the specified MediaSources.
    Parameters:
    mediaSources - The new MediaSources.
    -
    startWindowIndex - The window index to start playback from. If C.INDEX_UNSET is - passed, the current position is not reset.
    -
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given window is used. In any case, if - startWindowIndex is set to C.INDEX_UNSET, this parameter is ignored and the - position is not reset at all.
    +
    startMediaItemIndex - The media item index to start playback from. If C.INDEX_UNSET is passed, the current position is not reset.
    +
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given media item is used. In any case, + if startMediaItemIndex is set to C.INDEX_UNSET, this parameter is ignored + and the position is not reset at all.
  • @@ -948,7 +1272,7 @@

    setMediaSource

    Parameters:
    mediaSource - The new MediaSource.
    resetPosition - Whether the playback position should be reset to the default position. If - false, playback will start from the position defined by Player.getCurrentWindowIndex() + false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
    @@ -1027,6 +1351,231 @@

    setShuffleOrder

    + + + +
      +
    • +

      setAudioAttributes

      +
      void setAudioAttributes​(AudioAttributes audioAttributes,
      +                        boolean handleAudioFocus)
      +
      Sets the attributes for audio playback, used by the underlying audio track. If not set, the + default audio attributes will be used. They are suitable for general media playback. + +

      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. + +

      If tunneling is enabled by the track selector, the specified audio attributes will be + ignored, but they will take effect if audio is later played without tunneling. + +

      If the device is running a build before platform API version 21, audio attributes cannot be + set directly on the underlying audio track. In this case, the usage will be mapped onto an + equivalent stream type using Util.getStreamTypeForAudioUsage(int). + +

      If audio focus should be handled, the AudioAttributes.usage must be C.USAGE_MEDIA or C.USAGE_GAME. Other usages will throw an IllegalArgumentException.

      +
      +
      Parameters:
      +
      audioAttributes - The attributes to use for audio playback.
      +
      handleAudioFocus - True if the player should handle audio focus, false otherwise.
      +
      +
    • +
    + + + +
      +
    • +

      setAudioSessionId

      +
      void setAudioSessionId​(int audioSessionId)
      +
      Sets the ID of the audio session to attach to the underlying AudioTrack. + +

      The audio session ID can be generated using Util.generateAudioSessionIdV21(Context) + for API 21+.

      +
      +
      Parameters:
      +
      audioSessionId - The audio session ID, or C.AUDIO_SESSION_ID_UNSET if it should be + generated by the framework.
      +
      +
    • +
    + + + +
      +
    • +

      getAudioSessionId

      +
      int getAudioSessionId()
      +
      Returns the audio session identifier, or C.AUDIO_SESSION_ID_UNSET if not set.
      +
    • +
    + + + +
      +
    • +

      setAuxEffectInfo

      +
      void setAuxEffectInfo​(AuxEffectInfo auxEffectInfo)
      +
      Sets information on an auxiliary audio effect to attach to the underlying audio track.
      +
    • +
    + + + +
      +
    • +

      clearAuxEffectInfo

      +
      void clearAuxEffectInfo()
      +
      Detaches any previously attached auxiliary audio effect from the underlying audio track.
      +
    • +
    + + + +
      +
    • +

      setSkipSilenceEnabled

      +
      void setSkipSilenceEnabled​(boolean skipSilenceEnabled)
      +
      Sets whether skipping silences in the audio stream is enabled.
      +
      +
      Parameters:
      +
      skipSilenceEnabled - Whether skipping silences in the audio stream is enabled.
      +
      +
    • +
    + + + +
      +
    • +

      getSkipSilenceEnabled

      +
      boolean getSkipSilenceEnabled()
      +
      Returns whether skipping silences in the audio stream is enabled.
      +
    • +
    + + + + + + + + + + + + + + + + + + + +
      +
    • +

      setVideoFrameMetadataListener

      +
      void setVideoFrameMetadataListener​(VideoFrameMetadataListener listener)
      +
      Sets a listener to receive video frame metadata events. + +

      This method is intended to be called by the same component that sets the Surface + onto which video will be rendered. If using ExoPlayer's standard UI components, this method + should not be called directly from application code.

      +
      +
      Parameters:
      +
      listener - The listener.
      +
      +
    • +
    + + + +
      +
    • +

      clearVideoFrameMetadataListener

      +
      void clearVideoFrameMetadataListener​(VideoFrameMetadataListener listener)
      +
      Clears the listener which receives video frame metadata events if it matches the one passed. + Else does nothing.
      +
      +
      Parameters:
      +
      listener - The listener to clear.
      +
      +
    • +
    + + + +
      +
    • +

      setCameraMotionListener

      +
      void setCameraMotionListener​(CameraMotionListener listener)
      +
      Sets a listener of camera motion events.
      +
      +
      Parameters:
      +
      listener - The listener.
      +
      +
    • +
    + + + +
      +
    • +

      clearCameraMotionListener

      +
      void clearCameraMotionListener​(CameraMotionListener listener)
      +
      Clears the listener which receives camera motion events if it matches the one passed. Else does + nothing.
      +
      +
      Parameters:
      +
      listener - The listener to clear.
      +
      +
    • +
    @@ -1037,8 +1586,8 @@

    createMessage

    Creates a message that can be sent to a PlayerMessage.Target. By default, the message will be delivered immediately without blocking on the playback thread. The default PlayerMessage.getType() is 0 and the default PlayerMessage.getPayload() is null. If a position is specified with PlayerMessage.setPosition(long), the message will be - delivered at this position in the current window defined by Player.getCurrentWindowIndex(). - Alternatively, the message can be sent at a specific window using PlayerMessage.setPosition(int, long).
    + delivered at this position in the current media item defined by Player.getCurrentMediaItemIndex(). Alternatively, the message can be sent at a specific mediaItem + using PlayerMessage.setPosition(int, long). @@ -1112,7 +1661,7 @@

    setPauseAtEndOfMediaItems

    void setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems)
    +

    This means the player will pause at the end of each window in the current timeline. Listeners will be informed by a call to Player.Listener.onPlayWhenReadyChanged(boolean, int) with the reason Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM when this happens.

    Parameters:
    pauseAtEndOfMediaItems - Whether to pause playback at the end of each media item.
    @@ -1133,6 +1682,143 @@

    getPauseAtEndOfMediaItems

    + + + +
      +
    • +

      getAudioFormat

      +
      @Nullable
      +Format getAudioFormat()
      +
      Returns the audio format currently being played, or null if no audio is being played.
      +
    • +
    + + + +
      +
    • +

      getVideoFormat

      +
      @Nullable
      +Format getVideoFormat()
      +
      Returns the video format currently being played, or null if no video is being played.
      +
    • +
    + + + +
      +
    • +

      getAudioDecoderCounters

      +
      @Nullable
      +DecoderCounters getAudioDecoderCounters()
      +
      Returns DecoderCounters for audio, or null if no audio is being played.
      +
    • +
    + + + +
      +
    • +

      getVideoDecoderCounters

      +
      @Nullable
      +DecoderCounters getVideoDecoderCounters()
      +
      Returns DecoderCounters for video, or null if no video is being played.
      +
    • +
    + + + +
      +
    • +

      setHandleAudioBecomingNoisy

      +
      void setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy)
      +
      Sets whether the player should pause automatically when audio is rerouted from a headset to + device speakers. See the audio + becoming noisy documentation for more information.
      +
      +
      Parameters:
      +
      handleAudioBecomingNoisy - Whether the player should pause automatically when audio is + rerouted from a headset to device speakers.
      +
      +
    • +
    + + + +
      +
    • +

      setHandleWakeLock

      +
      @Deprecated
      +void setHandleWakeLock​(boolean handleWakeLock)
      +
      Deprecated. +
      Use setWakeMode(int) instead.
      +
      +
    • +
    + + + +
      +
    • +

      setWakeMode

      +
      void setWakeMode​(@WakeMode
      +                 @com.google.android.exoplayer2.C.WakeMode int wakeMode)
      +
      Sets how the player should keep the device awake for playback when the screen is off. + +

      Enabling this feature requires the Manifest.permission.WAKE_LOCK permission. + It should be used together with a foreground Service for use cases where + playback occurs and the screen is off (e.g. background audio playback). It is not useful when + the screen will be kept on during playback (e.g. foreground video playback). + +

      When enabled, the locks (PowerManager.WakeLock / WifiManager.WifiLock) will be held whenever the player is in the Player.STATE_READY or Player.STATE_BUFFERING states with playWhenReady = true. The locks + held depends on the specified C.WakeMode.

      +
      +
      Parameters:
      +
      wakeMode - The C.WakeMode option to keep the device awake during playback.
      +
      +
    • +
    + + + +
      +
    • +

      setPriorityTaskManager

      +
      void setPriorityTaskManager​(@Nullable
      +                            PriorityTaskManager priorityTaskManager)
      +
      Sets a PriorityTaskManager, or null to clear a previously set priority task manager. + +

      The priority C.PRIORITY_PLAYBACK will be set while the player is loading.

      +
      +
      Parameters:
      +
      priorityTaskManager - The PriorityTaskManager, or null to clear a previously set + priority task manager.
      +
      +
    • +
    + + + +
      +
    • +

      setThrowsWhenUsingWrongThread

      +
      @Deprecated
      +void setThrowsWhenUsingWrongThread​(boolean throwsWhenUsingWrongThread)
      +
      Deprecated. +
      Disabling the enforcement can result in hard-to-detect bugs. Do not use this method + except to ease the transition while wrong thread access problems are fixed.
      +
      +
      Sets whether the player should throw an IllegalStateException when methods are called + from a thread other than the one associated with Player.getApplicationLooper(). + +

      The default is true and this method will be removed in the future.

      +
      +
      Parameters:
      +
      throwsWhenUsingWrongThread - Whether to throw when methods are called from a wrong thread.
      +
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/ExoPlayerLibraryInfo.html b/docs/doc/reference/com/google/android/exoplayer2/ExoPlayerLibraryInfo.html index b191655a6c3..a5f9f4b29b9 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/ExoPlayerLibraryInfo.html +++ b/docs/doc/reference/com/google/android/exoplayer2/ExoPlayerLibraryInfo.html @@ -131,7 +131,7 @@

    Class ExoPlayerLibraryInfo<
    public final class ExoPlayerLibraryInfo
     extends Object
    -
    Information about the ExoPlayer library.
    +
    Information about the media libraries.
    @@ -156,24 +156,7 @@

    Field Summary

    static boolean ASSERTIONS_ENABLED -
    Whether the library was compiled with Assertions - checks enabled.
    - - - -static String -DEFAULT_USER_AGENT - -
    Deprecated. -
    ExoPlayer now uses the user agent of the underlying network stack by default.
    -
    - - - -static boolean -GL_ASSERTIONS_ENABLED - -
    Whether an exception should be thrown in case of an OpenGl error.
    +
    Whether the library was compiled with Assertions checks enabled.
    @@ -187,8 +170,7 @@

    Field Summary

    static boolean TRACE_ENABLED -
    Whether the library was compiled with TraceUtil - trace enabled.
    +
    Whether the library was compiled with TraceUtil trace enabled.
    @@ -209,7 +191,7 @@

    Field Summary

    static String VERSION_SLASHY -
    The version of the library expressed as "ExoPlayerLib/" + VERSION.
    +
    The version of the library expressed as TAG + "/" + VERSION.
    @@ -303,7 +285,7 @@

    VERSION

  • VERSION_SLASHY

    public static final String VERSION_SLASHY
    -
    The version of the library expressed as "ExoPlayerLib/" + VERSION.
    +
    The version of the library expressed as TAG + "/" + VERSION.
    See Also:
    Constant Field Values
    @@ -328,20 +310,6 @@

    VERSION_INT

  • - - - -
      -
    • -

      DEFAULT_USER_AGENT

      -
      @Deprecated
      -public static final String DEFAULT_USER_AGENT
      -
      Deprecated. -
      ExoPlayer now uses the user agent of the underlying network stack by default.
      -
      -
      The default user agent for requests made by the library.
      -
    • -
    @@ -349,28 +317,13 @@

    DEFAULT_USER_AGENT

  • ASSERTIONS_ENABLED

    public static final boolean ASSERTIONS_ENABLED
    -
    Whether the library was compiled with Assertions - checks enabled.
    +
    Whether the library was compiled with Assertions checks enabled.
    See Also:
    Constant Field Values
  • - - - -
      -
    • -

      GL_ASSERTIONS_ENABLED

      -
      public static final boolean GL_ASSERTIONS_ENABLED
      -
      Whether an exception should be thrown in case of an OpenGl error.
      -
      -
      See Also:
      -
      Constant Field Values
      -
      -
    • -
    @@ -378,8 +331,7 @@

    GL_ASSERTIONS_ENABLED

  • TRACE_ENABLED

    public static final boolean TRACE_ENABLED
    -
    Whether the library was compiled with TraceUtil - trace enabled.
    +
    Whether the library was compiled with TraceUtil trace enabled.
    See Also:
    Constant Field Values
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Format.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/Format.Builder.html index a2b33749a8a..4dc4edf5dcc 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Format.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Format.Builder.html @@ -234,30 +234,30 @@

    Method Summary

    Format.Builder -setDrmInitData​(DrmInitData drmInitData) +setCryptoType​(@com.google.android.exoplayer2.C.CryptoType int cryptoType) - + Format.Builder -setEncoderDelay​(int encoderDelay) +setDrmInitData​(DrmInitData drmInitData) - + Format.Builder -setEncoderPadding​(int encoderPadding) +setEncoderDelay​(int encoderDelay) - + Format.Builder -setExoMediaCryptoType​(Class<? extends ExoMediaCrypto> exoMediaCryptoType) +setEncoderPadding​(int encoderPadding) - + @@ -353,7 +353,7 @@

    Method Summary

    Format.Builder -setRoleFlags​(int roleFlags) +setRoleFlags​(@com.google.android.exoplayer2.C.RoleFlags int roleFlags) @@ -381,7 +381,7 @@

    Method Summary

    Format.Builder -setSelectionFlags​(int selectionFlags) +setSelectionFlags​(@com.google.android.exoplayer2.C.SelectionFlags int selectionFlags) @@ -519,14 +519,14 @@

    setLanguage

  • - +
    • setSelectionFlags

      public Format.Builder setSelectionFlags​(@SelectionFlags
      -                                        int selectionFlags)
      + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags)
      Sets Format.selectionFlags. The default value is 0.
      Parameters:
      @@ -536,14 +536,14 @@

      setSelectionFlags

    - +
    • setRoleFlags

      public Format.Builder setRoleFlags​(@RoleFlags
      -                                   int roleFlags)
      + @com.google.android.exoplayer2.C.RoleFlags int roleFlags)
      Sets Format.roleFlags. The default value is 0.
      Parameters:
      @@ -947,18 +947,17 @@

      setAccessibilityChannel

    - +
    • -

      setExoMediaCryptoType

      -
      public Format.Builder setExoMediaCryptoType​(@Nullable
      -                                            Class<? extends ExoMediaCrypto> exoMediaCryptoType)
      -
      Sets Format.exoMediaCryptoType. The default value is null.
      +

      setCryptoType

      +
      public Format.Builder setCryptoType​(@com.google.android.exoplayer2.C.CryptoType int cryptoType)
      +
      Sets Format.cryptoType. The default value is C.CRYPTO_TYPE_NONE.
      Parameters:
      -
      exoMediaCryptoType - The Format.exoMediaCryptoType.
      +
      cryptoType - The C.CryptoType.
      Returns:
      The builder.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Format.html b/docs/doc/reference/com/google/android/exoplayer2/Format.html index 9e78b8eb59a..f896e1c926d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Format.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Format.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":42,"i2":42,"i3":10,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":41,"i13":41,"i14":41,"i15":41,"i16":41,"i17":41,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10,"i26":10}; +var data = {"i0":10,"i1":42,"i2":10,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":41,"i13":41,"i14":41,"i15":41,"i16":41,"i17":41,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":9,"i24":10,"i25":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -130,12 +130,12 @@

      Class Format

    • All Implemented Interfaces:
      -
      Parcelable
      +
      Bundleable

      public final class Format
       extends Object
      -implements Parcelable
      +implements Bundleable
      Represents a media format.

      When building formats, populate all fields whose values are known and relevant to the type of @@ -236,11 +236,11 @@

      Nested Class Summary

    @@ -309,18 +309,27 @@

    Field Summary

    -static Parcelable.Creator<Format> +static Bundleable.Creator<Format> CREATOR -  + +
    Object that can restore Format from a Bundle.
    + +@com.google.android.exoplayer2.C.CryptoType int +cryptoType + +
    The type of crypto that must be used to decode samples associated with this format, or C.CRYPTO_TYPE_NONE if the content is not encrypted.
    + + + DrmInitData drmInitData
    DRM initialization data if the stream is protected, or null otherwise.
    - + int encoderDelay @@ -328,21 +337,13 @@

    Field Summary

    applicable. - + int encoderPadding
    The number of frames to trim from the end of the decoded audio stream, or 0 if not applicable.
    - -Class<? extends ExoMediaCrypto> -exoMediaCryptoType - -
    The type of ExoMediaCrypto that will be associated with the content this format - describes, or null if the content is not encrypted.
    - - float frameRate @@ -444,7 +445,7 @@

    Field Summary

    -int +@com.google.android.exoplayer2.C.RoleFlags int roleFlags
    Track role flags.
    @@ -473,7 +474,7 @@

    Field Summary

    -int +@com.google.android.exoplayer2.C.SelectionFlags int selectionFlags
    Track selection flags.
    @@ -502,13 +503,6 @@

    Field Summary

    - @@ -544,18 +538,18 @@

    Method Summary

    Format -copyWithDrmInitData​(DrmInitData drmInitData) +copyWithCryptoType​(@com.google.android.exoplayer2.C.CryptoType int cryptoType) - +
    Returns a copy of this format with the specified cryptoType.
    Format -copyWithExoMediaCryptoType​(Class<? extends ExoMediaCrypto> exoMediaCryptoType) +copyWithDrmInitData​(DrmInitData drmInitData) -
    Returns a copy of this format with the specified exoMediaCryptoType.
    + @@ -634,7 +628,7 @@

    Method Summary

    static Format -createAudioSampleFormat​(String id, +createAudioSampleFormat​(String id, String sampleMimeType, String codecs, int bitrate, @@ -644,7 +638,7 @@

    Method Summary

    int pcmEncoding, List<byte[]> initializationData, DrmInitData drmInitData, - int selectionFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, String language)
    Deprecated. @@ -654,7 +648,7 @@

    Method Summary

    static Format -createAudioSampleFormat​(String id, +createAudioSampleFormat​(String id, String sampleMimeType, String codecs, int bitrate, @@ -663,7 +657,7 @@

    Method Summary

    int sampleRate, List<byte[]> initializationData, DrmInitData drmInitData, - int selectionFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, String language)
    Deprecated. @@ -673,14 +667,14 @@

    Method Summary

    static Format -createContainerFormat​(String id, +createContainerFormat​(String id, String label, String containerMimeType, String sampleMimeType, String codecs, int bitrate, - int selectionFlags, - int roleFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, + @com.google.android.exoplayer2.C.RoleFlags int roleFlags, String language)
    Deprecated. @@ -737,16 +731,11 @@

    Method Summary

    -int -describeContents() -  - - boolean equals​(Object obj)   - + int getPixelCount() @@ -754,12 +743,12 @@

    Method Summary

    are known, or NO_VALUE otherwise
    - + int hashCode()   - + boolean initializationDataEquals​(Format other) @@ -767,6 +756,13 @@

    Method Summary

    equal.
    + +Bundle +toBundle() + +
    Returns a Bundle representing the information stored in this object.
    + + static String toLogString​(Format format) @@ -784,12 +780,6 @@

    Method Summary

    withManifestFormatInfo​(Format manifestFormat)   - -void -writeToParcel​(Parcel dest, - int flags) -  - @@ -894,7 +884,7 @@

    selectionFlags

  • roleFlags

    @RoleFlags
    -public final int roleFlags
    +public final @com.google.android.exoplayer2.C.RoleFlags int roleFlags
    Track role flags.
  • @@ -1197,16 +1187,16 @@

    accessibilityChannel

    The Accessibility channel, or NO_VALUE if not known or applicable.
    - +
    • -

      exoMediaCryptoType

      -
      @Nullable
      -public final Class<? extends ExoMediaCrypto> exoMediaCryptoType
      -
      The type of ExoMediaCrypto that will be associated with the content this format - describes, or null if the content is not encrypted. Cannot be null if drmInitData is non-null.
      +

      cryptoType

      +
      public final @com.google.android.exoplayer2.C.CryptoType int cryptoType
      +
      The type of crypto that must be used to decode samples associated with this format, or C.CRYPTO_TYPE_NONE if the content is not encrypted. Cannot be C.CRYPTO_TYPE_NONE if + drmInitData is non-null, but may be C.CRYPTO_TYPE_UNSUPPORTED to indicate that + the samples are encrypted using an unsupported crypto type.
    @@ -1215,7 +1205,8 @@

    exoMediaCryptoType

    @@ -1284,7 +1275,7 @@

    createVideoSampleFormat

    - +
      @@ -1306,7 +1297,7 @@

      createAudioSampleFormat

      @Nullable DrmInitData drmInitData, @SelectionFlags - int selectionFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @Nullable String language)
      Deprecated. @@ -1314,7 +1305,7 @@

      createAudioSampleFormat

    - +
      @@ -1338,7 +1329,7 @@

      createAudioSampleFormat

      @Nullable DrmInitData drmInitData, @SelectionFlags - int selectionFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @Nullable String language)
      Deprecated. @@ -1346,7 +1337,7 @@

      createAudioSampleFormat

    - +
      @@ -1365,9 +1356,9 @@

      createContainerFormat

      String codecs, int bitrate, @SelectionFlags - int selectionFlags, + @com.google.android.exoplayer2.C.SelectionFlags int selectionFlags, @RoleFlags - int roleFlags, + @com.google.android.exoplayer2.C.RoleFlags int roleFlags, @Nullable String language)
      Deprecated. @@ -1545,15 +1536,14 @@

      copyWithVideoSize

    - +
    • -

      copyWithExoMediaCryptoType

      -
      public Format copyWithExoMediaCryptoType​(@Nullable
      -                                         Class<? extends ExoMediaCrypto> exoMediaCryptoType)
      -
      Returns a copy of this format with the specified exoMediaCryptoType.
      +

      copyWithCryptoType

      +
      public Format copyWithCryptoType​(@com.google.android.exoplayer2.C.CryptoType int cryptoType)
      +
      Returns a copy of this format with the specified cryptoType.
    @@ -1636,30 +1626,18 @@

    toLogString

    Returns a prettier String than toString(), intended for logging.
    - - - - - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/ForwardingPlayer.html b/docs/doc/reference/com/google/android/exoplayer2/ForwardingPlayer.html index 2d40c146028..a5b0dc305d0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/ForwardingPlayer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/ForwardingPlayer.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":42,"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":42,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":42,"i58":10,"i59":42,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":42,"i73":10,"i74":10,"i75":10,"i76":42,"i77":10,"i78":42,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":42}; +var data = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":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":42,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":42,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":42,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":42,"i62":10,"i63":42,"i64":42,"i65":10,"i66":42,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":42,"i73":42,"i74":42,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":42,"i82":10,"i83":10,"i84":10,"i85":42,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":42,"i99":10,"i100":10,"i101":42,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":42}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -173,7 +173,7 @@

    Field Summary

    Fields inherited from interface com.google.android.exoplayer2.Player

    -COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_DEVICE_VOLUME, COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_GET_TEXT, COMMAND_GET_TIMELINE, COMMAND_GET_VOLUME, COMMAND_INVALID, COMMAND_PLAY_PAUSE, COMMAND_PREPARE_STOP, COMMAND_SEEK_BACK, COMMAND_SEEK_FORWARD, COMMAND_SEEK_IN_CURRENT_WINDOW, COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_NEXT, COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS, COMMAND_SEEK_TO_PREVIOUS_WINDOW, COMMAND_SEEK_TO_WINDOW, COMMAND_SET_DEVICE_VOLUME, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_SET_REPEAT_MODE, COMMAND_SET_SHUFFLE_MODE, COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_VIDEO_SURFACE, COMMAND_SET_VOLUME, DISCONTINUITY_REASON_AUTO_TRANSITION, DISCONTINUITY_REASON_INTERNAL, DISCONTINUITY_REASON_REMOVE, DISCONTINUITY_REASON_SEEK, DISCONTINUITY_REASON_SEEK_ADJUSTMENT, DISCONTINUITY_REASON_SKIP, EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_IS_LOADING_CHANGED, EVENT_IS_PLAYING_CHANGED, EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_MEDIA_METADATA_CHANGED, EVENT_PLAY_WHEN_READY_CHANGED, EVENT_PLAYBACK_PARAMETERS_CHANGED, EVENT_PLAYBACK_STATE_CHANGED, EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED, EVENT_PLAYER_ERROR, EVENT_PLAYLIST_METADATA_CHANGED, EVENT_POSITION_DISCONTINUITY, EVENT_REPEAT_MODE_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_FORWARD_INCREMENT_CHANGED, EVENT_SHUFFLE_MODE_ENABLED_CHANGED, EVENT_STATIC_METADATA_CHANGED, EVENT_TIMELINE_CHANGED, EVENT_TRACKS_CHANGED, MEDIA_ITEM_TRANSITION_REASON_AUTO, MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED, MEDIA_ITEM_TRANSITION_REASON_REPEAT, MEDIA_ITEM_TRANSITION_REASON_SEEK, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS, PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM, PLAY_WHEN_READY_CHANGE_REASON_REMOTE, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, PLAYBACK_SUPPRESSION_REASON_NONE, PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, REPEAT_MODE_ALL, REPEAT_MODE_OFF, REPEAT_MODE_ONE, STATE_BUFFERING, STATE_ENDED, STATE_IDLE, STATE_READY, TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, TIMELINE_CHANGE_REASON_SOURCE_UPDATE +COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_CHANGE_MEDIA_ITEMS, COMMAND_GET_AUDIO_ATTRIBUTES, COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_DEVICE_VOLUME, COMMAND_GET_MEDIA_ITEMS_METADATA, COMMAND_GET_TEXT, COMMAND_GET_TIMELINE, COMMAND_GET_TRACK_INFOS, COMMAND_GET_VOLUME, COMMAND_INVALID, COMMAND_PLAY_PAUSE, COMMAND_PREPARE, COMMAND_SEEK_BACK, COMMAND_SEEK_FORWARD, COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, COMMAND_SEEK_IN_CURRENT_WINDOW, COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT, COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_WINDOW, COMMAND_SEEK_TO_WINDOW, COMMAND_SET_DEVICE_VOLUME, COMMAND_SET_MEDIA_ITEMS_METADATA, COMMAND_SET_REPEAT_MODE, COMMAND_SET_SHUFFLE_MODE, COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_TRACK_SELECTION_PARAMETERS, COMMAND_SET_VIDEO_SURFACE, COMMAND_SET_VOLUME, COMMAND_STOP, DISCONTINUITY_REASON_AUTO_TRANSITION, DISCONTINUITY_REASON_INTERNAL, DISCONTINUITY_REASON_REMOVE, DISCONTINUITY_REASON_SEEK, DISCONTINUITY_REASON_SEEK_ADJUSTMENT, DISCONTINUITY_REASON_SKIP, EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_IS_LOADING_CHANGED, EVENT_IS_PLAYING_CHANGED, EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_MEDIA_METADATA_CHANGED, EVENT_PLAY_WHEN_READY_CHANGED, EVENT_PLAYBACK_PARAMETERS_CHANGED, EVENT_PLAYBACK_STATE_CHANGED, EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED, EVENT_PLAYER_ERROR, EVENT_PLAYLIST_METADATA_CHANGED, EVENT_POSITION_DISCONTINUITY, EVENT_REPEAT_MODE_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_FORWARD_INCREMENT_CHANGED, EVENT_SHUFFLE_MODE_ENABLED_CHANGED, EVENT_TIMELINE_CHANGED, EVENT_TRACK_SELECTION_PARAMETERS_CHANGED, EVENT_TRACKS_CHANGED, MEDIA_ITEM_TRANSITION_REASON_AUTO, MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED, MEDIA_ITEM_TRANSITION_REASON_REPEAT, MEDIA_ITEM_TRANSITION_REASON_SEEK, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY, PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS, PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM, PLAY_WHEN_READY_CHANGE_REASON_REMOTE, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST, PLAYBACK_SUPPRESSION_REASON_NONE, PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS, REPEAT_MODE_ALL, REPEAT_MODE_OFF, REPEAT_MODE_ONE, STATE_BUFFERING, STATE_ENDED, STATE_IDLE, STATE_READY, TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED, TIMELINE_CHANGE_REASON_SOURCE_UPDATE @@ -217,34 +217,27 @@

    Method Summary

    void -addListener​(Player.EventListener listener) +addListener​(Player.Listener listener)
    Deprecated.
    void -addListener​(Player.Listener listener) - -
    Registers a listener to receive all events from the player.
    - - - -void addMediaItem​(int index, MediaItem mediaItem)
    Adds a media item at the given index of the playlist.
    - + void addMediaItem​(MediaItem mediaItem)
    Adds a media item to the end of the playlist.
    - + void addMediaItems​(int index, List<MediaItem> mediaItems) @@ -252,13 +245,20 @@

    Method Summary

    Adds a list of media items at the given index of the playlist.
    - + void addMediaItems​(List<MediaItem> mediaItems)
    Adds a list of media items to the end of the playlist.
    + +boolean +canAdvertiseSession() + +
    Returns whether the player can be used to advertise a media session.
    + + void clearMediaItems() @@ -314,8 +314,7 @@

    Method Summary

    Looper getApplicationLooper() -
    Returns the Looper associated with the application thread that's used to access the - player and on which player events are received.
    +
    Deprecated.
    @@ -336,7 +335,7 @@

    Method Summary

    int getBufferedPercentage() -
    Returns an estimate of the percentage in the current content window or ad up to which data is +
    Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    @@ -344,8 +343,8 @@

    Method Summary

    long getBufferedPosition() -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
    @@ -353,15 +352,15 @@

    Method Summary

    getContentBufferedPosition()
    If Player.isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds.
    + the current content up to which data is buffered, in milliseconds.
    long getContentDuration() -
    If Player.isPlayingAd() returns true, returns the duration of the current content - window in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    If Player.isPlayingAd() returns true, returns the duration of the current content in + milliseconds, or C.TIME_UNSET if the duration is not known.
    @@ -399,8 +398,8 @@

    Method Summary

    getCurrentLiveOffset()
    Returns the offset of the current playback position from the live edge in milliseconds, or - C.TIME_UNSET if the current window isn't live or the - offset is unknown.
    + C.TIME_UNSET if the current MediaItem Player.isCurrentMediaItemLive() isn't + live} or the offset is unknown. @@ -414,30 +413,30 @@

    Method Summary

    MediaItem getCurrentMediaItem() -
    Returns the media item of the current window in the timeline.
    +
    Returns the currently playing MediaItem.
    int -getCurrentPeriodIndex() +getCurrentMediaItemIndex() -
    Returns the index of the period currently being played.
    +
    Returns the index of the current MediaItem in the timeline, or the prospective index if the current timeline is + empty.
    -long -getCurrentPosition() +int +getCurrentPeriodIndex() -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    +
    Returns the index of the period currently being played.
    -List<Metadata> -getCurrentStaticMetadata() +long +getCurrentPosition() -
    Deprecated.
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
    @@ -462,56 +461,63 @@

    Method Summary

    +TracksInfo +getCurrentTracksInfo() + +
    Returns the available tracks, as well as the tracks' support, type, and selection status.
    + + + int getCurrentWindowIndex() -
    Returns the index of the current window in the timeline, or the prospective window index if the current timeline is empty.
    +
    Deprecated.
    - -DeviceInfo + +DeviceInfo getDeviceInfo()
    Gets the device information.
    - + int getDeviceVolume()
    Gets the current volume of the device.
    - + long getDuration() -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Returns the duration of the current content or ad in milliseconds, or C.TIME_UNSET if + the duration is not known.
    - -int + +long getMaxSeekToPreviousPosition() -
    Returns the maximum position for which Player.seekToPrevious() seeks to the previous window, - in milliseconds.
    +
    Returns the maximum position for which Player.seekToPrevious() seeks to the previous MediaItem, in milliseconds.
    - + MediaItem getMediaItemAt​(int index)
    Returns the MediaItem at the given index.
    - + int getMediaItemCount()
    Returns the number of media items in the playlist.
    - + MediaMetadata getMediaMetadata() @@ -519,29 +525,36 @@

    Method Summary

    supported. - + +int +getNextMediaItemIndex() + +
    Returns the index of the MediaItem that will be played if Player.seekToNextMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    + + + int getNextWindowIndex() -
    Returns the index of the window that will be played if Player.seekToNextWindow() is called, - which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + PlaybackParameters getPlaybackParameters()
    Returns the currently active playback parameters.
    - + int getPlaybackState()
    Returns the current playback state of the player.
    - + int getPlaybackSuppressionReason() @@ -549,187 +562,236 @@

    Method Summary

    true
    , or Player.PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed. - + PlaybackException getPlayerError()
    Returns the error that caused playback to fail.
    - + MediaMetadata getPlaylistMetadata()
    Returns the playlist MediaMetadata, as set by Player.setPlaylistMetadata(MediaMetadata), or MediaMetadata.EMPTY if not supported.
    - + boolean getPlayWhenReady()
    Whether playback will proceed when Player.getPlaybackState() == Player.STATE_READY.
    - + +int +getPreviousMediaItemIndex() + +
    Returns the index of the MediaItem that will be played if Player.seekToPreviousMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    + + + int getPreviousWindowIndex() -
    Returns the index of the window that will be played if Player.seekToPreviousWindow() is - called, which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + int getRepeatMode()
    Returns the current Player.RepeatMode used for playback.
    - + long getSeekBackIncrement()
    Returns the Player.seekBack() increment.
    - + long getSeekForwardIncrement()
    Returns the Player.seekForward() increment.
    - + boolean getShuffleModeEnabled() -
    Returns whether shuffling of windows is enabled.
    +
    Returns whether shuffling of media items is enabled.
    - + long getTotalBufferedDuration()
    Returns an estimate of the total buffered duration from the current position, in milliseconds.
    - + +TrackSelectionParameters +getTrackSelectionParameters() + +
    Returns the parameters constraining the track selection.
    + + + VideoSize getVideoSize()
    Gets the size of the video.
    - + float getVolume()
    Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    - + Player getWrappedPlayer()
    Returns the Player to which operations are forwarded.
    - + boolean hasNext()
    Deprecated.
    - + +boolean +hasNextMediaItem() + +
    Returns whether a next MediaItem exists, which may depend on the current repeat mode + and whether shuffle mode is enabled.
    + + + boolean hasNextWindow() -
    Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled.
    +
    Deprecated.
    - + boolean hasPrevious()
    Deprecated.
    - + boolean -hasPreviousWindow() +hasPreviousMediaItem() -
    Returns whether a previous window exists, which may depend on the current repeat mode and +
    Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.
    - + +boolean +hasPreviousWindow() + +
    Deprecated.
    + + + void increaseDeviceVolume()
    Increases the volume of the device.
    - + boolean -isCommandAvailable​(int command) +isCommandAvailable​(@com.google.android.exoplayer2.Player.Command int command)
    Returns whether the provided Player.Command is available.
    - + +boolean +isCurrentMediaItemDynamic() + +
    Returns whether the current MediaItem is dynamic (may change when the Timeline + is updated), or false if the Timeline is empty.
    + + + +boolean +isCurrentMediaItemLive() + +
    Returns whether the current MediaItem is live, or false if the Timeline + is empty.
    + + + +boolean +isCurrentMediaItemSeekable() + +
    Returns whether the current MediaItem is seekable, or false if the Timeline is empty.
    + + + boolean isCurrentWindowDynamic() -
    Returns whether the current window is dynamic, or false if the Timeline is - empty.
    +
    Deprecated.
    - + boolean isCurrentWindowLive() -
    Returns whether the current window is live, or false if the Timeline is empty.
    +
    Deprecated.
    - + boolean isCurrentWindowSeekable() -
    Returns whether the current window is seekable, or false if the Timeline is - empty.
    +
    Deprecated.
    - + boolean isDeviceMuted()
    Gets whether the device is muted or not.
    - + boolean isLoading()
    Whether the player is currently loading the source.
    - + boolean isPlaying()
    Returns whether the player is playing, i.e.
    - + boolean isPlayingAd()
    Returns whether the player is currently playing an ad.
    - + void moveMediaItem​(int currentIndex, int newIndex) @@ -737,7 +799,7 @@

    Method Summary

    Moves the media item at the current index to the new index.
    - + void moveMediaItems​(int fromIndex, int toIndex, @@ -746,70 +808,63 @@

    Method Summary

    Moves the media item range to the new index.
    - + void next()
    Deprecated.
    - + void pause()
    Pauses playback.
    - + void play()
    Resumes playback as soon as Player.getPlaybackState() == Player.STATE_READY.
    - + void prepare()
    Prepares the player.
    - + void previous()
    Deprecated.
    - + void release()
    Releases the player.
    - -void -removeListener​(Player.EventListener listener) - -
    Deprecated.
    - - - + void removeListener​(Player.Listener listener)
    Unregister a listener registered through Player.addListener(Listener).
    - + void removeMediaItem​(int index)
    Removes the media item at the given index of the playlist.
    - + void removeMediaItems​(int fromIndex, int toIndex) @@ -817,94 +872,109 @@

    Method Summary

    Removes a range of media items from the playlist.
    - + void seekBack() -
    Seeks back in the current window by Player.getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by Player.getSeekBackIncrement() milliseconds.
    - + void seekForward() -
    Seeks forward in the current window by Player.getSeekForwardIncrement() milliseconds.
    +
    Seeks forward in the current MediaItem by Player.getSeekForwardIncrement() + milliseconds.
    - + void -seekTo​(int windowIndex, +seekTo​(int mediaItemIndex, long positionMs) -
    Seeks to a position specified in milliseconds in the specified window.
    +
    Seeks to a position specified in milliseconds in the specified MediaItem.
    - + void seekTo​(long positionMs) -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    - + void seekToDefaultPosition() -
    Seeks to the default position associated with the current window.
    +
    Seeks to the default position associated with the current MediaItem.
    - + void -seekToDefaultPosition​(int windowIndex) +seekToDefaultPosition​(int mediaItemIndex) -
    Seeks to the default position associated with the specified window.
    +
    Seeks to the default position associated with the specified MediaItem.
    - + void seekToNext() -
    Seeks to a later position in the current or next window (if available).
    +
    Seeks to a later position in the current or next MediaItem (if available).
    - + +void +seekToNextMediaItem() + +
    Seeks to the default position of the next MediaItem, which may depend on the current + repeat mode and whether shuffle mode is enabled.
    + + + void seekToNextWindow() -
    Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled.
    +
    Deprecated.
    - + void seekToPrevious() -
    Seeks to an earlier position in the current or previous window (if available).
    +
    Seeks to an earlier position in the current or previous MediaItem (if available).
    - + +void +seekToPreviousMediaItem() + +
    Seeks to the default position of the previous MediaItem, which may depend on the + current repeat mode and whether shuffle mode is enabled.
    + + + void seekToPreviousWindow() -
    Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled.
    +
    Deprecated.
    - + void setDeviceMuted​(boolean muted)
    Sets the mute state of the device.
    - + void setDeviceVolume​(int volume)
    Sets the volume of the device.
    - + void setMediaItem​(MediaItem mediaItem) @@ -912,7 +982,7 @@

    Method Summary

    default position.
    - + void setMediaItem​(MediaItem mediaItem, boolean resetPosition) @@ -920,7 +990,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItem​(MediaItem mediaItem, long startPositionMs) @@ -928,7 +998,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItems​(List<MediaItem> mediaItems) @@ -936,7 +1006,7 @@

    Method Summary

    the default position. - + void setMediaItems​(List<MediaItem> mediaItems, boolean resetPosition) @@ -944,65 +1014,72 @@

    Method Summary

    Clears the playlist and adds the specified MediaItems.
    - + void setMediaItems​(List<MediaItem> mediaItems, - int startWindowIndex, + int startIndex, long startPositionMs)
    Clears the playlist and adds the specified MediaItems.
    - + void setPlaybackParameters​(PlaybackParameters playbackParameters)
    Attempts to set the playback parameters.
    - + void setPlaybackSpeed​(float speed)
    Changes the rate at which playback occurs.
    - + void setPlaylistMetadata​(MediaMetadata mediaMetadata)
    Sets the playlist MediaMetadata.
    - + void setPlayWhenReady​(boolean playWhenReady)
    Sets whether playback should proceed when Player.getPlaybackState() == Player.STATE_READY.
    - + void -setRepeatMode​(int repeatMode) +setRepeatMode​(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
    Sets the Player.RepeatMode to be used for playback.
    - + void setShuffleModeEnabled​(boolean shuffleModeEnabled) -
    Sets whether shuffling of windows is enabled.
    +
    Sets whether shuffling of media items is enabled.
    - + +void +setTrackSelectionParameters​(TrackSelectionParameters parameters) + +
    Sets the parameters constraining the track selection.
    + + + void setVideoSurface​(Surface surface)
    Sets the Surface onto which video will be rendered.
    - + void setVideoSurfaceHolder​(SurfaceHolder surfaceHolder) @@ -1010,35 +1087,36 @@

    Method Summary

    rendered. - + void setVideoSurfaceView​(SurfaceView surfaceView)
    Sets the SurfaceView onto which video will be rendered.
    - + void setVideoTextureView​(TextureView textureView)
    Sets the TextureView onto which video will be rendered.
    - + void -setVolume​(float audioVolume) +setVolume​(float volume) -
    Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    +
    Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal + unchanged), inclusive.
    - + void stop()
    Stops playback without resetting the player.
    - + void stop​(boolean reset) @@ -1095,7 +1173,9 @@

    Method Detail

    • getApplicationLooper

      -
      public Looper getApplicationLooper()
      +
      @Deprecated
      +public Looper getApplicationLooper()
      +
      Deprecated.
      Description copied from interface: Player
      Returns the Looper associated with the application thread that's used to access the player and on which player events are received.
      @@ -1105,42 +1185,19 @@

      getApplicationLooper

    - +
    • addListener

      @Deprecated
      -public void addListener​(Player.EventListener listener)
      +public void addListener​(Player.Listener listener)
      Deprecated.
      -
      Description copied from interface: Player
      -
      Registers a listener to receive events from the player. - -

      The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

      -
      -
      Specified by:
      -
      addListener in interface Player
      -
      Parameters:
      -
      listener - The listener to register.
      -
      -
    • -
    - - - -
      -
    • -

      addListener

      -
      public void addListener​(Player.Listener listener)
      Description copied from interface: Player
      Registers a listener to receive all events from the player. -

      The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

      +

      The listener's methods will be called on the thread associated with Player.getApplicationLooper().

      Specified by:
      addListener in interface Player
      @@ -1149,26 +1206,6 @@

      addListener

    - - - - @@ -1222,7 +1259,7 @@

    setMediaItems

    mediaItems - The new MediaItems.
    resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined - by Player.getCurrentWindowIndex() and Player.getCurrentPosition().
    + by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition(). @@ -1233,7 +1270,7 @@

    setMediaItems

  • setMediaItems

    public void setMediaItems​(List<MediaItem> mediaItems,
    -                          int startWindowIndex,
    +                          int startIndex,
                               long startPositionMs)
    Description copied from interface: Player
    Clears the playlist and adds the specified MediaItems.
    @@ -1242,11 +1279,11 @@

    setMediaItems

    setMediaItems in interface Player
    Parameters:
    mediaItems - The new MediaItems.
    -
    startWindowIndex - The window index to start playback from. If C.INDEX_UNSET is - passed, the current position is not reset.
    -
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given window is used. In any case, if - startWindowIndex is set to C.INDEX_UNSET, this parameter is ignored and the - position is not reset at all.
    +
    startIndex - The MediaItem index to start playback from. If C.INDEX_UNSET + is passed, the current position is not reset.
    +
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given MediaItem is used. In + any case, if startIndex is set to C.INDEX_UNSET, this parameter is ignored + and the position is not reset at all.
  • @@ -1303,7 +1340,7 @@

    setMediaItem

    Parameters:
    mediaItem - The new MediaItem.
    resetPosition - Whether the playback position should be reset to the default position. If - false, playback will start from the position defined by Player.getCurrentWindowIndex() + false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
    @@ -1477,28 +1514,27 @@

    clearMediaItems

    - + + + + +
      +
    • +

      canAdvertiseSession

      +
      public boolean canAdvertiseSession()
      +
      Description copied from interface: Player
      +
      Returns whether the player can be used to advertise a media session.
      +
      +
      Specified by:
      +
      canAdvertiseSession in interface Player
      +
      +
    • +
    @@ -1521,12 +1572,11 @@

    getAvailableCommands

    The returned Player.Commands are not updated when available commands change. Use Player.Listener.onAvailableCommandsChanged(Commands) to get an update when the available commands change. -

    Executing a command that is not available (for example, calling Player.seekToNextWindow() - if Player.COMMAND_SEEK_TO_NEXT_WINDOW is unavailable) will neither throw an exception nor - generate a Player.getPlayerError() player error}. +

    Executing a command that is not available (for example, calling Player.seekToNextMediaItem() if Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM is unavailable) will + neither throw an exception nor generate a Player.getPlayerError() player error}. -

    Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW and Player.COMMAND_SEEK_TO_NEXT_WINDOW are - unavailable if there is no such MediaItem. +

    Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM and Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM + are unavailable if there is no such MediaItem.

    Specified by:
    getAvailableCommands in interface Player
    @@ -1567,7 +1617,7 @@

    getPlaybackState

    Returns:
    The current playback state.
    See Also:
    -
    Player.Listener.onPlaybackStateChanged(int)
    +
    Player.Listener.onPlaybackStateChanged(int)
    @@ -1587,7 +1637,7 @@

    getPlaybackSuppressionReason

    Returns:
    The current playback suppression reason.
    See Also:
    -
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
    +
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
    @@ -1708,23 +1758,23 @@

    getPlayWhenReady

    Returns:
    Whether playback will proceed when ready.
    See Also:
    -
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
    +
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
    - + @@ -1757,7 +1807,7 @@

    getRepeatMode

    setShuffleModeEnabled

    public void setShuffleModeEnabled​(boolean shuffleModeEnabled)
    Description copied from interface: Player
    -
    Sets whether shuffling of windows is enabled.
    +
    Sets whether shuffling of media items is enabled.
    Specified by:
    setShuffleModeEnabled in interface Player
    @@ -1774,7 +1824,7 @@

    setShuffleModeEnabled

    getShuffleModeEnabled

    public boolean getShuffleModeEnabled()
    Description copied from interface: Player
    -
    Returns whether shuffling of windows is enabled.
    +
    Returns whether shuffling of media items is enabled.
    Specified by:
    getShuffleModeEnabled in interface Player
    @@ -1810,9 +1860,9 @@

    isLoading

    seekToDefaultPosition

    public void seekToDefaultPosition()
    Description copied from interface: Player
    -
    Seeks to the default position associated with the current window. The position can depend on - the type of media being played. For live streams it will typically be the live edge of the - window. For other streams it will typically be the start of the window.
    +
    Seeks to the default position associated with the current MediaItem. The position can + depend on the type of media being played. For live streams it will typically be the live edge. + For other streams it will typically be the start.
    Specified by:
    seekToDefaultPosition in interface Player
    @@ -1825,17 +1875,17 @@

    seekToDefaultPosition

    • seekToDefaultPosition

      -
      public void seekToDefaultPosition​(int windowIndex)
      +
      public void seekToDefaultPosition​(int mediaItemIndex)
      Description copied from interface: Player
      -
      Seeks to the default position associated with the specified window. The position can depend on - the type of media being played. For live streams it will typically be the live edge of the - window. For other streams it will typically be the start of the window.
      +
      Seeks to the default position associated with the specified MediaItem. The position can + depend on the type of media being played. For live streams it will typically be the live edge. + For other streams it will typically be the start.
      Specified by:
      seekToDefaultPosition in interface Player
      Parameters:
      -
      windowIndex - The index of the window whose associated default position should be seeked - to.
      +
      mediaItemIndex - The index of the MediaItem whose associated default position + should be seeked to.
    @@ -1847,13 +1897,13 @@

    seekToDefaultPosition

    seekTo

    public void seekTo​(long positionMs)
    Description copied from interface: Player
    -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    Specified by:
    seekTo in interface Player
    Parameters:
    -
    positionMs - The seek position in the current window, or C.TIME_UNSET to seek to - the window's default position.
    +
    positionMs - The seek position in the current MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
    @@ -1863,17 +1913,17 @@

    seekTo

    • seekTo

      -
      public void seekTo​(int windowIndex,
      +
      public void seekTo​(int mediaItemIndex,
                          long positionMs)
      Description copied from interface: Player
      -
      Seeks to a position specified in milliseconds in the specified window.
      +
      Seeks to a position specified in milliseconds in the specified MediaItem.
      Specified by:
      seekTo in interface Player
      Parameters:
      -
      windowIndex - The index of the window.
      -
      positionMs - The seek position in the specified window, or C.TIME_UNSET to seek to - the window's default position.
      +
      mediaItemIndex - The index of the MediaItem.
      +
      positionMs - The seek position in the specified MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
    @@ -1904,7 +1954,7 @@

    getSeekBackIncrement

    seekBack

    public void seekBack()
    Description copied from interface: Player
    -
    Seeks back in the current window by Player.getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by Player.getSeekBackIncrement() milliseconds.
    Specified by:
    seekBack in interface Player
    @@ -1938,7 +1988,8 @@

    getSeekForwardIncrement

    seekForward

    public void seekForward()
    Description copied from interface: Player
    -
    Seeks forward in the current window by Player.getSeekForwardIncrement() milliseconds.
    +
    Seeks forward in the current MediaItem by Player.getSeekForwardIncrement() + milliseconds.
    Specified by:
    seekForward in interface Player
    @@ -1966,9 +2017,24 @@

    hasPrevious

    • hasPreviousWindow

      -
      public boolean hasPreviousWindow()
      -
      Description copied from interface: Player
      -
      Returns whether a previous window exists, which may depend on the current repeat mode and +
      @Deprecated
      +public boolean hasPreviousWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      hasPreviousWindow in interface Player
      +
      +
    • +
    + + + +
      +
    • +

      hasPreviousMediaItem

      +
      public boolean hasPreviousMediaItem()
      +
      Description copied from interface: Player
      +
      Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.

      Note: When the repeat mode is Player.REPEAT_MODE_ONE, this method behaves the same as when @@ -1976,7 +2042,7 @@

      hasPreviousWindow

      details.
      Specified by:
      -
      hasPreviousWindow in interface Player
      +
      hasPreviousMediaItem in interface Player
    @@ -2001,18 +2067,32 @@

    previous

    • seekToPreviousWindow

      -
      public void seekToPreviousWindow()
      -
      Description copied from interface: Player
      -
      Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled. Does nothing if Player.hasPreviousWindow() is - false. +
      @Deprecated
      +public void seekToPreviousWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      seekToPreviousWindow in interface Player
      +
      +
    • +
    + + + + @@ -2024,18 +2104,20 @@

    seekToPreviousWindow

    seekToPrevious

    public void seekToPrevious()
    Description copied from interface: Player
    -
    Seeks to an earlier position in the current or previous window (if available). More precisely: +
    Seeks to an earlier position in the current or previous MediaItem (if available). More + precisely:
    Specified by:
    @@ -2049,17 +2131,16 @@

    seekToPrevious

    @@ -2084,17 +2165,32 @@

    hasNext

    • hasNextWindow

      -
      public boolean hasNextWindow()
      -
      Description copied from interface: Player
      -
      Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled. +
      @Deprecated
      +public boolean hasNextWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      hasNextWindow in interface Player
      +
      +
    • +
    + + + + @@ -2119,17 +2215,33 @@

    next

    • seekToNextWindow

      -
      public void seekToNextWindow()
      -
      Description copied from interface: Player
      -
      Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled. Does nothing if Player.hasNextWindow() is false. +
      @Deprecated
      +public void seekToNextWindow()
      +
      Deprecated.
      +
      +
      Specified by:
      +
      seekToNextWindow in interface Player
      +
      +
    • +
    + + + + @@ -2141,14 +2253,15 @@

    seekToNextWindow

    seekToNext

    public void seekToNext()
    Description copied from interface: Player
    -
    Seeks to a later position in the current or next window (if available). More precisely: +
    Seeks to a later position in the current or next MediaItem (if available). More + precisely:
    • If the timeline is empty or seeking is not possible, does nothing. -
    • Otherwise, if a next window exists, seeks to the default - position of the next window. -
    • Otherwise, if the current window is live and has not - ended, seeks to the live edge of the current window. +
    • Otherwise, if a next media item exists, seeks to the default + position of the next MediaItem. +
    • Otherwise, if the current MediaItem is live and + has not ended, seeks to the live edge of the current MediaItem.
    • Otherwise, does nothing.
    @@ -2283,7 +2396,7 @@

    getCurrentTrackGroups

    Specified by:
    getCurrentTrackGroups in interface Player
    See Also:
    -
    Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    +
    Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    @@ -2304,22 +2417,70 @@

    getCurrentTrackSelections

    Specified by:
    getCurrentTrackSelections in interface Player
    See Also:
    -
    Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    +
    Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    - + + + + + + + + +
      +
    • +

      setTrackSelectionParameters

      +
      public void setTrackSelectionParameters​(TrackSelectionParameters parameters)
      +
      Description copied from interface: Player
      +
      Sets the parameters constraining the track selection. + +

      Unsupported parameters will be silently ignored. + +

      Use Player.getTrackSelectionParameters() to retrieve the current parameters. For example, + the following snippet restricts video to SD whilst keep other track selection parameters + unchanged: + +

      
      + player.setTrackSelectionParameters(
      +   player.getTrackSelectionParameters()
      +         .buildUpon()
      +         .setMaxVideoSizeSd()
      +         .build())
      + 
      Specified by:
      -
      getCurrentStaticMetadata in interface Player
      +
      setTrackSelectionParameters in interface Player
    @@ -2336,7 +2497,8 @@

    getMediaMetadata

    This MediaMetadata is a combination of the MediaItem.mediaMetadata and the static and dynamic metadata from the track selections' - formats and MetadataOutput.onMetadata(Metadata).

    + formats
    and Player.Listener.onMetadata(Metadata). If a field is populated in the MediaItem.mediaMetadata, it will be prioritised above the same field coming from static or + dynamic metadata.
    Specified by:
    getMediaMetadata in interface Player
    @@ -2402,7 +2564,7 @@

    getCurrentTimeline

    Specified by:
    getCurrentTimeline in interface Player
    See Also:
    -
    Player.Listener.onTimelineChanged(Timeline, int)
    +
    Player.Listener.onTimelineChanged(Timeline, int)
    @@ -2427,32 +2589,64 @@

    getCurrentPeriodIndex

    + + + + + + + + @@ -2462,18 +2656,33 @@

    getNextWindowIndex

    + + + + @@ -2486,13 +2695,12 @@

    getCurrentMediaItem

    @Nullable
     public MediaItem getCurrentMediaItem()
    Description copied from interface: Player
    -
    Returns the media item of the current window in the timeline. May be null if the timeline is - empty.
    +
    Returns the currently playing MediaItem. May be null if the timeline is empty.
    Specified by:
    getCurrentMediaItem in interface Player
    See Also:
    -
    Player.Listener.onMediaItemTransition(MediaItem, int)
    +
    Player.Listener.onMediaItemTransition(MediaItem, int)
    @@ -2534,7 +2742,8 @@

    getMediaItemAt

    getDuration

    public long getDuration()
    Description copied from interface: Player
    -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Returns the duration of the current content or ad in milliseconds, or C.TIME_UNSET if + the duration is not known.
    Specified by:
    getDuration in interface Player
    @@ -2549,9 +2758,8 @@

    getDuration

    getCurrentPosition

    public long getCurrentPosition()
    Description copied from interface: Player
    -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
    Specified by:
    getCurrentPosition in interface Player
    @@ -2566,8 +2774,8 @@

    getCurrentPosition

    getBufferedPosition

    public long getBufferedPosition()
    Description copied from interface: Player
    -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
    Specified by:
    getBufferedPosition in interface Player
    @@ -2582,7 +2790,7 @@

    getBufferedPosition

    getBufferedPercentage

    public int getBufferedPercentage()
    Description copied from interface: Player
    -
    Returns an estimate of the percentage in the current content window or ad up to which data is +
    Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    Specified by:
    @@ -2599,7 +2807,7 @@

    getTotalBufferedDuration

    public long getTotalBufferedDuration()
    Description copied from interface: Player
    Returns an estimate of the total buffered duration from the current position, in milliseconds. - This includes pre-buffered data for subsequent ads and windows.
    + This includes pre-buffered data for subsequent ads and media items.
    Specified by:
    getTotalBufferedDuration in interface Player
    @@ -2612,13 +2820,28 @@

    getTotalBufferedDuration

    • isCurrentWindowDynamic

      -
      public boolean isCurrentWindowDynamic()
      -
      Description copied from interface: Player
      -
      Returns whether the current window is dynamic, or false if the Timeline is - empty.
      +
      @Deprecated
      +public boolean isCurrentWindowDynamic()
      +
      Deprecated.
      Specified by:
      isCurrentWindowDynamic in interface Player
      +
      +
    • +
    + + + +
      +
    • +

      isCurrentMediaItemDynamic

      +
      public boolean isCurrentMediaItemDynamic()
      +
      Description copied from interface: Player
      +
      Returns whether the current MediaItem is dynamic (may change when the Timeline + is updated), or false if the Timeline is empty.
      +
      +
      Specified by:
      +
      isCurrentMediaItemDynamic in interface Player
      See Also:
      Timeline.Window.isDynamic
      @@ -2630,12 +2853,28 @@

      isCurrentWindowDynamic

      • isCurrentWindowLive

        -
        public boolean isCurrentWindowLive()
        -
        Description copied from interface: Player
        -
        Returns whether the current window is live, or false if the Timeline is empty.
        +
        @Deprecated
        +public boolean isCurrentWindowLive()
        +
        Deprecated.
        Specified by:
        isCurrentWindowLive in interface Player
        +
        +
      • +
      + + + +
        +
      • +

        isCurrentMediaItemLive

        +
        public boolean isCurrentMediaItemLive()
        +
        Description copied from interface: Player
        +
        Returns whether the current MediaItem is live, or false if the Timeline + is empty.
        +
        +
        Specified by:
        +
        isCurrentMediaItemLive in interface Player
        See Also:
        Timeline.Window.isLive()
        @@ -2650,8 +2889,8 @@

        getCurrentLiveOffset

        public long getCurrentLiveOffset()
        Description copied from interface: Player
        Returns the offset of the current playback position from the live edge in milliseconds, or - C.TIME_UNSET if the current window isn't live or the - offset is unknown. + C.TIME_UNSET if the current MediaItem Player.isCurrentMediaItemLive() isn't + live} or the offset is unknown.

        The offset is calculated as currentTime - playbackPosition, so should usually be positive. @@ -2670,13 +2909,27 @@

        getCurrentLiveOffset

        • isCurrentWindowSeekable

          -
          public boolean isCurrentWindowSeekable()
          -
          Description copied from interface: Player
          -
          Returns whether the current window is seekable, or false if the Timeline is - empty.
          +
          @Deprecated
          +public boolean isCurrentWindowSeekable()
          +
          Deprecated.
          Specified by:
          isCurrentWindowSeekable in interface Player
          +
          +
        • +
        + + + +
          +
        • +

          isCurrentMediaItemSeekable

          +
          public boolean isCurrentMediaItemSeekable()
          +
          Description copied from interface: Player
          +
          Returns whether the current MediaItem is seekable, or false if the Timeline is empty.
          +
          +
          Specified by:
          +
          isCurrentMediaItemSeekable in interface Player
          See Also:
          Timeline.Window.isSeekable
          @@ -2737,9 +2990,9 @@

          getCurrentAdIndexInAdGroup

          getContentDuration

          public long getContentDuration()
          Description copied from interface: Player
          -
          If Player.isPlayingAd() returns true, returns the duration of the current content - window in milliseconds, or C.TIME_UNSET if the duration is not known. If there is no ad - playing, the returned duration is the same as that returned by Player.getDuration().
          +
          If Player.isPlayingAd() returns true, returns the duration of the current content in + milliseconds, or C.TIME_UNSET if the duration is not known. If there is no ad playing, + the returned duration is the same as that returned by Player.getDuration().
          Specified by:
          getContentDuration in interface Player
          @@ -2772,8 +3025,8 @@

          getContentBufferedPosition

          public long getContentBufferedPosition()
          Description copied from interface: Player
          If Player.isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds. If there is no ad - playing, the returned position is the same as that returned by Player.getBufferedPosition().
          + the current content up to which data is buffered, in milliseconds. If there is no ad playing, + the returned position is the same as that returned by Player.getBufferedPosition().
        Specified by:
        getContentBufferedPosition in interface Player
        @@ -2801,14 +3054,15 @@

        getAudioAttributes

        • setVolume

          -
          public void setVolume​(float audioVolume)
          +
          public void setVolume​(float volume)
          Description copied from interface: Player
          -
          Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
          +
          Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal + unchanged), inclusive.
          Specified by:
          setVolume in interface Player
          Parameters:
          -
          audioVolume - Linear output gain to apply to all audio channels.
          +
          volume - Linear output gain to apply to all audio channels.
        @@ -3052,7 +3306,7 @@

        getCurrentCues

        • getDeviceInfo

          -
          public DeviceInfo getDeviceInfo()
          +
          public DeviceInfo getDeviceInfo()
          Description copied from interface: Player
          Gets the device information.
          @@ -3071,12 +3325,12 @@

          getDeviceVolume

          Description copied from interface: Player
          Gets the current volume of the device. -

          For devices with local playback, the volume returned +

          For devices with local playback, the volume returned by this method varies according to the current stream type. The stream type is determined by AudioAttributes.usage which can be converted to stream type with - Util.getStreamTypeForAudioUsage(int). + Util.getStreamTypeForAudioUsage(int). -

          For devices with remote playback, the volume of the +

          For devices with remote playback, the volume of the remote device is returned.

          Specified by:
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory.html b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.AdsConfiguration.Builder.html similarity index 60% rename from docs/doc/reference/com/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory.html rename to docs/doc/reference/com/google/android/exoplayer2/MediaItem.AdsConfiguration.Builder.html index 13079461d9f..d71987cbca1 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.AdsConfiguration.Builder.html @@ -2,36 +2,36 @@ -CacheDataSinkFactory (ExoPlayer library) +MediaItem.AdsConfiguration.Builder (ExoPlayer library) - - - - - + + + + + - - + +
        @@ -121,10 +115,15 @@

        Class MediaItem.Cli
      • java.lang.Object
      • +
      • +

      • @@ -137,10 +136,12 @@

        Class MediaItem.Cli
        MediaItem


    -
    public static final class MediaItem.ClippingProperties
    -extends Object
    -implements Bundleable
    -
    Optionally clips the media item to a custom start and end position.
    +
    @Deprecated
    +public static final class MediaItem.ClippingProperties
    +extends MediaItem.ClippingConfiguration
    +
    Deprecated. + +
    @@ -155,6 +156,13 @@

    Class MediaItem.Cli

    Nested Class Summary

    + @@ -232,31 +211,13 @@

    Field Summary

    Method Summary

    - - - - - - - - - - - - - - - - - - - - - - -
    All Methods Instance Methods Concrete Methods 
    Modifier and TypeMethodDescription
    booleanequals​(Object obj) 
    inthashCode() 
    BundletoBundle() -
    Returns a Bundle representing the information stored in this object.
    -
    + - - -
    - diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.Builder.html new file mode 100644 index 00000000000..b8bc49adea8 --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.Builder.html @@ -0,0 +1,503 @@ + + + + +MediaItem.DrmConfiguration.Builder (ExoPlayer library) + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class MediaItem.DrmConfiguration.Builder

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.google.android.exoplayer2.MediaItem.DrmConfiguration.Builder
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.html b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.html index 962e8326a79..b92180a011b 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.DrmConfiguration.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10}; +var data = {"i0":10,"i1":10,"i2":10,"i3":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -86,7 +86,7 @@

    -
    public static final class MediaItem.PlaybackProperties
    -extends Object
    -
    Properties for local playback.
    +
    @Deprecated
    +public static final class MediaItem.PlaybackProperties
    +extends MediaItem.LocalConfiguration
    +
    Deprecated. + +
    @@ -149,247 +151,36 @@

    Class MediaItem.Pla

    Field Summary

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Fields 
    Modifier and TypeFieldDescription
    MediaItem.AdsConfigurationadsConfiguration -
    Optional ads configuration.
    -
    StringcustomCacheKey -
    Optional custom cache key (only used for progressive streams).
    -
    MediaItem.DrmConfigurationdrmConfiguration -
    Optional MediaItem.DrmConfiguration for the media.
    -
    StringmimeType -
    The optional MIME type of the item, or null if unspecified.
    -
    List<StreamKey>streamKeys -
    Optional stream keys by which the manifest is filtered.
    -
    List<MediaItem.Subtitle>subtitles -
    Optional subtitles to be sideloaded.
    -
    Objecttag -
    Optional tag for custom attributes.
    -
    Uriuri -
    The Uri.
    -
    - - - - -
    - - - -
    -
      -
    • - +
        -
      • - - -

        Field Detail

        - - - -
          -
        • -

          uri

          -
          public final Uri uri
          -
          The Uri.
          -
        • -
        - - - -
          -
        • -

          mimeType

          -
          @Nullable
          -public final String mimeType
          -
          The optional MIME type of the item, or null if unspecified. - -

          The MIME type can be used to disambiguate media items that have a URI which does not allow - to infer the actual media type.

          -
        • -
        - - - - - - - - - +
      • +

        Method Summary

          -
        • -

          streamKeys

          -
          public final List<StreamKey> streamKeys
          -
          Optional stream keys by which the manifest is filtered.
          -
        • -
        - +
      • -
          -
        • -

          customCacheKey

          -
          @Nullable
          -public final String customCacheKey
          -
          Optional custom cache key (only used for progressive streams).
          -
        • +

          Methods inherited from class com.google.android.exoplayer2.MediaItem.LocalConfiguration

          +equals, hashCode
        - - - - - - -
          -
        • -

          tag

          -
          @Nullable
          -public final Object tag
          -
          Optional tag for custom attributes. The tag for the media source which will be published in - the com.google.android.exoplayer2.Timeline of the source as - com.google.android.exoplayer2.Timeline.Window#tag.
          -
        • -
        -
      • -
      -
      - -
      - @@ -449,9 +240,9 @@

      hashCode

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaItem.Subtitle.html b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.Subtitle.html index 6f9c93e6b65..22d9d9bfcf8 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaItem.Subtitle.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaItem.Subtitle.html @@ -25,12 +25,6 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; -var altColor = "altColor"; -var rowColor = "rowColor"; -var tableTab = "tableTab"; -var activeTableTab = "activeTableTab"; var pathtoroot = "../../../../"; var useModuleDirectories = false; loadScripts(document, 'script'); @@ -86,16 +80,16 @@
    @@ -121,10 +115,15 @@

    Class MediaItem.Subtitle

  • java.lang.Object
  • +
  • +
    • @@ -133,15 +132,35 @@

      Class MediaItem.Subtitle

      MediaItem

    -
    public static final class MediaItem.Subtitle
    -extends Object
    -
    Properties for a text track.
    +
    @Deprecated
    +public static final class MediaItem.Subtitle
    +extends MediaItem.SubtitleConfiguration
    +
    Deprecated. + +
    @@ -542,7 +615,7 @@

    toBundle

    public Bundle toBundle()
    Returns a Bundle representing the information stored in this object. -

    It omits the playbackProperties field. The playbackProperties of an +

    It omits the localConfiguration field. The localConfiguration of an instance restored by CREATOR will always be null.

    Specified by:
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.Builder.html index cceffedcbff..764cb28e273 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.Builder.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":42,"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":42}; +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"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":42}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -186,8 +186,8 @@

    Method Summary

    MediaMetadata.Builder -maybeSetArtworkData​(byte[] artworkData, - int artworkDataType) +maybeSetArtworkData​(byte[] artworkData, + @com.google.android.exoplayer2.MediaMetadata.PictureType int artworkDataType)
    Sets the artwork data as a compressed byte array in the event that the associated MediaMetadata.PictureType is MediaMetadata.PICTURE_TYPE_FRONT_COVER, the existing MediaMetadata.PictureType is not MediaMetadata.PICTURE_TYPE_FRONT_COVER, or the current artworkData is not set.
    @@ -195,239 +195,246 @@

    Method Summary

    MediaMetadata.Builder +populate​(MediaMetadata mediaMetadata) + +
    Populates all the fields from mediaMetadata, provided they are non-null.
    + + + +MediaMetadata.Builder populateFromMetadata​(Metadata metadata)
    Sets all fields supported by the entries within the Metadata.
    - + MediaMetadata.Builder populateFromMetadata​(List<Metadata> metadataList)
    Sets all fields supported by the entries within the list of Metadata.
    - + MediaMetadata.Builder setAlbumArtist​(CharSequence albumArtist)
    Sets the album artist.
    - + MediaMetadata.Builder setAlbumTitle​(CharSequence albumTitle)
    Sets the album title.
    - + MediaMetadata.Builder setArtist​(CharSequence artist)
    Sets the artist.
    - + MediaMetadata.Builder setArtworkData​(byte[] artworkData) - + MediaMetadata.Builder setArtworkData​(byte[] artworkData, - Integer artworkDataType) + @PictureType Integer artworkDataType)
    Sets the artwork data as a compressed byte array with an associated artworkDataType.
    - + MediaMetadata.Builder setArtworkUri​(Uri artworkUri)
    Sets the artwork Uri.
    - + MediaMetadata.Builder setCompilation​(CharSequence compilation)
    Sets the compilation.
    - + MediaMetadata.Builder setComposer​(CharSequence composer)
    Sets the composer.
    - + MediaMetadata.Builder setConductor​(CharSequence conductor)
    Sets the conductor.
    - + MediaMetadata.Builder setDescription​(CharSequence description)
    Sets the description.
    - + MediaMetadata.Builder setDiscNumber​(Integer discNumber)
    Sets the disc number.
    - + MediaMetadata.Builder setDisplayTitle​(CharSequence displayTitle)
    Sets the display title.
    - + MediaMetadata.Builder setExtras​(Bundle extras)
    Sets the extras Bundle.
    - + MediaMetadata.Builder -setFolderType​(Integer folderType) +setFolderType​(@FolderType Integer folderType) - + MediaMetadata.Builder setGenre​(CharSequence genre)
    Sets the genre.
    - + MediaMetadata.Builder setIsPlayable​(Boolean isPlayable)
    Sets whether the media is playable.
    - + MediaMetadata.Builder setMediaUri​(Uri mediaUri)
    Sets the media Uri.
    - + MediaMetadata.Builder setOverallRating​(Rating overallRating)
    Sets the overall Rating.
    - + MediaMetadata.Builder setRecordingDay​(Integer recordingDay)
    Sets the day of the recording date.
    - + MediaMetadata.Builder setRecordingMonth​(Integer recordingMonth)
    Sets the month of the recording date.
    - + MediaMetadata.Builder setRecordingYear​(Integer recordingYear)
    Sets the year of the recording date.
    - + MediaMetadata.Builder setReleaseDay​(Integer releaseDay)
    Sets the day of the release date.
    - + MediaMetadata.Builder setReleaseMonth​(Integer releaseMonth)
    Sets the month of the release date.
    - + MediaMetadata.Builder setReleaseYear​(Integer releaseYear)
    Sets the year of the release date.
    - + MediaMetadata.Builder setSubtitle​(CharSequence subtitle)
    Sets the subtitle.
    - + MediaMetadata.Builder setTitle​(CharSequence title)
    Sets the title.
    - + MediaMetadata.Builder setTotalDiscCount​(Integer totalDiscCount)
    Sets the total number of discs.
    - + MediaMetadata.Builder setTotalTrackCount​(Integer totalTrackCount)
    Sets the total number of tracks.
    - + MediaMetadata.Builder setTrackNumber​(Integer trackNumber)
    Sets the track number.
    - + MediaMetadata.Builder setUserRating​(Rating userRating)
    Sets the user Rating.
    - + MediaMetadata.Builder setWriter​(CharSequence writer)
    Sets the writer.
    - + MediaMetadata.Builder setYear​(Integer year) @@ -601,7 +608,7 @@

    setArtworkData

    public MediaMetadata.Builder setArtworkData​(@Nullable byte[] artworkData) @@ -614,11 +621,11 @@

    setArtworkData

    public MediaMetadata.Builder setArtworkData​(@Nullable
                                                 byte[] artworkData,
                                                 @Nullable @PictureType
    -                                            Integer artworkDataType)
    + @PictureType Integer artworkDataType)
    Sets the artwork data as a compressed byte array with an associated artworkDataType.
    - + @@ -894,6 +901,17 @@

    populateFromMetadata

    In the event that multiple Metadata.Entry objects within any of the Metadata relate to the same MediaMetadata field, then the last one will be used. + + + +

      +
    • +

      populate

      +
      public MediaMetadata.Builder populate​(@Nullable
      +                                      MediaMetadata mediaMetadata)
      +
      Populates all the fields from mediaMetadata, provided they are non-null.
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.FolderType.html b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.FolderType.html index 5cf377cb113..c555f2c606d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.FolderType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.FolderType.html @@ -115,6 +115,7 @@

    Annotation Ty
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface MediaMetadata.FolderType
    The folder type of the media item. diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.PictureType.html b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.PictureType.html index 8aa35d1a6e3..06dab22929e 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.PictureType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.PictureType.html @@ -115,6 +115,7 @@

    Annotation T
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface MediaMetadata.PictureType
    The picture type of the artwork. diff --git a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.html b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.html index a8ce3ba8e02..446b711fa76 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.html +++ b/docs/doc/reference/com/google/android/exoplayer2/MediaMetadata.html @@ -232,7 +232,7 @@

    Field Summary

    -Integer +@PictureType Integer artworkDataType
    Optional MediaMetadata.PictureType of the artwork data.
    @@ -365,7 +365,7 @@

    Field Summary

    -Integer +@FolderType Integer folderType @@ -1196,7 +1196,7 @@

    artworkData

    artworkDataType

    @Nullable
     @PictureType
    -public final Integer artworkDataType
    +public final @PictureType Integer artworkDataType
    Optional MediaMetadata.PictureType of the artwork data.
    @@ -1241,7 +1241,7 @@

    totalTrackCount

    folderType

    @Nullable
     @FolderType
    -public final Integer folderType
    +public final @FolderType Integer folderType diff --git a/docs/doc/reference/com/google/android/exoplayer2/NoSampleRenderer.html b/docs/doc/reference/com/google/android/exoplayer2/NoSampleRenderer.html index 36998fa5804..038a05ad8e3 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/NoSampleRenderer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/NoSampleRenderer.html @@ -156,7 +156,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Renderer

    -Renderer.State, Renderer.VideoScalingMode, Renderer.WakeupListener +Renderer.MessageType, Renderer.State, Renderer.WakeupListener
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.Builder.html index ca5c0339c35..80bb720c042 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.Builder.html @@ -181,14 +181,14 @@

    Method Summary

    Player.Commands.Builder -add​(int command) +add​(@com.google.android.exoplayer2.Player.Command int command) Player.Commands.Builder -addAll​(int... commands) +addAll​(@com.google.android.exoplayer2.Player.Command int... commands)
    Adds commands.
    @@ -209,7 +209,7 @@

    Method Summary

    Player.Commands.Builder -addIf​(int command, +addIf​(@com.google.android.exoplayer2.Player.Command int command, boolean condition)
    Adds a Player.Command if the provided condition is true.
    @@ -224,21 +224,21 @@

    Method Summary

    Player.Commands.Builder -remove​(int command) +remove​(@com.google.android.exoplayer2.Player.Command int command)
    Removes a Player.Command.
    Player.Commands.Builder -removeAll​(int... commands) +removeAll​(@com.google.android.exoplayer2.Player.Command int... commands)
    Removes commands.
    Player.Commands.Builder -removeIf​(int command, +removeIf​(@com.google.android.exoplayer2.Player.Command int command, boolean condition)
    Removes a Player.Command if the provided condition is true.
    @@ -288,14 +288,14 @@

    Builder

    Method Detail

    - + - +
    • addIf

      public Player.Commands.Builder addIf​(@Command
      -                                     int command,
      +                                     @com.google.android.exoplayer2.Player.Command int command,
                                            boolean condition)
      Adds a Player.Command if the provided condition is true. Does nothing otherwise.
      @@ -328,14 +328,14 @@

      addIf

    - +
    • addAll

      public Player.Commands.Builder addAll​(@Command
      -                                      int... commands)
      + @com.google.android.exoplayer2.Player.Command int... commands)
      Adds commands.
      Parameters:
      @@ -381,14 +381,14 @@

      addAllCommands

    - + - +
    • removeIf

      public Player.Commands.Builder removeIf​(@Command
      -                                        int command,
      +                                        @com.google.android.exoplayer2.Player.Command int command,
                                               boolean condition)
      Removes a Player.Command if the provided condition is true. Does nothing otherwise.
      @@ -421,14 +421,14 @@

      removeIf

    - +
    • removeAll

      public Player.Commands.Builder removeAll​(@Command
      -                                         int... commands)
      + @com.google.android.exoplayer2.Player.Command int... commands)
      Removes commands.
      Parameters:
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.html b/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.html index 7b79b004ecb..545fd32c74e 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.Commands.html @@ -236,7 +236,7 @@

      Method Summary

      boolean -contains​(int command) +contains​(@com.google.android.exoplayer2.Player.Command int command)
      Returns whether the set of commands contains the specified Player.Command.
      @@ -247,7 +247,7 @@

      Method Summary

        -int +@com.google.android.exoplayer2.Player.Command int get​(int index)
      Returns the Player.Command at the given index.
      @@ -336,14 +336,14 @@

      buildUpon

      Returns a Player.Commands.Builder initialized with the values of this instance.
    - +
    • contains

      public boolean contains​(@Command
      -                        int command)
      + @com.google.android.exoplayer2.Player.Command int command)
      Returns whether the set of commands contains the specified Player.Command.
    @@ -364,7 +364,7 @@

    size

  • get

    @Command
    -public int get​(int index)
    +public @com.google.android.exoplayer2.Player.Command int get​(int index)
    Returns the Player.Command at the given index.
    Parameters:
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.DiscontinuityReason.html b/docs/doc/reference/com/google/android/exoplayer2/Player.DiscontinuityReason.html index 0fa6ed4600f..76879e90807 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.DiscontinuityReason.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.DiscontinuityReason.html @@ -115,6 +115,7 @@

    Annotation
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface Player.DiscontinuityReason
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.Event.html b/docs/doc/reference/com/google/android/exoplayer2/Player.Event.html index 51e7f502934..5407eca322b 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.Event.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.Event.html @@ -115,6 +115,7 @@

    Annotation Type Player.Ev
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface Player.Event
    Events that can be reported via Player.Listener.onEvents(Player, Events). diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.EventListener.html b/docs/doc/reference/com/google/android/exoplayer2/Player.EventListener.html index 8aadfb108fe..f6beaf7e464 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.EventListener.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.EventListener.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":50,"i1":50,"i2":50,"i3":50,"i4":50,"i5":50,"i6":50,"i7":50,"i8":50,"i9":50,"i10":50,"i11":50,"i12":50,"i13":50,"i14":50,"i15":50,"i16":50,"i17":50,"i18":50,"i19":50,"i20":50,"i21":50,"i22":50,"i23":50,"i24":50,"i25":50}; +var data = {"i0":50,"i1":50,"i2":50,"i3":50,"i4":50,"i5":50,"i6":50,"i7":50,"i8":50,"i9":50,"i10":50,"i11":50,"i12":50,"i13":50,"i14":50,"i15":50,"i16":50,"i17":50,"i18":50,"i19":50,"i20":50,"i21":50,"i22":50,"i23":50,"i24":50,"i25":50,"i26":50}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -126,7 +126,7 @@

    Interface Player.EventL

    All Known Implementing Classes:
    -
    AnalyticsCollector, DebugTextViewHelper, ExoPlayerTestRunner, ImaAdsLoader
    +
    AnalyticsCollector, DebugTextViewHelper, ExoPlayerTestRunner, ImaAdsLoader, SubtitleView
    Enclosing interface:
    @@ -169,7 +169,7 @@

    Method Summary

    onAvailableCommandsChanged​(Player.Commands availableCommands)
    Deprecated.
    -
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one +
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one Player.Command.
    @@ -209,7 +209,7 @@

    Method Summary

    default void -onMaxSeekToPreviousPositionChanged​(int maxSeekToPreviousPositionMs) +onMaxSeekToPreviousPositionChanged​(long maxSeekToPreviousPositionMs)
    Deprecated.
    Called when the value of Player.getMaxSeekToPreviousPosition() changes.
    @@ -217,8 +217,8 @@

    Method Summary

    default void -onMediaItemTransition​(MediaItem mediaItem, - int reason) +onMediaItemTransition​(MediaItem mediaItem, + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason)
    Deprecated.
    Called when playback transitions to a media item or starts repeating a media item according @@ -243,7 +243,7 @@

    Method Summary

    default void -onPlaybackStateChanged​(int playbackState) +onPlaybackStateChanged​(@com.google.android.exoplayer2.Player.State int playbackState)
    Deprecated.
    Called when the value returned from Player.getPlaybackState() changes.
    @@ -251,7 +251,7 @@

    Method Summary

    default void -onPlaybackSuppressionReasonChanged​(int playbackSuppressionReason) +onPlaybackSuppressionReasonChanged​(@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason)
    Deprecated.
    Called when the value returned from Player.getPlaybackSuppressionReason() changes.
    @@ -275,11 +275,11 @@

    Method Summary

    default void -onPlayerStateChanged​(boolean playWhenReady, - int playbackState) +onPlayerStateChanged​(boolean playWhenReady, + @com.google.android.exoplayer2.Player.State int playbackState) @@ -293,8 +293,8 @@

    Method Summary

    default void -onPlayWhenReadyChanged​(boolean playWhenReady, - int reason) +onPlayWhenReadyChanged​(boolean playWhenReady, + @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int reason)
    Deprecated.
    Called when the value returned from Player.getPlayWhenReady() changes.
    @@ -302,18 +302,18 @@

    Method Summary

    default void -onPositionDiscontinuity​(int reason) +onPositionDiscontinuity​(@com.google.android.exoplayer2.Player.DiscontinuityReason int reason) default void -onPositionDiscontinuity​(Player.PositionInfo oldPosition, +onPositionDiscontinuity​(Player.PositionInfo oldPosition, Player.PositionInfo newPosition, - int reason) + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
    Deprecated.
    Called when a position discontinuity occurs.
    @@ -321,7 +321,7 @@

    Method Summary

    default void -onRepeatModeChanged​(int repeatMode) +onRepeatModeChanged​(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
    Deprecated.
    Called when the value of Player.getRepeatMode() changes.
    @@ -362,28 +362,34 @@

    Method Summary

    default void -onStaticMetadataChanged​(List<Metadata> metadataList) +onTimelineChanged​(Timeline timeline, + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason) + +
    Deprecated.
    +
    Called when the timeline has been refreshed.
    + + + +default void +onTracksChanged​(TrackGroupArray trackGroups, + TrackSelectionArray trackSelections)
    Deprecated. -
    Use Player.getMediaMetadata() and onMediaMetadataChanged(MediaMetadata) for access to structured metadata, or access the - raw static metadata directly from the track - selections' formats.
    +
    - + default void -onTimelineChanged​(Timeline timeline, - int reason) +onTrackSelectionParametersChanged​(TrackSelectionParameters parameters)
    Deprecated.
    -
    Called when the timeline has been refreshed.
    +
    Called when the value returned from Player.getTrackSelectionParameters() changes.
    - + default void -onTracksChanged​(TrackGroupArray trackGroups, - TrackSelectionArray trackSelections) +onTracksInfoChanged​(TracksInfo tracksInfo)
    Deprecated.
    Called when the available or selected tracks change.
    @@ -406,7 +412,7 @@

    Method Summary

    Method Detail

    - +
      @@ -414,12 +420,14 @@

      Method Detail

      onTimelineChanged

      default void onTimelineChanged​(Timeline timeline,
                                      @TimelineChangeReason
      -                               int reason)
      + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
      Deprecated.
      Called when the timeline has been refreshed. -

      Note that the current window or period index may change as a result of a timeline change. - If playback can't continue smoothly because of this timeline change, a separate onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be triggered. +

      Note that the current MediaItem or playback position may change as a result of a + timeline change. If playback can't continue smoothly because of this timeline change, a + separate onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be + triggered.

      onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration.

      @@ -430,7 +438,7 @@

      onTimelineChanged

  • - +
      @@ -439,7 +447,7 @@

      onMediaItemTransition

      default void onMediaItemTransition​(@Nullable
                                          MediaItem mediaItem,
                                          @MediaItemTransitionReason
      -                                   int reason)
      + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason)
      Deprecated.
      Called when playback transitions to a media item or starts repeating a media item according to the current repeat mode. @@ -462,9 +470,12 @@

      onMediaItemTransition

    - + @@ -506,7 +520,11 @@

    onMediaMetadataChanged

    The provided MediaMetadata is a combination of the MediaItem.mediaMetadata and the static and dynamic metadata from the track - selections' formats and MetadataOutput.onMetadata(Metadata). + selections' formats and Player.Listener.onMetadata(Metadata). If a field is populated in + the MediaItem.mediaMetadata, it will be prioritised above the same field coming from + static or dynamic metadata. + +

    This method may be called multiple times in quick succession.

    onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration. @@ -566,7 +584,7 @@

    onLoadingChanged

    onAvailableCommandsChanged

    default void onAvailableCommandsChanged​(Player.Commands availableCommands)
    Deprecated.
    -
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one +
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one Player.Command.

    onEvents(Player, Events) will also be called to report this event along with @@ -577,7 +595,25 @@

    onAvailableCommandsChanged

    - + + + + + - +
    • onPlaybackStateChanged

      default void onPlaybackStateChanged​(@State
      -                                    int playbackState)
      + @com.google.android.exoplayer2.Player.State int playbackState)
      Deprecated.
      Called when the value returned from Player.getPlaybackState() changes. @@ -611,7 +647,7 @@

      onPlaybackStateChanged

    - +
      @@ -619,7 +655,7 @@

      onPlaybackStateChanged

      onPlayWhenReadyChanged

      default void onPlayWhenReadyChanged​(boolean playWhenReady,
                                           @PlayWhenReadyChangeReason
      -                                    int reason)
      + @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int reason)
      Deprecated.
      Called when the value returned from Player.getPlayWhenReady() changes. @@ -632,14 +668,14 @@

      onPlayWhenReadyChanged

    - +
    • onPlaybackSuppressionReasonChanged

      default void onPlaybackSuppressionReasonChanged​(@PlaybackSuppressionReason
      -                                                int playbackSuppressionReason)
      + @com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason)
      Deprecated.
      Called when the value returned from Player.getPlaybackSuppressionReason() changes. @@ -669,14 +705,14 @@

      onIsPlayingChanged

    - +
    • onRepeatModeChanged

      default void onRepeatModeChanged​(@RepeatMode
      -                                 int repeatMode)
      + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
      Deprecated.
      Called when the value of Player.getRepeatMode() changes. @@ -702,7 +738,7 @@

      onShuffleModeEnabledChanged

      other events that happen in the same Looper message queue iteration.
      Parameters:
      -
      shuffleModeEnabled - Whether shuffling of windows is enabled.
      +
      shuffleModeEnabled - Whether shuffling of media items is enabled.
    @@ -750,7 +786,7 @@

    onPlayerErrorChanged

    - + - +
      @@ -773,7 +809,7 @@

      onPositionDiscontinuity

      default void onPositionDiscontinuity​(Player.PositionInfo oldPosition,
                                            Player.PositionInfo newPosition,
                                            @DiscontinuityReason
      -                                     int reason)
      + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
      Deprecated.
      Called when a position discontinuity occurs. @@ -848,13 +884,13 @@

      onSeekForwardIncrementChanged

    - + @@ -900,15 +936,15 @@

    onEvents

    Parameters:
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.Events.html b/docs/doc/reference/com/google/android/exoplayer2/Player.Events.html index b72772f13d3..cbca9d7e72a 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.Events.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.Events.html @@ -181,14 +181,14 @@

    Method Summary

    boolean -contains​(int event) +contains​(@com.google.android.exoplayer2.Player.Event int event)
    Returns whether the given Player.Event occurred.
    boolean -containsAny​(int... events) +containsAny​(@com.google.android.exoplayer2.Player.Event int... events)
    Returns whether any of the given events occurred.
    @@ -199,7 +199,7 @@

    Method Summary

      -int +@com.google.android.exoplayer2.Player.Event int get​(int index)
    Returns the Player.Event at the given index.
    @@ -265,14 +265,14 @@

    Events

    Method Detail

    - +
    • contains

      public boolean contains​(@Event
      -                        int event)
      + @com.google.android.exoplayer2.Player.Event int event)
      Returns whether the given Player.Event occurred.
      Parameters:
      @@ -282,14 +282,14 @@

      contains

    - + - @@ -419,7 +411,7 @@

    Methods inherited from interface com.google.android.exoplayer2.video.

    Method Detail

    - + - + - +
    • -

      onTracksChanged

      -
      default void onTracksChanged​(TrackGroupArray trackGroups,
      -                             TrackSelectionArray trackSelections)
      -
      Description copied from interface: Player.EventListener
      +

      onTracksInfoChanged

      +
      default void onTracksInfoChanged​(TracksInfo tracksInfo)
      +
      Description copied from interface: Player.EventListener
      Called when the available or selected tracks change.

      Player.EventListener.onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration.

      Specified by:
      -
      onTracksChanged in interface Player.EventListener
      +
      onTracksInfoChanged in interface Player.EventListener
      Parameters:
      -
      trackGroups - The available tracks. Never null, but may be of length zero.
      -
      trackSelections - The selected tracks. Never null, but may contain null elements. A - concrete implementation may include null elements if it has a fixed number of renderer - components, wishes to report a TrackSelection for each of them, and has one or more - renderer components that is not assigned any selected tracks.
      +
      tracksInfo - The available tracks information. Never null, but may be of length zero.
    @@ -526,7 +515,7 @@

    onIsLoadingChanged

    onAvailableCommandsChanged

    default void onAvailableCommandsChanged​(Player.Commands availableCommands)
    Description copied from interface: Player.EventListener
    -
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one +
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one Player.Command.

    Player.EventListener.onEvents(Player, Events) will also be called to report this event along with @@ -539,28 +528,28 @@

    onAvailableCommandsChanged

    - + - + - + - + @@ -713,7 +702,7 @@

    onPlayerErrorChanged

    - +
      @@ -722,8 +711,8 @@

      onPositionDiscontinuity

      default void onPositionDiscontinuity​(Player.PositionInfo oldPosition,
                                            Player.PositionInfo newPosition,
                                            @DiscontinuityReason
      -                                     int reason)
      -
      Description copied from interface: Player.EventListener
      + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason) +
      Description copied from interface: Player.EventListener
      Called when a position discontinuity occurs.

      A position discontinuity occurs when the playing period changes, the playback position @@ -734,7 +723,7 @@

      onPositionDiscontinuity

      other events that happen in the same Looper message queue iteration.
      Specified by:
      -
      onPositionDiscontinuity in interface Player.EventListener
      +
      onPositionDiscontinuity in interface Player.EventListener
      Parameters:
      oldPosition - The position before the discontinuity.
      newPosition - The position after the discontinuity.
      @@ -812,11 +801,8 @@

      onSeekBackIncrementChanged

    • onAudioSessionIdChanged

      default void onAudioSessionIdChanged​(int audioSessionId)
      -
      Description copied from interface: AudioListener
      Called when the audio session ID changes.
      -
      Specified by:
      -
      onAudioSessionIdChanged in interface AudioListener
      Parameters:
      audioSessionId - The audio session ID.
      @@ -829,11 +815,8 @@

      onAudioSessionIdChanged

    • onAudioAttributesChanged

      default void onAudioAttributesChanged​(AudioAttributes audioAttributes)
      -
      Description copied from interface: AudioListener
      Called when the audio attributes change.
      -
      Specified by:
      -
      onAudioAttributesChanged in interface AudioListener
      Parameters:
      audioAttributes - The audio attributes.
      @@ -846,11 +829,8 @@

      onAudioAttributesChanged

    • onVolumeChanged

      default void onVolumeChanged​(float volume)
      -
      Description copied from interface: AudioListener
      Called when the volume changes.
      -
      Specified by:
      -
      onVolumeChanged in interface AudioListener
      Parameters:
      volume - The new volume, with 0 being silence and 1 being unity gain.
      @@ -863,29 +843,21 @@

      onVolumeChanged

    • onSkipSilenceEnabledChanged

      default void onSkipSilenceEnabledChanged​(boolean skipSilenceEnabled)
      -
      Description copied from interface: AudioListener
      Called when skipping silences is enabled or disabled in the audio stream.
      -
      Specified by:
      -
      onSkipSilenceEnabledChanged in interface AudioListener
      Parameters:
      skipSilenceEnabled - Whether skipping silences in the audio stream is enabled.
    - + @@ -896,12 +868,7 @@

    onDeviceInfoChanged

    onDeviceVolumeChanged

    default void onDeviceVolumeChanged​(int volume,
                                        boolean muted)
    -
    Called when the device volume or mute state changes.
    -
    -
    Specified by:
    -
    onDeviceVolumeChanged in interface DeviceListener
    -
    @@ -924,15 +891,15 @@

    onEvents

    Specified by:
    @@ -952,11 +919,8 @@

    onEvents

  • onVideoSizeChanged

    default void onVideoSizeChanged​(VideoSize videoSize)
    -
    Description copied from interface: VideoListener
    Called each time there's a change in the size of the video being rendered.
    -
    Specified by:
    -
    onVideoSizeChanged in interface VideoListener
    Parameters:
    videoSize - The new size of the video.
    @@ -970,15 +934,12 @@

    onVideoSizeChanged

    onSurfaceSizeChanged

    default void onSurfaceSizeChanged​(int width,
                                       int height)
    -
    Description copied from interface: VideoListener
    Called each time there's a change in the size of the surface onto which the video is being rendered.
    -
    Specified by:
    -
    onSurfaceSizeChanged in interface VideoListener
    Parameters:
    -
    width - The surface width in pixels. May be C.LENGTH_UNSET if unknown, or 0 if the - video is not rendered onto a surface.
    +
    width - The surface width in pixels. May be C.LENGTH_UNSET if unknown, or 0 if + the video is not rendered onto a surface.
    height - The surface height in pixels. May be C.LENGTH_UNSET if unknown, or 0 if the video is not rendered onto a surface.
    @@ -991,13 +952,8 @@

    onSurfaceSizeChanged

  • onRenderedFirstFrame

    default void onRenderedFirstFrame()
    -
    Description copied from interface: VideoListener
    Called when 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.
    -
    -
    Specified by:
    -
    onRenderedFirstFrame in interface VideoListener
    -
  • @@ -1007,14 +963,11 @@

    onRenderedFirstFrame

  • onCues

    default void onCues​(List<Cue> cues)
    -
    Description copied from interface: TextOutput
    Called when there is a change in the Cues.

    cues is in ascending order of priority. If any of the cue boxes overlap when displayed, the Cue nearer the end of the list should be shown on top.

    -
    Specified by:
    -
    onCues in interface TextOutput
    Parameters:
    cues - The Cues. May be empty.
    @@ -1027,11 +980,8 @@

    onCues

  • onMetadata

    default void onMetadata​(Metadata metadata)
    -
    Description copied from interface: MetadataOutput
    -
    Called when there is metadata associated with current playback time.
    +
    Called when there is metadata associated with the current playback time.
    -
    Specified by:
    -
    onMetadata in interface MetadataOutput
    Parameters:
    metadata - The metadata.
    @@ -1049,7 +999,11 @@

    onMediaMetadataChanged

    The provided MediaMetadata is a combination of the MediaItem.mediaMetadata and the static and dynamic metadata from the track - selections' formats and MetadataOutput.onMetadata(Metadata). + selections' formats and onMetadata(Metadata). If a field is populated in + the MediaItem.mediaMetadata, it will be prioritised above the same field coming from + static or dynamic metadata. + +

    This method may be called multiple times in quick succession.

    Player.EventListener.onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration. diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.MediaItemTransitionReason.html b/docs/doc/reference/com/google/android/exoplayer2/Player.MediaItemTransitionReason.html index ca6b2f59b93..9aeb9e8ff30 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.MediaItemTransitionReason.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.MediaItemTransitionReason.html @@ -115,6 +115,7 @@

    Annot
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface Player.MediaItemTransitionReason

  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.PlayWhenReadyChangeReason.html b/docs/doc/reference/com/google/android/exoplayer2/Player.PlayWhenReadyChangeReason.html index 5727e123a36..c859add3c27 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.PlayWhenReadyChangeReason.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.PlayWhenReadyChangeReason.html @@ -115,6 +115,7 @@

    Annot
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface Player.PlayWhenReadyChangeReason
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.PlaybackSuppressionReason.html b/docs/doc/reference/com/google/android/exoplayer2/Player.PlaybackSuppressionReason.html index adb9d25a81f..e9449f426b6 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.PlaybackSuppressionReason.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.PlaybackSuppressionReason.html @@ -115,6 +115,7 @@

    Annot
    @Documented
     @Retention(SOURCE)
    +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
     public static @interface Player.PlaybackSuppressionReason
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.PositionInfo.html b/docs/doc/reference/com/google/android/exoplayer2/Player.PositionInfo.html index 56aad779c60..14ab0b95893 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.PositionInfo.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.PositionInfo.html @@ -207,6 +207,20 @@

    Field Summary

    +MediaItem +mediaItem + +
    The media item, or null if the timeline is empty.
    + + + +int +mediaItemIndex + +
    The media item index.
    + + + int periodIndex @@ -217,7 +231,7 @@

    Field Summary

    Object periodUid -
    The UID of the period, or null, if the timeline is empty.
    +
    The UID of the period, or null if the timeline is empty.
    @@ -231,14 +245,16 @@

    Field Summary

    int windowIndex -
    The window index.
    +
    Deprecated. +
    Use mediaItemIndex instead.
    +
    Object windowUid -
    The UID of the window, or null, if the timeline is empty.
    +
    The UID of the window, or null if the timeline is empty.
    @@ -259,8 +275,9 @@

    Constructor Summary

    Description -PositionInfo​(Object windowUid, - int windowIndex, +PositionInfo​(Object windowUid, + int mediaItemIndex, + MediaItem mediaItem, Object periodUid, int periodIndex, long positionMs, @@ -271,6 +288,22 @@

    Constructor Summary

    Creates an instance.
    + +PositionInfo​(Object windowUid, + int mediaItemIndex, + Object periodUid, + int periodIndex, + long positionMs, + long contentPositionMs, + int adGroupIndex, + int adIndexInAdGroup) + + + + @@ -338,7 +371,7 @@

    Field Detail

    windowUid

    @Nullable
     public final Object windowUid
    -
    The UID of the window, or null, if the timeline is empty.
    +
    The UID of the window, or null if the timeline is empty.
    @@ -347,8 +380,32 @@

    windowUid

    + + + +
      +
    • +

      mediaItemIndex

      +
      public final int mediaItemIndex
      +
      The media item index.
      +
    • +
    + + + +
      +
    • +

      mediaItem

      +
      @Nullable
      +public final MediaItem mediaItem
      +
      The media item, or null if the timeline is empty.
    @@ -359,7 +416,7 @@

    windowIndex

    periodUid

    @Nullable
     public final Object periodUid
    -
    The UID of the period, or null, if the timeline is empty.
    +
    The UID of the period, or null if the timeline is empty.
    @@ -437,12 +494,37 @@

    Constructor Detail

    + + + +
    • PositionInfo

      public PositionInfo​(@Nullable
                           Object windowUid,
      -                    int windowIndex,
      +                    int mediaItemIndex,
      +                    @Nullable
      +                    MediaItem mediaItem,
                           @Nullable
                           Object periodUid,
                           int periodIndex,
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.RepeatMode.html b/docs/doc/reference/com/google/android/exoplayer2/Player.RepeatMode.html
      index 6c7fa3a240d..f2c8abd799e 100644
      --- a/docs/doc/reference/com/google/android/exoplayer2/Player.RepeatMode.html
      +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.RepeatMode.html
      @@ -115,6 +115,7 @@ 

      Annotation Type Play
      @Documented
       @Retention(SOURCE)
      +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
       public static @interface Player.RepeatMode

    • diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.State.html b/docs/doc/reference/com/google/android/exoplayer2/Player.State.html index f4758744ae0..2e49a77eda5 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.State.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.State.html @@ -115,6 +115,7 @@

      Annotation Type Player.St
      @Documented
       @Retention(SOURCE)
      +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
       public static @interface Player.State
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.TimelineChangeReason.html b/docs/doc/reference/com/google/android/exoplayer2/Player.TimelineChangeReason.html index 34514269e32..9972d826029 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.TimelineChangeReason.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.TimelineChangeReason.html @@ -115,6 +115,7 @@

      Annotation
      @Documented
       @Retention(SOURCE)
      +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
       public static @interface Player.TimelineChangeReason
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Player.html b/docs/doc/reference/com/google/android/exoplayer2/Player.html index 06a5f53fd3b..a2e407a755f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Player.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Player.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":38,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":38,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":38,"i57":6,"i58":38,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":38,"i72":6,"i73":6,"i74":6,"i75":38,"i76":6,"i77":38,"i78":6,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":6,"i96":6,"i97":6,"i98":6,"i99":6,"i100":6,"i101":6,"i102":6,"i103":6,"i104":6,"i105":6,"i106":6,"i107":6,"i108":6,"i109":6,"i110":6,"i111":38}; +var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":38,"i32":38,"i33":6,"i34":38,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":38,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":38,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":38,"i61":6,"i62":38,"i63":38,"i64":6,"i65":38,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":38,"i72":38,"i73":38,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":6,"i80":38,"i81":6,"i82":6,"i83":6,"i84":38,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":6,"i96":6,"i97":38,"i98":6,"i99":6,"i100":38,"i101":6,"i102":6,"i103":6,"i104":6,"i105":6,"i106":6,"i107":6,"i108":6,"i109":6,"i110":6,"i111":6,"i112":6,"i113":6,"i114":6,"i115":6,"i116":6,"i117":6,"i118":6,"i119":6,"i120":6,"i121":6,"i122":38}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -126,7 +126,7 @@

      Interface Player

    All Known Implementing Classes:
    -
    BasePlayer, CastPlayer, ForwardingPlayer, SimpleExoPlayer, StubExoPlayer
    +
    BasePlayer, CastPlayer, ForwardingPlayer, SimpleExoPlayer, StubExoPlayer, StubPlayer

    public interface Player
    @@ -143,10 +143,8 @@

    Interface Player

    @@ -311,7 +309,7 @@

    Field Summary

    static int COMMAND_GET_CURRENT_MEDIA_ITEM -
    Command to get the MediaItem of the current window.
    +
    Command to get the currently playing MediaItem.
    @@ -344,130 +342,180 @@

    Field Summary

    static int +COMMAND_GET_TRACK_INFOS + +
    Command to get track infos.
    + + + +static int COMMAND_GET_VOLUME
    Command to get the player volume.
    - + static int COMMAND_INVALID
    Represents an invalid Player.Command.
    - + static int COMMAND_PLAY_PAUSE
    Command to start, pause or resume playback.
    + +static int +COMMAND_PREPARE + +
    Command to prepare the player.
    + + static int -COMMAND_PREPARE_STOP +COMMAND_SEEK_BACK -
    Command to prepare the player, stop playback or release the player.
    +
    Command to seek back by a fixed increment into the current MediaItem.
    static int -COMMAND_SEEK_BACK +COMMAND_SEEK_FORWARD -
    Command to seek back by a fixed increment into the current window.
    +
    Command to seek forward by a fixed increment into the current MediaItem.
    static int -COMMAND_SEEK_FORWARD +COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM -
    Command to seek forward by a fixed increment into the current window.
    +
    Command to seek anywhere into the current MediaItem.
    static int COMMAND_SEEK_IN_CURRENT_WINDOW -
    Command to seek anywhere into the current window.
    +
    Deprecated. + +
    static int COMMAND_SEEK_TO_DEFAULT_POSITION -
    Command to seek to the default position of the current window.
    +
    Command to seek to the default position of the current MediaItem.
    static int +COMMAND_SEEK_TO_MEDIA_ITEM + +
    Command to seek anywhere in any MediaItem.
    + + + +static int COMMAND_SEEK_TO_NEXT -
    Command to seek to a later position in the current or next window.
    +
    Command to seek to a later position in the current or next MediaItem.
    + + + +static int +COMMAND_SEEK_TO_NEXT_MEDIA_ITEM + +
    Command to seek to the default position of the next MediaItem.
    static int COMMAND_SEEK_TO_NEXT_WINDOW -
    Command to seek to the default position of the next window.
    +
    Deprecated. + +
    static int COMMAND_SEEK_TO_PREVIOUS -
    Command to seek to an earlier position in the current or previous window.
    +
    Command to seek to an earlier position in the current or previous MediaItem.
    static int -COMMAND_SEEK_TO_PREVIOUS_WINDOW +COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM -
    Command to seek to the default position of the previous window.
    +
    Command to seek to the default position of the previous MediaItem.
    static int -COMMAND_SEEK_TO_WINDOW +COMMAND_SEEK_TO_PREVIOUS_WINDOW -
    Command to seek anywhere in any window.
    +
    Deprecated. + +
    static int +COMMAND_SEEK_TO_WINDOW + +
    Deprecated. + +
    + + + +static int COMMAND_SET_DEVICE_VOLUME
    Command to set the device volume and mute it.
    - + static int COMMAND_SET_MEDIA_ITEMS_METADATA
    Command to set the MediaItems metadata.
    - + static int COMMAND_SET_REPEAT_MODE
    Command to set the repeat mode.
    - + static int COMMAND_SET_SHUFFLE_MODE
    Command to enable shuffling.
    - + static int COMMAND_SET_SPEED_AND_PITCH
    Command to set the playback speed and pitch.
    + +static int +COMMAND_SET_TRACK_SELECTION_PARAMETERS + +
    Command to set the player's track selection parameters.
    + + static int COMMAND_SET_VIDEO_SURFACE @@ -484,33 +532,40 @@

    Field Summary

    static int +COMMAND_STOP + +
    Command to stop playback or release the player.
    + + + +static int DISCONTINUITY_REASON_AUTO_TRANSITION
    Automatic playback transition from one period in the timeline to the next.
    - + static int DISCONTINUITY_REASON_INTERNAL
    Discontinuity introduced internally (e.g.
    - + static int DISCONTINUITY_REASON_REMOVE
    Discontinuity caused by the removal of the current period from the Timeline.
    - + static int DISCONTINUITY_REASON_SEEK
    Seek within the current period or to another period.
    - + static int DISCONTINUITY_REASON_SEEK_ADJUSTMENT @@ -518,141 +573,132 @@

    Field Summary

    permitted to be inexact. - + static int DISCONTINUITY_REASON_SKIP
    Discontinuity introduced by a skipped period (for instance a skipped ad).
    - + static int EVENT_AVAILABLE_COMMANDS_CHANGED -
    isCommandAvailable(int) changed for at least one Player.Command.
    +
    isCommandAvailable(int) changed for at least one Player.Command.
    - + static int EVENT_IS_LOADING_CHANGED
    isLoading() ()} changed.
    - + static int EVENT_IS_PLAYING_CHANGED
    isPlaying() changed.
    - + static int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED - + static int EVENT_MEDIA_ITEM_TRANSITION
    getCurrentMediaItem() changed or the player started repeating the current item.
    - + static int EVENT_MEDIA_METADATA_CHANGED - + static int EVENT_PLAY_WHEN_READY_CHANGED - + static int EVENT_PLAYBACK_PARAMETERS_CHANGED - + static int EVENT_PLAYBACK_STATE_CHANGED - + static int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED - + static int EVENT_PLAYER_ERROR - + static int EVENT_PLAYLIST_METADATA_CHANGED - + static int EVENT_POSITION_DISCONTINUITY
    A position discontinuity occurred.
    - + static int EVENT_REPEAT_MODE_CHANGED - + static int EVENT_SEEK_BACK_INCREMENT_CHANGED - + static int EVENT_SEEK_FORWARD_INCREMENT_CHANGED - + static int EVENT_SHUFFLE_MODE_ENABLED_CHANGED - -static int -EVENT_STATIC_METADATA_CHANGED - -
    Deprecated. -
    Use EVENT_MEDIA_METADATA_CHANGED for structured metadata changes.
    -
    - - static int EVENT_TIMELINE_CHANGED @@ -662,110 +708,117 @@

    Field Summary

    static int -EVENT_TRACKS_CHANGED +EVENT_TRACK_SELECTION_PARAMETERS_CHANGED - + static int +EVENT_TRACKS_CHANGED + + + + + +static int MEDIA_ITEM_TRANSITION_REASON_AUTO
    Playback has automatically transitioned to the next media item.
    - + static int MEDIA_ITEM_TRANSITION_REASON_PLAYLIST_CHANGED
    The current media item has changed because of a change in the playlist.
    - + static int MEDIA_ITEM_TRANSITION_REASON_REPEAT
    The media item has been repeated.
    - + static int MEDIA_ITEM_TRANSITION_REASON_SEEK
    A seek to another media item has occurred.
    - + static int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_BECOMING_NOISY
    Playback has been paused to avoid becoming noisy.
    - + static int PLAY_WHEN_READY_CHANGE_REASON_AUDIO_FOCUS_LOSS
    Playback has been paused because of a loss of audio focus.
    - + static int PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM
    Playback has been paused at the end of a media item.
    - + static int PLAY_WHEN_READY_CHANGE_REASON_REMOTE
    Playback has been started or paused because of a remote change.
    - + static int PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST
    Playback has been started or paused by a call to setPlayWhenReady(boolean).
    - + static int PLAYBACK_SUPPRESSION_REASON_NONE
    Playback is not suppressed.
    - + static int PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS
    Playback is suppressed due to transient audio focus loss.
    - + static int REPEAT_MODE_ALL
    Repeats the entire timeline infinitely.
    - + static int REPEAT_MODE_OFF
    Normal playback without repetition.
    - + static int REPEAT_MODE_ONE -
    Repeats the currently playing window infinitely during ongoing playback.
    +
    Repeats the currently playing MediaItem infinitely during ongoing playback.
    - + static int STATE_BUFFERING @@ -773,35 +826,35 @@

    Field Summary

    so. - + static int STATE_ENDED
    The player has finished playing the media.
    - + static int STATE_IDLE
    The player is idle, and must be prepared before it will play the media.
    - + static int STATE_READY
    The player is able to immediately play from its current position.
    - + static int TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED
    Timeline changed as a result of a change of the playlist items or the order of the items.
    - + static int TIMELINE_CHANGE_REASON_SOURCE_UPDATE @@ -828,21 +881,12 @@

    Method Summary

    void -addListener​(Player.EventListener listener) - -
    Deprecated. - -
    - - - -void addListener​(Player.Listener listener)
    Registers a listener to receive all events from the player.
    - + void addMediaItem​(int index, MediaItem mediaItem) @@ -850,14 +894,14 @@

    Method Summary

    Adds a media item at the given index of the playlist.
    - + void addMediaItem​(MediaItem mediaItem)
    Adds a media item to the end of the playlist.
    - + void addMediaItems​(int index, List<MediaItem> mediaItems) @@ -865,13 +909,20 @@

    Method Summary

    Adds a list of media items at the given index of the playlist.
    - + void addMediaItems​(List<MediaItem> mediaItems)
    Adds a list of media items to the end of the playlist.
    + +boolean +canAdvertiseSession() + +
    Returns whether the player can be used to advertise a media session.
    + + void clearMediaItems() @@ -949,7 +1000,7 @@

    Method Summary

    int getBufferedPercentage() -
    Returns an estimate of the percentage in the current content window or ad up to which data is +
    Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    @@ -957,8 +1008,8 @@

    Method Summary

    long getBufferedPosition() -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
    @@ -966,15 +1017,15 @@

    Method Summary

    getContentBufferedPosition()
    If isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds.
    + the current content up to which data is buffered, in milliseconds.
    long getContentDuration() -
    If isPlayingAd() returns true, returns the duration of the current content - window in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    If isPlayingAd() returns true, returns the duration of the current content in + milliseconds, or C.TIME_UNSET if the duration is not known.
    @@ -1012,8 +1063,8 @@

    Method Summary

    getCurrentLiveOffset()
    Returns the offset of the current playback position from the live edge in milliseconds, or - C.TIME_UNSET if the current window isn't live or the - offset is unknown.
    + C.TIME_UNSET if the current MediaItem isCurrentMediaItemLive() isn't + live} or the offset is unknown. @@ -1027,34 +1078,30 @@

    Method Summary

    MediaItem getCurrentMediaItem() -
    Returns the media item of the current window in the timeline.
    +
    Returns the currently playing MediaItem.
    int -getCurrentPeriodIndex() +getCurrentMediaItemIndex() -
    Returns the index of the period currently being played.
    +
    Returns the index of the current MediaItem in the timeline, or the prospective index if the current timeline is + empty.
    -long -getCurrentPosition() +int +getCurrentPeriodIndex() -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    +
    Returns the index of the period currently being played.
    -List<Metadata> -getCurrentStaticMetadata() +long +getCurrentPosition() -
    Deprecated. -
    Use getMediaMetadata() and Player.Listener.onMediaMetadataChanged(MediaMetadata) for access to structured metadata, or - access the raw static metadata directly from the track - selections' formats.
    -
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
    @@ -1068,67 +1115,80 @@

    Method Summary

    TrackGroupArray getCurrentTrackGroups() -
    Returns the available track groups.
    +
    Deprecated. + +
    TrackSelectionArray getCurrentTrackSelections() -
    Returns the current track selections.
    +
    Deprecated. + +
    +TracksInfo +getCurrentTracksInfo() + +
    Returns the available tracks, as well as the tracks' support, type, and selection status.
    + + + int getCurrentWindowIndex() -
    Returns the index of the current window in the timeline, or the prospective window index if the current timeline is empty.
    +
    Deprecated. + +
    - -DeviceInfo + +DeviceInfo getDeviceInfo()
    Gets the device information.
    - + int getDeviceVolume()
    Gets the current volume of the device.
    - + long getDuration() -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Returns the duration of the current content or ad in milliseconds, or C.TIME_UNSET if + the duration is not known.
    - -int + +long getMaxSeekToPreviousPosition() -
    Returns the maximum position for which seekToPrevious() seeks to the previous window, - in milliseconds.
    +
    Returns the maximum position for which seekToPrevious() seeks to the previous MediaItem, in milliseconds.
    - + MediaItem getMediaItemAt​(int index)
    Returns the MediaItem at the given index.
    - + int getMediaItemCount()
    Returns the number of media items in the playlist.
    - + MediaMetadata getMediaMetadata() @@ -1136,214 +1196,284 @@

    Method Summary

    supported. - + +int +getNextMediaItemIndex() + +
    Returns the index of the MediaItem that will be played if seekToNextMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    + + + int getNextWindowIndex() -
    Returns the index of the window that will be played if seekToNextWindow() is called, - which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Deprecated. + +
    - + PlaybackParameters getPlaybackParameters()
    Returns the currently active playback parameters.
    - -int + +@com.google.android.exoplayer2.Player.State int getPlaybackState()
    Returns the current playback state of the player.
    - -int + +@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int getPlaybackSuppressionReason()
    Returns the reason why playback is suppressed even though getPlayWhenReady() is true, or PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed.
    - + PlaybackException getPlayerError()
    Returns the error that caused playback to fail.
    - + MediaMetadata getPlaylistMetadata()
    Returns the playlist MediaMetadata, as set by setPlaylistMetadata(MediaMetadata), or MediaMetadata.EMPTY if not supported.
    - + boolean getPlayWhenReady()
    Whether playback will proceed when getPlaybackState() == STATE_READY.
    - + int -getPreviousWindowIndex() +getPreviousMediaItemIndex() -
    Returns the index of the window that will be played if seekToPreviousWindow() is - called, which may depend on the current repeat mode and whether shuffle mode is enabled.
    +
    Returns the index of the MediaItem that will be played if seekToPreviousMediaItem() is called, which may depend on the current repeat mode and whether + shuffle mode is enabled.
    - + int +getPreviousWindowIndex() + +
    Deprecated. + +
    + + + +@com.google.android.exoplayer2.Player.RepeatMode int getRepeatMode()
    Returns the current Player.RepeatMode used for playback.
    - + long getSeekBackIncrement()
    Returns the seekBack() increment.
    - + long getSeekForwardIncrement()
    Returns the seekForward() increment.
    - + boolean getShuffleModeEnabled() -
    Returns whether shuffling of windows is enabled.
    +
    Returns whether shuffling of media items is enabled.
    - + long getTotalBufferedDuration()
    Returns an estimate of the total buffered duration from the current position, in milliseconds.
    - + +TrackSelectionParameters +getTrackSelectionParameters() + +
    Returns the parameters constraining the track selection.
    + + + VideoSize getVideoSize()
    Gets the size of the video.
    - + float getVolume()
    Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    - + boolean hasNext()
    Deprecated. -
    Use hasNextWindow() instead.
    +
    Use hasNextMediaItem() instead.
    - + +boolean +hasNextMediaItem() + +
    Returns whether a next MediaItem exists, which may depend on the current repeat mode + and whether shuffle mode is enabled.
    + + + boolean hasNextWindow() -
    Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled.
    +
    Deprecated. +
    Use hasNextMediaItem() instead.
    +
    - + boolean hasPrevious()
    Deprecated. -
    Use hasPreviousWindow() instead.
    +
    - + boolean -hasPreviousWindow() +hasPreviousMediaItem() -
    Returns whether a previous window exists, which may depend on the current repeat mode and +
    Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.
    - + +boolean +hasPreviousWindow() + +
    Deprecated. + +
    + + + void increaseDeviceVolume()
    Increases the volume of the device.
    - + boolean -isCommandAvailable​(int command) +isCommandAvailable​(@com.google.android.exoplayer2.Player.Command int command)
    Returns whether the provided Player.Command is available.
    - + +boolean +isCurrentMediaItemDynamic() + +
    Returns whether the current MediaItem is dynamic (may change when the Timeline + is updated), or false if the Timeline is empty.
    + + + +boolean +isCurrentMediaItemLive() + +
    Returns whether the current MediaItem is live, or false if the Timeline + is empty.
    + + + +boolean +isCurrentMediaItemSeekable() + +
    Returns whether the current MediaItem is seekable, or false if the Timeline is empty.
    + + + boolean isCurrentWindowDynamic() -
    Returns whether the current window is dynamic, or false if the Timeline is - empty.
    +
    Deprecated. + +
    - + boolean isCurrentWindowLive() -
    Returns whether the current window is live, or false if the Timeline is empty.
    +
    Deprecated. + +
    - + boolean isCurrentWindowSeekable() -
    Returns whether the current window is seekable, or false if the Timeline is - empty.
    +
    Deprecated. + +
    - + boolean isDeviceMuted()
    Gets whether the device is muted or not.
    - + boolean isLoading()
    Whether the player is currently loading the source.
    - + boolean isPlaying()
    Returns whether the player is playing, i.e.
    - + boolean isPlayingAd()
    Returns whether the player is currently playing an ad.
    - + void moveMediaItem​(int currentIndex, int newIndex) @@ -1351,7 +1481,7 @@

    Method Summary

    Moves the media item at the current index to the new index.
    - + void moveMediaItems​(int fromIndex, int toIndex, @@ -1360,76 +1490,67 @@

    Method Summary

    Moves the media item range to the new index.
    - + void next()
    Deprecated. -
    Use seekToNextWindow() instead.
    +
    - + void pause()
    Pauses playback.
    - + void play()
    Resumes playback as soon as getPlaybackState() == STATE_READY.
    - + void prepare()
    Prepares the player.
    - + void previous()
    Deprecated. - +
    - + void release()
    Releases the player.
    - -void -removeListener​(Player.EventListener listener) - -
    Deprecated. - -
    - - - + void removeListener​(Player.Listener listener)
    Unregister a listener registered through addListener(Listener).
    - + void removeMediaItem​(int index)
    Removes the media item at the given index of the playlist.
    - + void removeMediaItems​(int fromIndex, int toIndex) @@ -1437,94 +1558,113 @@

    Method Summary

    Removes a range of media items from the playlist.
    - + void seekBack() -
    Seeks back in the current window by getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by getSeekBackIncrement() milliseconds.
    - + void seekForward() -
    Seeks forward in the current window by getSeekForwardIncrement() milliseconds.
    +
    Seeks forward in the current MediaItem by getSeekForwardIncrement() + milliseconds.
    - + void -seekTo​(int windowIndex, +seekTo​(int mediaItemIndex, long positionMs) -
    Seeks to a position specified in milliseconds in the specified window.
    +
    Seeks to a position specified in milliseconds in the specified MediaItem.
    - + void seekTo​(long positionMs) -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    - + void seekToDefaultPosition() -
    Seeks to the default position associated with the current window.
    +
    Seeks to the default position associated with the current MediaItem.
    - + void -seekToDefaultPosition​(int windowIndex) +seekToDefaultPosition​(int mediaItemIndex) -
    Seeks to the default position associated with the specified window.
    +
    Seeks to the default position associated with the specified MediaItem.
    - + void seekToNext() -
    Seeks to a later position in the current or next window (if available).
    +
    Seeks to a later position in the current or next MediaItem (if available).
    - + +void +seekToNextMediaItem() + +
    Seeks to the default position of the next MediaItem, which may depend on the current + repeat mode and whether shuffle mode is enabled.
    + + + void seekToNextWindow() -
    Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled.
    +
    Deprecated. + +
    - + void seekToPrevious() -
    Seeks to an earlier position in the current or previous window (if available).
    +
    Seeks to an earlier position in the current or previous MediaItem (if available).
    - + +void +seekToPreviousMediaItem() + +
    Seeks to the default position of the previous MediaItem, which may depend on the + current repeat mode and whether shuffle mode is enabled.
    + + + void seekToPreviousWindow() -
    Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled.
    +
    Deprecated. + +
    - + void setDeviceMuted​(boolean muted)
    Sets the mute state of the device.
    - + void setDeviceVolume​(int volume)
    Sets the volume of the device.
    - + void setMediaItem​(MediaItem mediaItem) @@ -1532,7 +1672,7 @@

    Method Summary

    default position.
    - + void setMediaItem​(MediaItem mediaItem, boolean resetPosition) @@ -1540,7 +1680,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItem​(MediaItem mediaItem, long startPositionMs) @@ -1548,7 +1688,7 @@

    Method Summary

    Clears the playlist and adds the specified MediaItem.
    - + void setMediaItems​(List<MediaItem> mediaItems) @@ -1556,7 +1696,7 @@

    Method Summary

    the default position. - + void setMediaItems​(List<MediaItem> mediaItems, boolean resetPosition) @@ -1564,65 +1704,72 @@

    Method Summary

    Clears the playlist and adds the specified MediaItems.
    - + void setMediaItems​(List<MediaItem> mediaItems, - int startWindowIndex, + int startIndex, long startPositionMs)
    Clears the playlist and adds the specified MediaItems.
    - + void setPlaybackParameters​(PlaybackParameters playbackParameters)
    Attempts to set the playback parameters.
    - + void setPlaybackSpeed​(float speed)
    Changes the rate at which playback occurs.
    - + void setPlaylistMetadata​(MediaMetadata mediaMetadata)
    Sets the playlist MediaMetadata.
    - + void setPlayWhenReady​(boolean playWhenReady)
    Sets whether playback should proceed when getPlaybackState() == STATE_READY.
    - + void -setRepeatMode​(int repeatMode) +setRepeatMode​(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
    Sets the Player.RepeatMode to be used for playback.
    - + void setShuffleModeEnabled​(boolean shuffleModeEnabled) -
    Sets whether shuffling of windows is enabled.
    +
    Sets whether shuffling of media items is enabled.
    - + +void +setTrackSelectionParameters​(TrackSelectionParameters parameters) + +
    Sets the parameters constraining the track selection.
    + + + void setVideoSurface​(Surface surface)
    Sets the Surface onto which video will be rendered.
    - + void setVideoSurfaceHolder​(SurfaceHolder surfaceHolder) @@ -1630,35 +1777,36 @@

    Method Summary

    rendered. - + void setVideoSurfaceView​(SurfaceView surfaceView)
    Sets the SurfaceView onto which video will be rendered.
    - + void setVideoTextureView​(TextureView textureView)
    Sets the TextureView onto which video will be rendered.
    - + void -setVolume​(float audioVolume) +setVolume​(float volume) -
    Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    +
    Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal + unchanged), inclusive.
    - + void stop()
    Stops playback without resetting the player.
    - + void stop​(boolean reset) @@ -1850,7 +1998,7 @@

    PLAYBACK_SUPPRESSION_REASON_TRANSIENT_AUDIO_FOCUS_LOSS

    REPEAT_MODE_OFF

    static final int REPEAT_MODE_OFF
    Normal playback without repetition. "Previous" and "Next" actions move to the previous and next - windows respectively, and do nothing when there is no previous or next window to move to.
    + MediaItem respectively, and do nothing when there is no previous or next MediaItem to move to.
    See Also:
    Constant Field Values
    @@ -1864,9 +2012,9 @@

    REPEAT_MODE_OFF

  • REPEAT_MODE_ONE

    static final int REPEAT_MODE_ONE
    -
    Repeats the currently playing window infinitely during ongoing playback. "Previous" and "Next" - actions behave as they do in REPEAT_MODE_OFF, moving to the previous and next windows - respectively, and doing nothing when there is no previous or next window to move to.
    +
    Repeats the currently playing MediaItem infinitely during ongoing playback. "Previous" + and "Next" actions behave as they do in REPEAT_MODE_OFF, moving to the previous and + next MediaItem respectively, and doing nothing when there is no previous or next MediaItem to move to.
    See Also:
    Constant Field Values
    @@ -1882,8 +2030,8 @@

    REPEAT_MODE_ALL

    static final int REPEAT_MODE_ALL
    Repeats the entire timeline infinitely. "Previous" and "Next" actions behave as they do in REPEAT_MODE_OFF, but with looping at the ends so that "Previous" when playing the - first window will move to the last window, and "Next" when playing the last window will move to - the first window.
    + first MediaItem will move to the last MediaItem, and "Next" when playing the + last MediaItem will move to the first MediaItem.
    See Also:
    Constant Field Values
    @@ -2101,34 +2249,17 @@

    EVENT_MEDIA_ITEM_TRANSITION

  • - - - - - + @@ -2251,7 +2382,7 @@

    EVENT_PLAYER_ERROR

  • EVENT_POSITION_DISCONTINUITY

    static final int EVENT_POSITION_DISCONTINUITY
    -
    A position discontinuity occurred. See Player.Listener.onPositionDiscontinuity(PositionInfo, +
    See Also:
    @@ -2280,7 +2411,7 @@

    EVENT_PLAYBACK_PARAMETERS_CHANGED

  • EVENT_AVAILABLE_COMMANDS_CHANGED

    static final int EVENT_AVAILABLE_COMMANDS_CHANGED
    -
    isCommandAvailable(int) changed for at least one Player.Command.
    +
    isCommandAvailable(int) changed for at least one Player.Command.
    See Also:
    Constant Field Values
    @@ -2357,6 +2488,20 @@

    EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED

  • + + + + @@ -2371,17 +2516,31 @@

    COMMAND_PLAY_PAUSE

  • - +
    • -

      COMMAND_PREPARE_STOP

      -
      static final int COMMAND_PREPARE_STOP
      -
      Command to prepare the player, stop playback or release the player.
      +

      COMMAND_PREPARE

      +
      static final int COMMAND_PREPARE
      +
      Command to prepare the player.
      See Also:
      -
      Constant Field Values
      +
      Constant Field Values
      +
      +
    • +
    + + + +
      +
    • +

      COMMAND_STOP

      +
      static final int COMMAND_STOP
      +
      Command to stop playback or release the player.
      +
      +
      See Also:
      +
      Constant Field Values
    @@ -2392,35 +2551,69 @@

    COMMAND_PREPARE_STOP

  • COMMAND_SEEK_TO_DEFAULT_POSITION

    static final int COMMAND_SEEK_TO_DEFAULT_POSITION
    -
    Command to seek to the default position of the current window.
    +
    Command to seek to the default position of the current MediaItem.
    See Also:
    Constant Field Values
  • + + + +
      +
    • +

      COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM

      +
      static final int COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM
      +
      Command to seek anywhere into the current MediaItem.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    + + + +
      +
    • +

      COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM

      +
      static final int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
      +
      Command to seek to the default position of the previous MediaItem.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    • COMMAND_SEEK_TO_PREVIOUS_WINDOW

      -
      static final int COMMAND_SEEK_TO_PREVIOUS_WINDOW
      -
      Command to seek to the default position of the previous window.
      +
      @Deprecated
      +static final int COMMAND_SEEK_TO_PREVIOUS_WINDOW
      +
      Deprecated. + +
      See Also:
      Constant Field Values
      @@ -2434,21 +2627,38 @@

      COMMAND_SEEK_TO_PREVIOUS_WINDOW

    • COMMAND_SEEK_TO_PREVIOUS

      static final int COMMAND_SEEK_TO_PREVIOUS
      -
      Command to seek to an earlier position in the current or previous window.
      +
      Command to seek to an earlier position in the current or previous MediaItem.
      See Also:
      Constant Field Values
    + + + +
      +
    • +

      COMMAND_SEEK_TO_NEXT_MEDIA_ITEM

      +
      static final int COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
      +
      Command to seek to the default position of the next MediaItem.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    • COMMAND_SEEK_TO_NEXT_WINDOW

      -
      static final int COMMAND_SEEK_TO_NEXT_WINDOW
      -
      Command to seek to the default position of the next window.
      +
      @Deprecated
      +static final int COMMAND_SEEK_TO_NEXT_WINDOW
      +
      Deprecated. + +
      See Also:
      Constant Field Values
      @@ -2462,21 +2672,38 @@

      COMMAND_SEEK_TO_NEXT_WINDOW

    • COMMAND_SEEK_TO_NEXT

      static final int COMMAND_SEEK_TO_NEXT
      -
      Command to seek to a later position in the current or next window.
      +
      Command to seek to a later position in the current or next MediaItem.
      See Also:
      Constant Field Values
    + + + +
      +
    • +

      COMMAND_SEEK_TO_MEDIA_ITEM

      +
      static final int COMMAND_SEEK_TO_MEDIA_ITEM
      +
      Command to seek anywhere in any MediaItem.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    • COMMAND_SEEK_TO_WINDOW

      -
      static final int COMMAND_SEEK_TO_WINDOW
      -
      Command to seek anywhere in any window.
      +
      @Deprecated
      +static final int COMMAND_SEEK_TO_WINDOW
      +
      Deprecated. + +
      See Also:
      Constant Field Values
      @@ -2490,7 +2717,7 @@

      COMMAND_SEEK_TO_WINDOW

    • COMMAND_SEEK_BACK

      static final int COMMAND_SEEK_BACK
      -
      Command to seek back by a fixed increment into the current window.
      +
      Command to seek back by a fixed increment into the current MediaItem.
      See Also:
      Constant Field Values
      @@ -2504,7 +2731,7 @@

      COMMAND_SEEK_BACK

    • COMMAND_SEEK_FORWARD

      static final int COMMAND_SEEK_FORWARD
      -
      Command to seek forward by a fixed increment into the current window.
      +
      Command to seek forward by a fixed increment into the current MediaItem.
      See Also:
      Constant Field Values
      @@ -2560,7 +2787,7 @@

      COMMAND_SET_REPEAT_MODE

    • COMMAND_GET_CURRENT_MEDIA_ITEM

      static final int COMMAND_GET_CURRENT_MEDIA_ITEM
      -
      Command to get the MediaItem of the current window.
      +
      Command to get the currently playing MediaItem.
      See Also:
      Constant Field Values
      @@ -2735,6 +2962,34 @@

      COMMAND_GET_TEXT

    + + + +
      +
    • +

      COMMAND_SET_TRACK_SELECTION_PARAMETERS

      +
      static final int COMMAND_SET_TRACK_SELECTION_PARAMETERS
      +
      Command to set the player's track selection parameters.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    + + + +
      +
    • +

      COMMAND_GET_TRACK_INFOS

      +
      static final int COMMAND_GET_TRACK_INFOS
      +
      Command to get track infos.
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    @@ -2770,28 +3025,6 @@

    getApplicationLooper

    player and on which player events are received. - - - -
      -
    • -

      addListener

      -
      @Deprecated
      -void addListener​(Player.EventListener listener)
      -
      Deprecated. - -
      -
      Registers a listener to receive events from the player. - -

      The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

      -
      -
      Parameters:
      -
      listener - The listener to register.
      -
      -
    • -
    @@ -2801,34 +3034,13 @@

    addListener

    void addListener​(Player.Listener listener)
    Registers a listener to receive all events from the player. -

    The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

    +

    The listener's methods will be called on the thread associated with getApplicationLooper().

    Parameters:
    listener - The listener to register.
    - - - - @@ -2873,7 +3085,7 @@

    setMediaItems

    mediaItems - The new MediaItems.
    resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined - by getCurrentWindowIndex() and getCurrentPosition().
    + by getCurrentMediaItemIndex() and getCurrentPosition().
    @@ -2884,19 +3096,19 @@

    setMediaItems

  • setMediaItems

    void setMediaItems​(List<MediaItem> mediaItems,
    -                   int startWindowIndex,
    +                   int startIndex,
                        long startPositionMs)
    Clears the playlist and adds the specified MediaItems.
    Parameters:
    mediaItems - The new MediaItems.
    -
    startWindowIndex - The window index to start playback from. If C.INDEX_UNSET is - passed, the current position is not reset.
    -
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given window is used. In any case, if - startWindowIndex is set to C.INDEX_UNSET, this parameter is ignored and the - position is not reset at all.
    +
    startIndex - The MediaItem index to start playback from. If C.INDEX_UNSET + is passed, the current position is not reset.
    +
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given MediaItem is used. In + any case, if startIndex is set to C.INDEX_UNSET, this parameter is ignored + and the position is not reset at all.
    Throws:
    -
    IllegalSeekPositionException - If the provided startWindowIndex is not within the +
    IllegalSeekPositionException - If the provided startIndex is not within the bounds of the list of media items.
  • @@ -2945,7 +3157,7 @@

    setMediaItem

    Parameters:
    mediaItem - The new MediaItem.
    resetPosition - Whether the playback position should be reset to the default position. If - false, playback will start from the position defined by getCurrentWindowIndex() + false, playback will start from the position defined by getCurrentMediaItemIndex() and getCurrentPosition().
    @@ -3090,24 +3302,23 @@

    clearMediaItems

    Clears the playlist.
    - + + + + +
      +
    • +

      canAdvertiseSession

      +
      boolean canAdvertiseSession()
      +
      Returns whether the player can be used to advertise a media session.
      +
    • +
    @@ -3130,12 +3351,11 @@

    getAvailableCommands

    The returned Player.Commands are not updated when available commands change. Use Player.Listener.onAvailableCommandsChanged(Commands) to get an update when the available commands change. -

    Executing a command that is not available (for example, calling seekToNextWindow() - if COMMAND_SEEK_TO_NEXT_WINDOW is unavailable) will neither throw an exception nor - generate a getPlayerError() player error}. +

    Executing a command that is not available (for example, calling seekToNextMediaItem() if COMMAND_SEEK_TO_NEXT_MEDIA_ITEM is unavailable) will + neither throw an exception nor generate a getPlayerError() player error}. -

    COMMAND_SEEK_TO_PREVIOUS_WINDOW and COMMAND_SEEK_TO_NEXT_WINDOW are - unavailable if there is no such MediaItem. +

    COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM and COMMAND_SEEK_TO_NEXT_MEDIA_ITEM + are unavailable if there is no such MediaItem.

    Returns:
    The currently available Player.Commands.
    @@ -3161,13 +3381,13 @@

    prepare

  • getPlaybackState

    @State
    -int getPlaybackState()
    +@com.google.android.exoplayer2.Player.State int getPlaybackState()
    Returns the current playback state of the player.
    Returns:
    The current playback state.
    See Also:
    -
    Player.Listener.onPlaybackStateChanged(int)
    +
    Player.Listener.onPlaybackStateChanged(int)
  • @@ -3178,14 +3398,14 @@

    getPlaybackState

  • getPlaybackSuppressionReason

    @PlaybackSuppressionReason
    -int getPlaybackSuppressionReason()
    +@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int getPlaybackSuppressionReason()
    Returns the reason why playback is suppressed even though getPlayWhenReady() is true, or PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed.
    Returns:
    The current playback suppression reason.
    See Also:
    -
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
    +
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
  • @@ -3284,18 +3504,18 @@

    getPlayWhenReady

    Returns:
    Whether playback will proceed when ready.
    See Also:
    -
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
    +
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
    - + @@ -3327,7 +3547,7 @@

    getRepeatMode

  • setShuffleModeEnabled

    void setShuffleModeEnabled​(boolean shuffleModeEnabled)
    -
    Sets whether shuffling of windows is enabled.
    +
    Sets whether shuffling of media items is enabled.
    Parameters:
    shuffleModeEnabled - Whether shuffling is enabled.
    @@ -3341,7 +3561,7 @@

    setShuffleModeEnabled

  • getShuffleModeEnabled

    boolean getShuffleModeEnabled()
    -
    Returns whether shuffling of windows is enabled.
    +
    Returns whether shuffling of media items is enabled.
    See Also:
    Player.Listener.onShuffleModeEnabledChanged(boolean)
    @@ -3371,9 +3591,9 @@

    isLoading

  • seekToDefaultPosition

    void seekToDefaultPosition()
    -
    Seeks to the default position associated with the current window. The position can depend on - the type of media being played. For live streams it will typically be the live edge of the - window. For other streams it will typically be the start of the window.
    +
    Seeks to the default position associated with the current MediaItem. The position can + depend on the type of media being played. For live streams it will typically be the live edge. + For other streams it will typically be the start.
  • @@ -3382,17 +3602,17 @@

    seekToDefaultPosition

    @@ -3403,11 +3623,11 @@

    seekToDefaultPosition

  • seekTo

    void seekTo​(long positionMs)
    -
    Seeks to a position specified in milliseconds in the current window.
    +
    Seeks to a position specified in milliseconds in the current MediaItem.
    Parameters:
    -
    positionMs - The seek position in the current window, or C.TIME_UNSET to seek to - the window's default position.
    +
    positionMs - The seek position in the current MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
  • @@ -3417,17 +3637,17 @@

    seekTo

    • seekTo

      -
      void seekTo​(int windowIndex,
      +
      void seekTo​(int mediaItemIndex,
                   long positionMs)
      -
      Seeks to a position specified in milliseconds in the specified window.
      +
      Seeks to a position specified in milliseconds in the specified MediaItem.
      Parameters:
      -
      windowIndex - The index of the window.
      -
      positionMs - The seek position in the specified window, or C.TIME_UNSET to seek to - the window's default position.
      +
      mediaItemIndex - The index of the MediaItem.
      +
      positionMs - The seek position in the specified MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
      Throws:
      IllegalSeekPositionException - If the player has a non-empty timeline and the provided - windowIndex is not within the bounds of the current timeline.
      + mediaItemIndex is not within the bounds of the current timeline.
    @@ -3454,7 +3674,7 @@

    getSeekBackIncrement

  • seekBack

    void seekBack()
    -
    Seeks back in the current window by getSeekBackIncrement() milliseconds.
    +
    Seeks back in the current MediaItem by getSeekBackIncrement() milliseconds.
  • @@ -3480,7 +3700,8 @@

    getSeekForwardIncrement

  • seekForward

    void seekForward()
    -
    +
    Seeks forward in the current MediaItem by getSeekForwardIncrement() + milliseconds.
  • @@ -3492,7 +3713,7 @@

    hasPrevious

    @Deprecated
     boolean hasPrevious()
    Deprecated. -
    Use hasPreviousWindow() instead.
    +
  • @@ -3502,8 +3723,21 @@

    hasPrevious

    • hasPreviousWindow

      -
      boolean hasPreviousWindow()
      -
      Returns whether a previous window exists, which may depend on the current repeat mode and +
      @Deprecated
      +boolean hasPreviousWindow()
      +
      Deprecated. + +
      +
    • +
    + + + +
      +
    • +

      hasPreviousMediaItem

      +
      boolean hasPreviousMediaItem()
      +
      Returns whether a previous media item exists, which may depend on the current repeat mode and whether shuffle mode is enabled.

      Note: When the repeat mode is REPEAT_MODE_ONE, this method behaves the same as when @@ -3520,7 +3754,7 @@

      previous

      @Deprecated
       void previous()
      Deprecated. - +
    @@ -3530,10 +3764,22 @@

    previous

    • seekToPreviousWindow

      -
      void seekToPreviousWindow()
      -
      Seeks to the default position of the previous window, which may depend on the current repeat - mode and whether shuffle mode is enabled. Does nothing if hasPreviousWindow() is - false. +
      @Deprecated
      +void seekToPreviousWindow()
      +
      Deprecated. + +
      +
    • +
    + + + + @@ -3588,7 +3835,7 @@

    hasNext

    @Deprecated
     boolean hasNext()
    Deprecated. -
    Use hasNextWindow() instead.
    +
    Use hasNextMediaItem() instead.
  • @@ -3598,9 +3845,22 @@

    hasNext

    • hasNextWindow

      -
      boolean hasNextWindow()
      -
      Returns whether a next window exists, which may depend on the current repeat mode and whether - shuffle mode is enabled. +
      @Deprecated
      +boolean hasNextWindow()
      +
      Deprecated. +
      Use hasNextMediaItem() instead.
      +
      +
    • +
    + + + + @@ -3626,9 +3886,23 @@

    next

    • seekToNextWindow

      -
      void seekToNextWindow()
      -
      Seeks to the default position of the next window, which may depend on the current repeat mode - and whether shuffle mode is enabled. Does nothing if hasNextWindow() is false. +
      @Deprecated
      +void seekToNextWindow()
      +
      Deprecated. + +
      +
    • +
    + + + + @@ -3871,8 +4193,22 @@

    getCurrentPeriodIndex

    + + + +
      +
    • +

      getCurrentMediaItemIndex

      +
      int getCurrentMediaItemIndex()
      +
      Returns the index of the current MediaItem in the timeline, or the prospective index if the current timeline is + empty.
    @@ -3881,9 +4217,23 @@

    getCurrentWindowIndex

    + + + + @@ -3959,9 +4322,8 @@

    getDuration

  • getCurrentPosition

    long getCurrentPosition()
    -
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
  • @@ -3971,8 +4333,8 @@

    getCurrentPosition

  • getBufferedPosition

    long getBufferedPosition()
    -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
  • @@ -3981,8 +4343,10 @@

    getBufferedPosition

    • getBufferedPercentage

      -
      int getBufferedPercentage()
      -
      Returns an estimate of the percentage in the current content window or ad up to which data is +
      @IntRange(from=0L,
      +          to=100L)
      +int getBufferedPercentage()
      +
      Returns an estimate of the percentage in the current content or ad up to which data is buffered, or 0 if no estimate is available.
    @@ -3994,7 +4358,7 @@

    getBufferedPercentage

    getTotalBufferedDuration

    long getTotalBufferedDuration()
    Returns an estimate of the total buffered duration from the current position, in milliseconds. - This includes pre-buffered data for subsequent ads and windows.
    + This includes pre-buffered data for subsequent ads and
    media items. @@ -4003,9 +4367,22 @@

    getTotalBufferedDuration

    + + + + - - - - - - - - - - - -
      -
    • -

      VIDEO_SCALING_MODE_DEFAULT

      -
      @Deprecated
      -static final int VIDEO_SCALING_MODE_DEFAULT
      -
      Deprecated. -
      Use C.VIDEO_SCALING_MODE_DEFAULT.
      -
      -
      -
      See Also:
      -
      Constant Field Values
      -
      -
    • -
    @@ -866,11 +808,11 @@

    getName

    • getTrackType

      -
      int getTrackType()
      +
      @com.google.android.exoplayer2.C.TrackType int getTrackType()
      Returns the track type that the renderer handles.
      Returns:
      -
      One of the TRACK_TYPE_* constants defined in C.
      +
      The track type.
      See Also:
      ExoPlayer.getRendererType(int)
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/RendererCapabilities.html b/docs/doc/reference/com/google/android/exoplayer2/RendererCapabilities.html index 681d918c2fb..8ca740cfc02 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/RendererCapabilities.html +++ b/docs/doc/reference/com/google/android/exoplayer2/RendererCapabilities.html @@ -353,7 +353,7 @@

      Method Summary

      -int +@com.google.android.exoplayer2.C.TrackType int getTrackType()
      Returns the track type that the Renderer handles.
      @@ -720,13 +720,13 @@

      getName

      • getTrackType

        -
        int getTrackType()
        +
        @com.google.android.exoplayer2.C.TrackType int getTrackType()
        Returns the track type that the Renderer handles. For example, a video renderer will return C.TRACK_TYPE_VIDEO, an audio renderer will return C.TRACK_TYPE_AUDIO, a text renderer will return C.TRACK_TYPE_TEXT, and so on.
        Returns:
        -
        One of the TRACK_TYPE_* constants defined in C.
        +
        The track type.
        See Also:
        Renderer.getTrackType()
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/RenderersFactory.html b/docs/doc/reference/com/google/android/exoplayer2/RenderersFactory.html index 08d808d19e6..a8ecf0fe6f4 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/RenderersFactory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/RenderersFactory.html @@ -126,7 +126,7 @@

        Interface RenderersFactory<
        public interface RenderersFactory
        -
        Builds Renderer instances for use by a SimpleExoPlayer.
        +
        Builds Renderer instances for use by an ExoPlayer.

      @@ -155,7 +155,7 @@

      Method Summary

      TextOutput textRendererOutput, MetadataOutput metadataRendererOutput)
      -
      Builds the Renderer instances for a SimpleExoPlayer.
      +
      Builds the Renderer instances for an ExoPlayer.
      @@ -186,7 +186,7 @@

      createRenderers

      AudioRendererEventListener audioRendererEventListener, TextOutput textRendererOutput, MetadataOutput metadataRendererOutput) -
      Builds the Renderer instances for a SimpleExoPlayer.
      +
      Builds the Renderer instances for an ExoPlayer.
      Parameters:
      eventHandler - A handler to use when invoking event listeners and outputs.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html index cb8e403feb9..3b18bc8635c 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html @@ -25,8 +25,8 @@ 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 tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":42,"i14":42,"i15":42,"i16":42,"i17":42,"i18":42,"i19":42,"i20":42,"i21":42,"i22":42,"i23":42}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -133,11 +133,12 @@

      Class SimpleExoPlayer.Bu
      SimpleExoPlayer


      -
      public static final class SimpleExoPlayer.Builder
      +
      @Deprecated
      +public static final class SimpleExoPlayer.Builder
       extends Object
      -
      A builder for SimpleExoPlayer instances. - -

      See Builder(Context) for the list of default values.

      +
      Deprecated. +
      Use ExoPlayer.Builder instead.
      +
    @@ -160,21 +161,27 @@

    Constructor Summary

    Builder​(Context context) -
    Creates a builder.
    +
    Deprecated. +
    Use Builder(Context) instead.
    +
    Builder​(Context context, ExtractorsFactory extractorsFactory) -
    Creates a builder with a custom ExtractorsFactory.
    + Builder​(Context context, RenderersFactory renderersFactory) -
    Creates a builder with a custom RenderersFactory.
    +
    Deprecated. + +
    @@ -182,7 +189,10 @@

    Constructor Summary

    RenderersFactory renderersFactory, ExtractorsFactory extractorsFactory)
    -
    Creates a builder with a custom RenderersFactory and ExtractorsFactory.
    + @@ -194,7 +204,11 @@

    Constructor Summary

    BandwidthMeter bandwidthMeter, AnalyticsCollector analyticsCollector)
    -
    Creates a builder with the specified custom components.
    + @@ -209,7 +223,7 @@

    Constructor Summary

    Method Summary

    - + @@ -219,21 +233,28 @@

    Method Summary

    @@ -241,144 +262,191 @@

    Method Summary

    - + - + + + + + +
    All Methods Instance Methods Concrete Methods All Methods Instance Methods Concrete Methods Deprecated Methods 
    Modifier and Type Method SimpleExoPlayer build() -
    Builds a SimpleExoPlayer instance.
    +
    Deprecated. + +
    SimpleExoPlayer.Builder experimentalSetForegroundModeTimeoutMs​(long timeoutMs) -
    Set a limit on the time a call to SimpleExoPlayer.setForegroundMode(boolean) can spend.
    +
    SimpleExoPlayer.Builder setAnalyticsCollector​(AnalyticsCollector analyticsCollector) -
    Sets the AnalyticsCollector that will collect and forward all player events.
    +
    setAudioAttributes​(AudioAttributes audioAttributes, boolean handleAudioFocus) -
    Sets AudioAttributes that will be used by the player and whether to handle audio - focus.
    +
    SimpleExoPlayer.Builder setBandwidthMeter​(BandwidthMeter bandwidthMeter) -
    Sets the BandwidthMeter that will be used by the player.
    +
    SimpleExoPlayer.Builder setClock​(Clock clock) -
    Sets the Clock that will be used by the player.
    +
    Deprecated. + +
    SimpleExoPlayer.Builder setDetachSurfaceTimeoutMs​(long detachSurfaceTimeoutMs) -
    Sets a timeout for detaching a surface from the player.
    +
    SimpleExoPlayer.Builder setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy) -
    Sets whether the player should pause automatically when audio is rerouted from a headset to - device speakers.
    +
    SimpleExoPlayer.Builder setLivePlaybackSpeedControl​(LivePlaybackSpeedControl livePlaybackSpeedControl) -
    Sets the LivePlaybackSpeedControl that will control the playback speed when playing - live streams, in order to maintain a steady target offset from the live stream edge.
    +
    SimpleExoPlayer.Builder setLoadControl​(LoadControl loadControl) -
    Sets the LoadControl that will be used by the player.
    +
    SimpleExoPlayer.Builder setLooper​(Looper looper) -
    Sets the Looper that must be used for all calls to the player and that is used to - call listeners on.
    +
    Deprecated. + +
    SimpleExoPlayer.Builder setMediaSourceFactory​(MediaSourceFactory mediaSourceFactory) -
    Sets the MediaSourceFactory that will be used by the player.
    +
    SimpleExoPlayer.Builder setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems) -
    Sets whether to pause playback at the end of each media item.
    +
    SimpleExoPlayer.Builder setPriorityTaskManager​(PriorityTaskManager priorityTaskManager) -
    Sets an PriorityTaskManager that will be used by the player.
    +
    SimpleExoPlayer.Builder setReleaseTimeoutMs​(long releaseTimeoutMs) - +
    SimpleExoPlayer.Builder setSeekBackIncrementMs​(long seekBackIncrementMs) -
    Sets the BasePlayer.seekBack() increment.
    +
    SimpleExoPlayer.Builder setSeekForwardIncrementMs​(long seekForwardIncrementMs) -
    Sets the BasePlayer.seekForward() increment.
    +
    SimpleExoPlayer.Builder setSeekParameters​(SeekParameters seekParameters) -
    Sets the parameters that control how seek operations are performed.
    +
    SimpleExoPlayer.Builder setSkipSilenceEnabled​(boolean skipSilenceEnabled) -
    Sets whether silences silences in the audio stream is enabled.
    +
    SimpleExoPlayer.Builder setTrackSelector​(TrackSelector trackSelector) -
    Sets the TrackSelector that will be used by the player.
    +
    SimpleExoPlayer.Builder setUseLazyPreparation​(boolean useLazyPreparation) -
    Sets whether media sources should be initialized lazily.
    +
    SimpleExoPlayer.BuildersetVideoScalingMode​(int videoScalingMode)setVideoChangeFrameRateStrategy​(int videoChangeFrameRateStrategy) -
    Sets the C.VideoScalingMode that will be used by the player.
    +
    SimpleExoPlayer.BuildersetWakeMode​(int wakeMode)setVideoScalingMode​(int videoScalingMode) +
    Deprecated. + +
    +
    SimpleExoPlayer.BuildersetWakeMode​(@com.google.android.exoplayer2.C.WakeMode int wakeMode) -
    Sets the C.WakeMode that will be used by the player.
    +
    Deprecated. + +
    @@ -411,43 +479,11 @@

    Constructor Detail

    @@ -456,17 +492,12 @@

    Builder

    @@ -475,17 +506,12 @@

    Builder

    @@ -494,20 +520,14 @@

    Builder

    @@ -516,28 +536,19 @@

    Builder

    @@ -556,15 +567,12 @@

    Method Detail

    @@ -573,16 +581,11 @@

    experimentalSetForegroundModeTimeoutMs

    @@ -591,16 +594,11 @@

    setTrackSelector

    @@ -609,16 +607,11 @@

    setMediaSourceFactory

    @@ -627,16 +620,11 @@

    setLoadControl

    @@ -645,17 +633,11 @@

    setBandwidthMeter

    @@ -664,16 +646,11 @@

    setLooper

    @@ -682,19 +659,13 @@

    setAnalyticsCollector

    @@ -703,48 +674,27 @@

    setPriorityTaskManager

    - + @@ -753,19 +703,11 @@

    setWakeMode

    @@ -774,16 +716,11 @@

    setHandleAudioBecomingNoisy

    @@ -792,19 +729,26 @@

    setSkipSilenceEnabled

    + + + + @@ -813,20 +757,11 @@

    setVideoScalingMode

    @@ -835,16 +770,11 @@

    setUseLazyPreparation

    @@ -853,18 +783,12 @@

    setSeekParameters

    @@ -873,18 +797,12 @@

    setSeekBackIncrementMs

    @@ -893,19 +811,11 @@

    setSeekForwardIncrementMs

    @@ -914,19 +824,11 @@

    setReleaseTimeoutMs

    @@ -935,18 +837,11 @@

    setDetachSurfaceTimeoutMs

    @@ -955,17 +850,11 @@

    setPauseAtEndOfMediaItems

    @@ -974,17 +863,11 @@

    setLivePlaybackSpeedControl

    @@ -993,12 +876,11 @@

    setClock

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.html b/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.html index 3471b07a47c..f9d5724fe10 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":42,"i2":10,"i3":42,"i4":42,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":42,"i12":42,"i13":42,"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,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":42,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":42,"i87":42,"i88":10,"i89":10,"i90":42,"i91":10,"i92":42,"i93":42,"i94":10,"i95":10,"i96":42,"i97":42,"i98":42,"i99":42,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":42,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":42,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":42}; +var data = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":42,"i5":42,"i6":42,"i7":42,"i8":42,"i9":42,"i10":42,"i11":42,"i12":42,"i13":42,"i14":42,"i15":42,"i16":42,"i17":42,"i18":42,"i19":42,"i20":42,"i21":42,"i22":42,"i23":42,"i24":42,"i25":42,"i26":42,"i27":42,"i28":42,"i29":42,"i30":42,"i31":42,"i32":42,"i33":42,"i34":42,"i35":42,"i36":42,"i37":42,"i38":42,"i39":42,"i40":42,"i41":42,"i42":42,"i43":42,"i44":42,"i45":42,"i46":42,"i47":42,"i48":42,"i49":42,"i50":42,"i51":42,"i52":42,"i53":42,"i54":42,"i55":42,"i56":42,"i57":42,"i58":42,"i59":42,"i60":42,"i61":42,"i62":42,"i63":42,"i64":42,"i65":42,"i66":42,"i67":42,"i68":42,"i69":42,"i70":42,"i71":42,"i72":42,"i73":42,"i74":42,"i75":42,"i76":42,"i77":42,"i78":42,"i79":42,"i80":42,"i81":42,"i82":42,"i83":42,"i84":42,"i85":42,"i86":42,"i87":42,"i88":42,"i89":42,"i90":42,"i91":42,"i92":42,"i93":42,"i94":42,"i95":42,"i96":42,"i97":42,"i98":42,"i99":42,"i100":42,"i101":42,"i102":42,"i103":42,"i104":42,"i105":42,"i106":42,"i107":42,"i108":42,"i109":42,"i110":42,"i111":42,"i112":42,"i113":42,"i114":42,"i115":42,"i116":42,"i117":42,"i118":42,"i119":42,"i120":42,"i121":42,"i122":42,"i123":42,"i124":42,"i125":42,"i126":42,"i127":42,"i128":42,"i129":42,"i130":42,"i131":42}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -135,14 +135,16 @@

    Class SimpleExoPlayer

  • All Implemented Interfaces:
    -
    ExoPlayer, ExoPlayer.AudioComponent, ExoPlayer.DeviceComponent, ExoPlayer.MetadataComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent, Player
    +
    ExoPlayer, ExoPlayer.AudioComponent, ExoPlayer.DeviceComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent, Player

    -
    public class SimpleExoPlayer
    +
    @Deprecated
    +public class SimpleExoPlayer
     extends BasePlayer
    -implements ExoPlayer, ExoPlayer.AudioComponent, ExoPlayer.VideoComponent, ExoPlayer.TextComponent, ExoPlayer.MetadataComponent, ExoPlayer.DeviceComponent
    -
    An ExoPlayer implementation that uses default Renderer components. Instances can - be obtained from SimpleExoPlayer.Builder.
    +implements ExoPlayer, ExoPlayer.AudioComponent, ExoPlayer.VideoComponent, ExoPlayer.TextComponent, ExoPlayer.DeviceComponent
    +
    Deprecated. +
    Use ExoPlayer instead.
    +
  • @@ -167,7 +169,9 @@

    Nested Class Summary

    static class  SimpleExoPlayer.Builder -
    A builder for SimpleExoPlayer instances.
    +
    Deprecated. +
    Use ExoPlayer.Builder instead.
    +
    @@ -176,7 +180,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.ExoPlayer

    -ExoPlayer.AudioComponent, ExoPlayer.AudioOffloadListener, ExoPlayer.DeviceComponent, ExoPlayer.MetadataComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent +ExoPlayer.AudioComponent, ExoPlayer.AudioOffloadListener, ExoPlayer.DeviceComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent @@ -267,14 +266,16 @@

    Constructor Summary

    Looper applicationLooper)
    Deprecated. - +
    protected SimpleExoPlayer​(SimpleExoPlayer.Builder builder) -  + +
    Deprecated.
    +  @@ -298,623 +299,672 @@

    Method Summary

    void addAnalyticsListener​(AnalyticsListener listener) +
    Deprecated.
    Adds an AnalyticsListener to receive analytics events.
    void -addAudioListener​(AudioListener listener) - -
    Deprecated.
    - - - -void addAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) -
    Adds a listener to receive audio offload events.
    - - - -void -addDeviceListener​(DeviceListener listener) -
    Deprecated.
    +
    Adds a listener to receive audio offload events.
    - + void addListener​(Player.EventListener listener)
    Deprecated.
    - + void addListener​(Player.Listener listener) +
    Deprecated.
    Registers a listener to receive all events from the player.
    - + void addMediaItems​(int index, List<MediaItem> mediaItems) +
    Deprecated.
    Adds a list of media items at the given index of the playlist.
    - + void addMediaSource​(int index, MediaSource mediaSource) +
    Deprecated.
    Adds a media source at the given index of the playlist.
    - + void addMediaSource​(MediaSource mediaSource) +
    Deprecated.
    Adds a media source to the end of the playlist.
    - + void addMediaSources​(int index, List<MediaSource> mediaSources) +
    Deprecated.
    Adds a list of media sources at the given index of the playlist.
    - + void addMediaSources​(List<MediaSource> mediaSources) -
    Adds a list of media sources to the end of the playlist.
    - - - -void -addMetadataOutput​(MetadataOutput output) - -
    Deprecated.
    - - - -void -addTextOutput​(TextOutput listener) - -
    Deprecated.
    - - - -void -addVideoListener​(VideoListener listener) -
    Deprecated.
    +
    Adds a list of media sources to the end of the playlist.
    - + void clearAuxEffectInfo() +
    Deprecated.
    Detaches any previously attached auxiliary audio effect from the underlying audio track.
    - + void clearCameraMotionListener​(CameraMotionListener listener) +
    Deprecated.
    Clears the listener which receives camera motion events if it matches the one passed.
    - + void clearVideoFrameMetadataListener​(VideoFrameMetadataListener listener) +
    Deprecated.
    Clears the listener which receives video frame metadata events if it matches the one passed.
    - + void clearVideoSurface() +
    Deprecated.
    Clears any Surface, SurfaceHolder, SurfaceView or TextureView currently set on the player.
    - + void clearVideoSurface​(Surface surface) +
    Deprecated.
    Clears the Surface onto which video is being rendered if it matches the one passed.
    - + void clearVideoSurfaceHolder​(SurfaceHolder surfaceHolder) +
    Deprecated.
    Clears the SurfaceHolder that holds the Surface onto which video is being rendered if it matches the one passed.
    - + void clearVideoSurfaceView​(SurfaceView surfaceView) +
    Deprecated.
    Clears the SurfaceView onto which video is being rendered if it matches the one passed.
    - + void clearVideoTextureView​(TextureView textureView) +
    Deprecated.
    Clears the TextureView onto which video is being rendered if it matches the one passed.
    - + PlayerMessage createMessage​(PlayerMessage.Target target) +
    Deprecated.
    Creates a message that can be sent to a PlayerMessage.Target.
    - + void decreaseDeviceVolume() +
    Deprecated.
    Decreases the volume of the device.
    - + boolean experimentalIsSleepingForOffload() +
    Deprecated.
    Returns whether the player has paused its main loop to save power in offload scheduling mode.
    - + void experimentalSetOffloadSchedulingEnabled​(boolean offloadSchedulingEnabled) +
    Deprecated.
    Sets whether audio offload scheduling is enabled.
    - + AnalyticsCollector getAnalyticsCollector() +
    Deprecated.
    Returns the AnalyticsCollector used for collecting analytics events.
    - + Looper getApplicationLooper() +
    Deprecated.
    Returns the Looper associated with the application thread that's used to access the player and on which player events are received.
    - + AudioAttributes getAudioAttributes() +
    Deprecated.
    Returns the attributes for audio playback.
    - + ExoPlayer.AudioComponent getAudioComponent() -
    Returns the component of this player for audio output, or null if audio is not supported.
    - +
    Deprecated.
    +  - + DecoderCounters getAudioDecoderCounters() +
    Deprecated.
    Returns DecoderCounters for audio, or null if no audio is being played.
    - + Format getAudioFormat() +
    Deprecated.
    Returns the audio format currently being played, or null if no audio is being played.
    - + int getAudioSessionId() +
    Deprecated.
    Returns the audio session identifier, or C.AUDIO_SESSION_ID_UNSET if not set.
    - + Player.Commands getAvailableCommands() +
    Deprecated.
    Returns the player's currently available Player.Commands.
    - + long getBufferedPosition() -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Deprecated.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
    - + Clock getClock() +
    Deprecated.
    Returns the Clock used for playback.
    - + long getContentBufferedPosition() +
    Deprecated.
    If Player.isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds.
    + the current content up to which data is buffered, in milliseconds. - + long getContentPosition() +
    Deprecated.
    If Player.isPlayingAd() returns true, returns the content position that will be played once all ads in the ad group have finished playing, in milliseconds.
    - + int getCurrentAdGroupIndex() +
    Deprecated.
    If Player.isPlayingAd() returns true, returns the index of the ad group in the period currently being played.
    - + int getCurrentAdIndexInAdGroup() +
    Deprecated.
    If Player.isPlayingAd() returns true, returns the index of the ad in its ad group.
    - + List<Cue> getCurrentCues() +
    Deprecated.
    Returns the current Cues.
    - + +int +getCurrentMediaItemIndex() + +
    Deprecated.
    +
    Returns the index of the current MediaItem in the timeline, or the prospective index if the current timeline is + empty.
    + + + int getCurrentPeriodIndex() +
    Deprecated.
    Returns the index of the period currently being played.
    - + long getCurrentPosition() -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    - - - -List<Metadata> -getCurrentStaticMetadata() -
    Deprecated.
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
    - + Timeline getCurrentTimeline() +
    Deprecated.
    Returns the current Timeline.
    - + TrackGroupArray getCurrentTrackGroups() +
    Deprecated.
    Returns the available track groups.
    - + TrackSelectionArray getCurrentTrackSelections() +
    Deprecated.
    Returns the current track selections.
    - -int -getCurrentWindowIndex() + +TracksInfo +getCurrentTracksInfo() -
    Returns the index of the current window in the timeline, or the prospective window index if the current timeline is empty.
    +
    Deprecated.
    +
    Returns the available tracks, as well as the tracks' support, type, and selection status.
    - + ExoPlayer.DeviceComponent getDeviceComponent() -
    Returns the component of this player for playback device, or null if it's not supported.
    - +
    Deprecated.
    +  - -DeviceInfo + +DeviceInfo getDeviceInfo() +
    Deprecated.
    Gets the device information.
    - + int getDeviceVolume() +
    Deprecated.
    Gets the current volume of the device.
    - + long getDuration() -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Deprecated.
    +
    Returns the duration of the current content or ad in milliseconds, or C.TIME_UNSET if + the duration is not known.
    - -int + +long getMaxSeekToPreviousPosition() -
    Returns the maximum position for which Player.seekToPrevious() seeks to the previous window, - in milliseconds.
    +
    Deprecated.
    +
    Returns the maximum position for which Player.seekToPrevious() seeks to the previous MediaItem, in milliseconds.
    - + MediaMetadata getMediaMetadata() +
    Deprecated.
    Returns the current combined MediaMetadata, or MediaMetadata.EMPTY if not supported.
    - -ExoPlayer.MetadataComponent -getMetadataComponent() - -
    Returns the component of this player for metadata output, or null if metadata is not supported.
    - - - + boolean getPauseAtEndOfMediaItems() +
    Deprecated.
    Returns whether the player pauses playback at the end of each media item.
    - + Looper getPlaybackLooper() +
    Deprecated.
    Returns the Looper associated with the playback thread.
    - + PlaybackParameters getPlaybackParameters() +
    Deprecated.
    Returns the currently active playback parameters.
    - -int + +@com.google.android.exoplayer2.Player.State int getPlaybackState() +
    Deprecated.
    Returns the current playback state of the player.
    - -int + +@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int getPlaybackSuppressionReason() +
    Deprecated.
    Returns the reason why playback is suppressed even though Player.getPlayWhenReady() is true, or Player.PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed.
    - + ExoPlaybackException getPlayerError() +
    Deprecated.
    Equivalent to Player.getPlayerError(), except the exception is guaranteed to be an ExoPlaybackException.
    - + MediaMetadata getPlaylistMetadata() +
    Deprecated.
    Returns the playlist MediaMetadata, as set by Player.setPlaylistMetadata(MediaMetadata), or MediaMetadata.EMPTY if not supported.
    - + boolean getPlayWhenReady() +
    Deprecated.
    Whether playback will proceed when Player.getPlaybackState() == Player.STATE_READY.
    - + int getRendererCount() +
    Deprecated.
    Returns the number of renderers.
    - -int + +@com.google.android.exoplayer2.C.TrackType int getRendererType​(int index) +
    Deprecated.
    Returns the track type that the renderer at a given index handles.
    - -int + +@com.google.android.exoplayer2.Player.RepeatMode int getRepeatMode() +
    Deprecated.
    Returns the current Player.RepeatMode used for playback.
    - + long getSeekBackIncrement() +
    Deprecated.
    Returns the Player.seekBack() increment.
    - + long getSeekForwardIncrement() +
    Deprecated.
    Returns the Player.seekForward() increment.
    - + SeekParameters getSeekParameters() +
    Deprecated.
    Returns the currently active SeekParameters of the player.
    - + boolean getShuffleModeEnabled() -
    Returns whether shuffling of windows is enabled.
    +
    Deprecated.
    +
    Returns whether shuffling of media items is enabled.
    - + boolean getSkipSilenceEnabled() +
    Deprecated.
    Returns whether skipping silences in the audio stream is enabled.
    - + ExoPlayer.TextComponent getTextComponent() -
    Returns the component of this player for text output, or null if text is not supported.
    - +
    Deprecated.
    +  - + long getTotalBufferedDuration() +
    Deprecated.
    Returns an estimate of the total buffered duration from the current position, in milliseconds.
    - + +TrackSelectionParameters +getTrackSelectionParameters() + +
    Deprecated.
    +
    Returns the parameters constraining the track selection.
    + + + TrackSelector getTrackSelector() +
    Deprecated.
    Returns the track selector that this player uses, or null if track selection is not supported.
    - + +int +getVideoChangeFrameRateStrategy() + +
    Deprecated.
    + + + + ExoPlayer.VideoComponent getVideoComponent() -
    Returns the component of this player for video output, or null if video is not supported.
    - +
    Deprecated.
    +  - + DecoderCounters getVideoDecoderCounters() +
    Deprecated.
    Returns DecoderCounters for video, or null if no video is being played.
    - + Format getVideoFormat() +
    Deprecated.
    Returns the video format currently being played, or null if no video is being played.
    - + int getVideoScalingMode() +
    Deprecated.
    Returns the C.VideoScalingMode.
    - + VideoSize getVideoSize() +
    Deprecated.
    Gets the size of the video.
    - + float getVolume() +
    Deprecated.
    Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    - + void increaseDeviceVolume() +
    Deprecated.
    Increases the volume of the device.
    - + boolean isDeviceMuted() +
    Deprecated.
    Gets whether the device is muted or not.
    - + boolean isLoading() +
    Deprecated.
    Whether the player is currently loading the source.
    - + boolean isPlayingAd() +
    Deprecated.
    Returns whether the player is currently playing an ad.
    - + void moveMediaItems​(int fromIndex, int toIndex, int newIndex) +
    Deprecated.
    Moves the media item range to the new index.
    - + void prepare() +
    Deprecated.
    Prepares the player.
    - + void prepare​(MediaSource mediaSource) @@ -923,7 +973,7 @@

    Method Summary

    - + void prepare​(MediaSource mediaSource, boolean resetPosition, @@ -935,85 +985,55 @@

    Method Summary

    - + void release() +
    Deprecated.
    Releases the player.
    - + void removeAnalyticsListener​(AnalyticsListener listener) -
    Removes an AnalyticsListener.
    - - - -void -removeAudioListener​(AudioListener listener) -
    Deprecated.
    +
    Removes an AnalyticsListener.
    - + void removeAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) -
    Removes a listener of audio offload events.
    - - - -void -removeDeviceListener​(DeviceListener listener) - -
    Deprecated.
    - - - -void -removeListener​(Player.EventListener listener) - -
    Deprecated.
    - - - -void -removeListener​(Player.Listener listener) - -
    Unregister a listener registered through Player.addListener(Listener).
    - - - -void -removeMediaItems​(int fromIndex, - int toIndex) - -
    Removes a range of media items from the playlist.
    +
    Deprecated.
    +
    Removes a listener of audio offload events.
    - + void -removeMetadataOutput​(MetadataOutput output) +removeListener​(Player.EventListener listener)
    Deprecated.
    - + void -removeTextOutput​(TextOutput listener) +removeListener​(Player.Listener listener)
    Deprecated.
    +
    Unregister a listener registered through Player.addListener(Listener).
    - + void -removeVideoListener​(VideoListener listener) +removeMediaItems​(int fromIndex, + int toIndex)
    Deprecated.
    +
    Removes a range of media items from the playlist.
    - + void retry() @@ -1022,285 +1042,342 @@

    Method Summary

    - + void -seekTo​(int windowIndex, +seekTo​(int mediaItemIndex, long positionMs) -
    Seeks to a position specified in milliseconds in the specified window.
    +
    Deprecated.
    +
    Seeks to a position specified in milliseconds in the specified MediaItem.
    - + void setAudioAttributes​(AudioAttributes audioAttributes, boolean handleAudioFocus) +
    Deprecated.
    Sets the attributes for audio playback, used by the underlying audio track.
    - + void setAudioSessionId​(int audioSessionId) +
    Deprecated.
    Sets the ID of the audio session to attach to the underlying AudioTrack.
    - + void setAuxEffectInfo​(AuxEffectInfo auxEffectInfo) +
    Deprecated.
    Sets information on an auxiliary audio effect to attach to the underlying audio track.
    - + void setCameraMotionListener​(CameraMotionListener listener) +
    Deprecated.
    Sets a listener of camera motion events.
    - + void setDeviceMuted​(boolean muted) +
    Deprecated.
    Sets the mute state of the device.
    - + void setDeviceVolume​(int volume) +
    Deprecated.
    Sets the volume of the device.
    - + void setForegroundMode​(boolean foregroundMode) +
    Deprecated.
    Sets whether the player is allowed to keep holding limited resources such as video decoders, even when in the idle state.
    - + void setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy) +
    Deprecated.
    Sets whether the player should pause automatically when audio is rerouted from a headset to device speakers.
    - + void setHandleWakeLock​(boolean handleWakeLock) -
    Deprecated. -
    Use setWakeMode(int) instead.
    -
    +
    Deprecated.
    - + void setMediaItems​(List<MediaItem> mediaItems, boolean resetPosition) +
    Deprecated.
    Clears the playlist and adds the specified MediaItems.
    - + void setMediaItems​(List<MediaItem> mediaItems, - int startWindowIndex, + int startIndex, long startPositionMs) +
    Deprecated.
    Clears the playlist and adds the specified MediaItems.
    - + void setMediaSource​(MediaSource mediaSource) +
    Deprecated.
    Clears the playlist, adds the specified MediaSource and resets the position to the default position.
    - + void setMediaSource​(MediaSource mediaSource, boolean resetPosition) +
    Deprecated.
    Clears the playlist and adds the specified MediaSource.
    - + void setMediaSource​(MediaSource mediaSource, long startPositionMs) +
    Deprecated.
    Clears the playlist and adds the specified MediaSource.
    - + void setMediaSources​(List<MediaSource> mediaSources) +
    Deprecated.
    Clears the playlist, adds the specified MediaSources and resets the position to the default position.
    - + void setMediaSources​(List<MediaSource> mediaSources, boolean resetPosition) +
    Deprecated.
    Clears the playlist and adds the specified MediaSources.
    - + void setMediaSources​(List<MediaSource> mediaSources, - int startWindowIndex, + int startMediaItemIndex, long startPositionMs) +
    Deprecated.
    Clears the playlist and adds the specified MediaSources.
    - + void setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems) +
    Deprecated.
    Sets whether to pause playback at the end of each media item.
    - + void setPlaybackParameters​(PlaybackParameters playbackParameters) +
    Deprecated.
    Attempts to set the playback parameters.
    - + void setPlaylistMetadata​(MediaMetadata mediaMetadata) +
    Deprecated.
    Sets the playlist MediaMetadata.
    - + void setPlayWhenReady​(boolean playWhenReady) +
    Deprecated.
    Sets whether playback should proceed when Player.getPlaybackState() == Player.STATE_READY.
    - + void setPriorityTaskManager​(PriorityTaskManager priorityTaskManager) +
    Deprecated.
    Sets a PriorityTaskManager, or null to clear a previously set priority task manager.
    - + void -setRepeatMode​(int repeatMode) +setRepeatMode​(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode) +
    Deprecated.
    Sets the Player.RepeatMode to be used for playback.
    - + void setSeekParameters​(SeekParameters seekParameters) +
    Deprecated.
    Sets the parameters that control how seek operations are performed.
    - + void setShuffleModeEnabled​(boolean shuffleModeEnabled) -
    Sets whether shuffling of windows is enabled.
    +
    Deprecated.
    +
    Sets whether shuffling of media items is enabled.
    - + void setShuffleOrder​(ShuffleOrder shuffleOrder) +
    Deprecated.
    Sets the shuffle order.
    - + void setSkipSilenceEnabled​(boolean skipSilenceEnabled) +
    Deprecated.
    Sets whether skipping silences in the audio stream is enabled.
    - + void setThrowsWhenUsingWrongThread​(boolean throwsWhenUsingWrongThread) -
    Deprecated. -
    Disabling the enforcement can result in hard-to-detect bugs.
    -
    +
    Deprecated.
    - + +void +setTrackSelectionParameters​(TrackSelectionParameters parameters) + +
    Deprecated.
    +
    Sets the parameters constraining the track selection.
    + + + +void +setVideoChangeFrameRateStrategy​(int videoChangeFrameRateStrategy) + +
    Deprecated.
    +
    Sets a C.VideoChangeFrameRateStrategy that will be used by the player when provided + with a video output Surface.
    + + + void setVideoFrameMetadataListener​(VideoFrameMetadataListener listener) +
    Deprecated.
    Sets a listener to receive video frame metadata events.
    - + void setVideoScalingMode​(int videoScalingMode) -
    Sets the video scaling mode.
    +
    Deprecated.
    + - + void setVideoSurface​(Surface surface) +
    Deprecated.
    Sets the Surface onto which video will be rendered.
    - + void setVideoSurfaceHolder​(SurfaceHolder surfaceHolder) +
    Deprecated.
    Sets the SurfaceHolder that holds the Surface onto which video will be rendered.
    - + void setVideoSurfaceView​(SurfaceView surfaceView) +
    Deprecated.
    Sets the SurfaceView onto which video will be rendered.
    - + void setVideoTextureView​(TextureView textureView) +
    Deprecated.
    Sets the TextureView onto which video will be rendered.
    - + void -setVolume​(float audioVolume) +setVolume​(float volume) -
    Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    +
    Deprecated.
    +
    Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal + unchanged), inclusive.
    - + void -setWakeMode​(int wakeMode) +setWakeMode​(@com.google.android.exoplayer2.C.WakeMode int wakeMode) +
    Deprecated.
    Sets how the player should keep the device awake for playback when the screen is off.
    - + +void +stop() + +
    Deprecated.
    +
    Stops playback without resetting the player.
    + + + void stop​(boolean reset) @@ -1313,7 +1390,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.BasePlayer

    -addMediaItem, addMediaItem, addMediaItems, clearMediaItems, getAvailableCommands, getBufferedPercentage, getContentDuration, getCurrentLiveOffset, getCurrentManifest, getCurrentMediaItem, getMediaItemAt, getMediaItemCount, getNextWindowIndex, getPreviousWindowIndex, hasNext, hasNextWindow, hasPrevious, hasPreviousWindow, isCommandAvailable, isCurrentWindowDynamic, isCurrentWindowLive, isCurrentWindowSeekable, isPlaying, moveMediaItem, next, pause, play, previous, removeMediaItem, seekBack, seekForward, seekTo, seekToDefaultPosition, seekToDefaultPosition, seekToNext, seekToNextWindow, seekToPrevious, seekToPreviousWindow, setMediaItem, setMediaItem, setMediaItem, setMediaItems, setPlaybackSpeed, stop +addMediaItem, addMediaItem, addMediaItems, canAdvertiseSession, clearMediaItems, getAvailableCommands, getBufferedPercentage, getContentDuration, getCurrentLiveOffset, getCurrentManifest, getCurrentMediaItem, getCurrentWindowIndex, getMediaItemAt, getMediaItemCount, getNextMediaItemIndex, getNextWindowIndex, getPreviousMediaItemIndex, getPreviousWindowIndex, hasNext, hasNextMediaItem, hasNextWindow, hasPrevious, hasPreviousMediaItem, hasPreviousWindow, isCommandAvailable, isCurrentMediaItemDynamic, isCurrentMediaItemLive, isCurrentMediaItemSeekable, isCurrentWindowDynamic, isCurrentWindowLive, isCurrentWindowSeekable, isPlaying, moveMediaItem, next, pause, play, previous, removeMediaItem, seekBack, seekForward, seekTo, seekToDefaultPosition, seekToDefaultPosition, seekToNext, seekToNextMediaItem, seekToNextWindow, seekToPrevious, seekToPreviousMediaItem, seekToPreviousWindow, setMediaItem, setMediaItem, setMediaItem, setMediaItems, setPlaybackSpeed @@ -1345,20 +1422,6 @@

    Methods inherited from interface com.google.android.exoplayer2.

    Field Detail

    - - - -
      -
    • -

      DEFAULT_DETACH_SURFACE_TIMEOUT_MS

      -
      public static final long DEFAULT_DETACH_SURFACE_TIMEOUT_MS
      -
      The default timeout for detaching a surface from the player, in milliseconds.
      -
      -
      See Also:
      -
      Constant Field Values
      -
      -
    • -
    @@ -1366,6 +1429,7 @@

    DEFAULT_DETACH_SURFACE_TIMEOUT_MS

  • renderers

    protected final Renderer[] renderers
    +
    Deprecated.
  • @@ -1396,7 +1460,7 @@

    SimpleExoPlayer

    Clock clock, Looper applicationLooper)
    Deprecated. - +
    @@ -1407,6 +1471,7 @@

    SimpleExoPlayer

  • SimpleExoPlayer

    protected SimpleExoPlayer​(SimpleExoPlayer.Builder builder)
    +
    Deprecated.
    Parameters:
    builder - The SimpleExoPlayer.Builder to obtain all construction parameters.
    @@ -1430,6 +1495,7 @@

    Method Detail

  • experimentalSetOffloadSchedulingEnabled

    public void experimentalSetOffloadSchedulingEnabled​(boolean offloadSchedulingEnabled)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will run as rarely as possible when playing an audio stream using audio offload. @@ -1476,6 +1542,7 @@

    experimentalSetOffloadSchedulingEnabled

  • experimentalIsSleepingForOffload

    public boolean experimentalIsSleepingForOffload()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns whether the player has paused its main loop to save power in offload scheduling mode.
    @@ -1495,8 +1562,7 @@

    experimentalIsSleepingForOffload

    getAudioComponent

    @Nullable
     public ExoPlayer.AudioComponent getAudioComponent()
    -
    Description copied from interface: ExoPlayer
    -
    Returns the component of this player for audio output, or null if audio is not supported.
    +
    Deprecated.
    Specified by:
    getAudioComponent in interface ExoPlayer
    @@ -1511,8 +1577,7 @@

    getAudioComponent

    getVideoComponent

    @Nullable
     public ExoPlayer.VideoComponent getVideoComponent()
    -
    Description copied from interface: ExoPlayer
    -
    Returns the component of this player for video output, or null if video is not supported.
    +
    Deprecated.
    Specified by:
    getVideoComponent in interface ExoPlayer
    @@ -1527,30 +1592,13 @@

    getVideoComponent

    getTextComponent

    @Nullable
     public ExoPlayer.TextComponent getTextComponent()
    -
    Description copied from interface: ExoPlayer
    -
    Returns the component of this player for text output, or null if text is not supported.
    +
    Deprecated.
    Specified by:
    getTextComponent in interface ExoPlayer
  • - - - - @@ -1559,8 +1607,7 @@

    getMetadataComponent

    getDeviceComponent

    @Nullable
     public ExoPlayer.DeviceComponent getDeviceComponent()
    -
    Description copied from interface: ExoPlayer
    -
    Returns the component of this player for playback device, or null if it's not supported.
    +
    Deprecated.
    Specified by:
    getDeviceComponent in interface ExoPlayer
    @@ -1575,12 +1622,16 @@

    getDeviceComponent

    setVideoScalingMode

    public void setVideoScalingMode​(@VideoScalingMode
                                     int videoScalingMode)
    -
    Sets the video scaling mode. +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    +
    Sets the C.VideoScalingMode. -

    Note that the scaling mode only applies if a MediaCodec-based video Renderer - is enabled and if the output surface is owned by a SurfaceView.

    +

    The scaling mode only applies if a MediaCodec-based video Renderer is + enabled and if the output surface is owned by a SurfaceView.

    Specified by:
    +
    setVideoScalingMode in interface ExoPlayer
    +
    Specified by:
    setVideoScalingMode in interface ExoPlayer.VideoComponent
    Parameters:
    videoScalingMode - The C.VideoScalingMode.
    @@ -1595,14 +1646,64 @@

    setVideoScalingMode

    getVideoScalingMode

    @VideoScalingMode
     public int getVideoScalingMode()
    -
    Description copied from interface: ExoPlayer.VideoComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns the C.VideoScalingMode.
    Specified by:
    +
    getVideoScalingMode in interface ExoPlayer
    +
    Specified by:
    getVideoScalingMode in interface ExoPlayer.VideoComponent
  • + + + + + + + + @@ -1610,6 +1711,7 @@

    getVideoScalingMode

  • getVideoSize

    public VideoSize getVideoSize()
    +
    Deprecated.
    Description copied from interface: Player
    Gets the size of the video. @@ -1632,6 +1734,7 @@

    getVideoSize

  • clearVideoSurface

    public void clearVideoSurface()
    +
    Deprecated.
    Description copied from interface: Player
    Clears any Surface, SurfaceHolder, SurfaceView or TextureView currently set on the player.
    @@ -1651,6 +1754,7 @@

    clearVideoSurface

    clearVideoSurface

    public void clearVideoSurface​(@Nullable
                                   Surface surface)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the Surface onto which video is being rendered if it matches the one passed. Else does nothing.
    @@ -1672,6 +1776,7 @@

    clearVideoSurface

    setVideoSurface

    public void setVideoSurface​(@Nullable
                                 Surface surface)
    +
    Deprecated.
    Description copied from interface: Player
    Sets the Surface onto which video will be rendered. The caller is responsible for tracking the lifecycle of the surface, and must clear the surface by calling @@ -1698,6 +1803,7 @@

    setVideoSurface

    setVideoSurfaceHolder

    public void setVideoSurfaceHolder​(@Nullable
                                       SurfaceHolder surfaceHolder)
    +
    Deprecated.
    Description copied from interface: Player
    Sets the SurfaceHolder that holds the Surface onto which video will be rendered. The player will track the lifecycle of the surface automatically. @@ -1722,6 +1828,7 @@

    setVideoSurfaceHolder

    clearVideoSurfaceHolder

    public void clearVideoSurfaceHolder​(@Nullable
                                         SurfaceHolder surfaceHolder)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the SurfaceHolder that holds the Surface onto which video is being rendered if it matches the one passed. Else does nothing.
    @@ -1743,6 +1850,7 @@

    clearVideoSurfaceHolder

    setVideoSurfaceView

    public void setVideoSurfaceView​(@Nullable
                                     SurfaceView surfaceView)
    +
    Deprecated.
    Description copied from interface: Player
    Sets the SurfaceView onto which video will be rendered. The player will track the lifecycle of the surface automatically. @@ -1767,6 +1875,7 @@

    setVideoSurfaceView

    clearVideoSurfaceView

    public void clearVideoSurfaceView​(@Nullable
                                       SurfaceView surfaceView)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the SurfaceView onto which video is being rendered if it matches the one passed. Else does nothing.
    @@ -1788,6 +1897,7 @@

    clearVideoSurfaceView

    setVideoTextureView

    public void setVideoTextureView​(@Nullable
                                     TextureView textureView)
    +
    Deprecated.
    Description copied from interface: Player
    Sets the TextureView onto which video will be rendered. The player will track the lifecycle of the surface automatically. @@ -1812,6 +1922,7 @@

    setVideoTextureView

    clearVideoTextureView

    public void clearVideoTextureView​(@Nullable
                                       TextureView textureView)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the TextureView onto which video is being rendered if it matches the one passed. Else does nothing.
    @@ -1832,6 +1943,7 @@

    clearVideoTextureView

  • addAudioOffloadListener

    public void addAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Adds a listener to receive audio offload events.
    @@ -1849,6 +1961,7 @@

    addAudioOffloadListener

  • removeAudioOffloadListener

    public void removeAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Removes a listener of audio offload events.
    @@ -1859,44 +1972,6 @@

    removeAudioOffloadListener

  • - - - - - - - - @@ -1905,7 +1980,8 @@

    removeAudioListener

    setAudioAttributes

    public void setAudioAttributes​(AudioAttributes audioAttributes,
                                    boolean handleAudioFocus)
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets the attributes for audio playback, used by the underlying audio track. If not set, the default audio attributes will be used. They are suitable for general media playback. @@ -1915,13 +1991,15 @@

    setAudioAttributes

    If tunneling is enabled by the track selector, the specified audio attributes will be ignored, but they will take effect if audio is later played without tunneling. -

    If the device is running a build before platform API version 21, audio attributes cannot - be set directly on the underlying audio track. In this case, the usage will be mapped onto an - equivalent stream type using Util.getStreamTypeForAudioUsage(int). +

    If the device is running a build before platform API version 21, audio attributes cannot be + set directly on the underlying audio track. In this case, the usage will be mapped onto an + equivalent stream type using Util.getStreamTypeForAudioUsage(int).

    If audio focus should be handled, the AudioAttributes.usage must be C.USAGE_MEDIA or C.USAGE_GAME. Other usages will throw an IllegalArgumentException.

    Specified by:
    +
    setAudioAttributes in interface ExoPlayer
    +
    Specified by:
    setAudioAttributes in interface ExoPlayer.AudioComponent
    Parameters:
    audioAttributes - The attributes to use for audio playback.
    @@ -1936,6 +2014,7 @@

    setAudioAttributes

  • getAudioAttributes

    public AudioAttributes getAudioAttributes()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the attributes for audio playback.
    @@ -1953,17 +2032,20 @@

    getAudioAttributes

  • setAudioSessionId

    public void setAudioSessionId​(int audioSessionId)
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets the ID of the audio session to attach to the underlying AudioTrack. -

    The audio session ID can be generated using C.generateAudioSessionIdV21(Context) +

    The audio session ID can be generated using Util.generateAudioSessionIdV21(Context) for API 21+.

    Specified by:
    +
    setAudioSessionId in interface ExoPlayer
    +
    Specified by:
    setAudioSessionId in interface ExoPlayer.AudioComponent
    Parameters:
    -
    audioSessionId - The audio session ID, or C.AUDIO_SESSION_ID_UNSET if it should - be generated by the framework.
    +
    audioSessionId - The audio session ID, or C.AUDIO_SESSION_ID_UNSET if it should be + generated by the framework.
  • @@ -1974,10 +2056,13 @@

    setAudioSessionId

  • getAudioSessionId

    public int getAudioSessionId()
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns the audio session identifier, or C.AUDIO_SESSION_ID_UNSET if not set.
    Specified by:
    +
    getAudioSessionId in interface ExoPlayer
    +
    Specified by:
    getAudioSessionId in interface ExoPlayer.AudioComponent
  • @@ -1989,10 +2074,13 @@

    getAudioSessionId

  • setAuxEffectInfo

    public void setAuxEffectInfo​(AuxEffectInfo auxEffectInfo)
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets information on an auxiliary audio effect to attach to the underlying audio track.
    Specified by:
    +
    setAuxEffectInfo in interface ExoPlayer
    +
    Specified by:
    setAuxEffectInfo in interface ExoPlayer.AudioComponent
  • @@ -2004,10 +2092,13 @@

    setAuxEffectInfo

  • clearAuxEffectInfo

    public void clearAuxEffectInfo()
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Detaches any previously attached auxiliary audio effect from the underlying audio track.
    Specified by:
    +
    clearAuxEffectInfo in interface ExoPlayer
    +
    Specified by:
    clearAuxEffectInfo in interface ExoPlayer.AudioComponent
  • @@ -2018,16 +2109,18 @@

    clearAuxEffectInfo

    • setVolume

      -
      public void setVolume​(float audioVolume)
      +
      public void setVolume​(float volume)
      +
      Deprecated.
      Description copied from interface: Player
      -
      Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
      +
      Sets the audio volume, valid values are between 0 (silence) and 1 (unity gain, signal + unchanged), inclusive.
      Specified by:
      setVolume in interface ExoPlayer.AudioComponent
      Specified by:
      setVolume in interface Player
      Parameters:
      -
      audioVolume - Linear output gain to apply to all audio channels.
      +
      volume - Linear output gain to apply to all audio channels.
    @@ -2038,6 +2131,7 @@

    setVolume

  • getVolume

    public float getVolume()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    @@ -2057,10 +2151,13 @@

    getVolume

  • getSkipSilenceEnabled

    public boolean getSkipSilenceEnabled()
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns whether skipping silences in the audio stream is enabled.
    Specified by:
    +
    getSkipSilenceEnabled in interface ExoPlayer
    +
    Specified by:
    getSkipSilenceEnabled in interface ExoPlayer.AudioComponent
  • @@ -2072,10 +2169,13 @@

    getSkipSilenceEnabled

  • setSkipSilenceEnabled

    public void setSkipSilenceEnabled​(boolean skipSilenceEnabled)
    -
    Description copied from interface: ExoPlayer.AudioComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets whether skipping silences in the audio stream is enabled.
    Specified by:
    +
    setSkipSilenceEnabled in interface ExoPlayer
    +
    Specified by:
    setSkipSilenceEnabled in interface ExoPlayer.AudioComponent
    Parameters:
    skipSilenceEnabled - Whether skipping silences in the audio stream is enabled.
    @@ -2089,7 +2189,13 @@

    setSkipSilenceEnabled

  • getAnalyticsCollector

    public AnalyticsCollector getAnalyticsCollector()
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns the AnalyticsCollector used for collecting analytics events.
    +
    +
    Specified by:
    +
    getAnalyticsCollector in interface ExoPlayer
    +
  • @@ -2099,8 +2205,12 @@

    getAnalyticsCollector

  • addAnalyticsListener

    public void addAnalyticsListener​(AnalyticsListener listener)
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Adds an AnalyticsListener to receive analytics events.
    +
    Specified by:
    +
    addAnalyticsListener in interface ExoPlayer
    Parameters:
    listener - The listener to be added.
    @@ -2113,8 +2223,12 @@

    addAnalyticsListener

  • removeAnalyticsListener

    public void removeAnalyticsListener​(AnalyticsListener listener)
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Removes an AnalyticsListener.
    +
    Specified by:
    +
    removeAnalyticsListener in interface ExoPlayer
    Parameters:
    listener - The listener to be removed.
    @@ -2127,10 +2241,14 @@

    removeAnalyticsListener

  • setHandleAudioBecomingNoisy

    public void setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy)
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets whether the player should pause automatically when audio is rerouted from a headset to device speakers. See the audio becoming noisy documentation for more information.
    +
    Specified by:
    +
    setHandleAudioBecomingNoisy in interface ExoPlayer
    Parameters:
    handleAudioBecomingNoisy - Whether the player should pause automatically when audio is rerouted from a headset to device speakers.
    @@ -2145,10 +2263,14 @@

    setHandleAudioBecomingNoisy

    setPriorityTaskManager

    public void setPriorityTaskManager​(@Nullable
                                        PriorityTaskManager priorityTaskManager)
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets a PriorityTaskManager, or null to clear a previously set priority task manager.

    The priority C.PRIORITY_PLAYBACK will be set while the player is loading.

    +
    Specified by:
    +
    setPriorityTaskManager in interface ExoPlayer
    Parameters:
    priorityTaskManager - The PriorityTaskManager, or null to clear a previously set priority task manager.
    @@ -2163,7 +2285,13 @@

    setPriorityTaskManager

    getVideoFormat

    @Nullable
     public Format getVideoFormat()
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns the video format currently being played, or null if no video is being played.
    +
    +
    Specified by:
    +
    getVideoFormat in interface ExoPlayer
    +
  • @@ -2174,7 +2302,13 @@

    getVideoFormat

    getAudioFormat

    @Nullable
     public Format getAudioFormat()
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns the audio format currently being played, or null if no audio is being played.
    +
    +
    Specified by:
    +
    getAudioFormat in interface ExoPlayer
    +
  • @@ -2185,7 +2319,13 @@

    getAudioFormat

    getVideoDecoderCounters

    @Nullable
     public DecoderCounters getVideoDecoderCounters()
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Returns DecoderCounters for video, or null if no video is being played.
    +
    +
    Specified by:
    +
    getVideoDecoderCounters in interface ExoPlayer
    +
  • @@ -2196,44 +2336,12 @@

    getVideoDecoderCounters

    getAudioDecoderCounters

    @Nullable
     public DecoderCounters getAudioDecoderCounters()
    -
    Returns DecoderCounters for audio, or null if no audio is being played.
    -
  • - - - - - - - - - @@ -2244,7 +2352,8 @@

    removeVideoListener

  • setVideoFrameMetadataListener

    public void setVideoFrameMetadataListener​(VideoFrameMetadataListener listener)
    -
    Description copied from interface: ExoPlayer.VideoComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets a listener to receive video frame metadata events.

    This method is intended to be called by the same component that sets the Surface @@ -2252,6 +2361,8 @@

    setVideoFrameMetadataListener

    should not be called directly from application code.
    Specified by:
    +
    setVideoFrameMetadataListener in interface ExoPlayer
    +
    Specified by:
    setVideoFrameMetadataListener in interface ExoPlayer.VideoComponent
    Parameters:
    listener - The listener.
    @@ -2265,11 +2376,14 @@

    setVideoFrameMetadataListener

  • clearVideoFrameMetadataListener

    public void clearVideoFrameMetadataListener​(VideoFrameMetadataListener listener)
    -
    Description copied from interface: ExoPlayer.VideoComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Clears the listener which receives video frame metadata events if it matches the one passed. Else does nothing.
    Specified by:
    +
    clearVideoFrameMetadataListener in interface ExoPlayer
    +
    Specified by:
    clearVideoFrameMetadataListener in interface ExoPlayer.VideoComponent
    Parameters:
    listener - The listener to clear.
    @@ -2283,10 +2397,13 @@

    clearVideoFrameMetadataListener

  • setCameraMotionListener

    public void setCameraMotionListener​(CameraMotionListener listener)
    -
    Description copied from interface: ExoPlayer.VideoComponent
    +
    Deprecated.
    +
    Description copied from interface: ExoPlayer
    Sets a listener of camera motion events.
    Specified by:
    +
    setCameraMotionListener in interface ExoPlayer
    +
    Specified by:
    setCameraMotionListener in interface ExoPlayer.VideoComponent
    Parameters:
    listener - The listener.
    @@ -2300,52 +2417,17 @@

    setCameraMotionListener

  • clearCameraMotionListener

    public void clearCameraMotionListener​(CameraMotionListener listener)
    -
    Description copied from interface: ExoPlayer.VideoComponent
    -
    Clears the listener which receives camera motion events if it matches the one passed. Else - does nothing.
    -
    -
    Specified by:
    -
    clearCameraMotionListener in interface ExoPlayer.VideoComponent
    -
    Parameters:
    -
    listener - The listener to clear.
    -
    -
  • - - - - -
      -
    • -

      addTextOutput

      -
      @Deprecated
      -public void addTextOutput​(TextOutput listener)
      Deprecated.
      -
      Description copied from interface: ExoPlayer.TextComponent
      -
      Registers an output to receive text events.
      +
      Description copied from interface: ExoPlayer
      +
      Clears the listener which receives camera motion events if it matches the one passed. Else does + nothing.
      Specified by:
      -
      addTextOutput in interface ExoPlayer.TextComponent
      -
      Parameters:
      -
      listener - The output to register.
      -
      -
    • -
    - - - - @@ -2356,6 +2438,7 @@

    removeTextOutput

  • getCurrentCues

    public List<Cue> getCurrentCues()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the current Cues. This list may be empty.
    @@ -2366,44 +2449,6 @@

    getCurrentCues

  • - - - - - - - - @@ -2411,6 +2456,7 @@

    removeMetadataOutput

  • getPlaybackLooper

    public Looper getPlaybackLooper()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns the Looper associated with the playback thread.
    @@ -2426,6 +2472,7 @@

    getPlaybackLooper

  • getApplicationLooper

    public Looper getApplicationLooper()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the Looper associated with the application thread that's used to access the player and on which player events are received.
    @@ -2442,6 +2489,7 @@

    getApplicationLooper

  • getClock

    public Clock getClock()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns the Clock used for playback.
    @@ -2457,12 +2505,11 @@

    getClock

  • addListener

    public void addListener​(Player.Listener listener)
    +
    Deprecated.
    Description copied from interface: Player
    Registers a listener to receive all events from the player. -

    The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

    +

    The listener's methods will be called on the thread associated with Player.getApplicationLooper().

    Specified by:
    addListener in interface Player
    @@ -2480,15 +2527,13 @@

    addListener

    @Deprecated
     public void addListener​(Player.EventListener listener)
    Deprecated.
    -
    Description copied from interface: Player
    +
    Description copied from interface: ExoPlayer
    Registers a listener to receive events from the player. -

    The listener's methods will be called on the thread that was used to construct the player. - However, if the thread used to construct the player does not have a Looper, then the - listener will be called on the main thread.

    +

    The listener's methods will be called on the thread associated with Player.getApplicationLooper().

    Specified by:
    -
    addListener in interface Player
    +
    addListener in interface ExoPlayer
    Parameters:
    listener - The listener to register.
    @@ -2501,6 +2546,7 @@

    addListener

  • removeListener

    public void removeListener​(Player.Listener listener)
    +
    Deprecated.
    Description copied from interface: Player
    Unregister a listener registered through Player.addListener(Listener). The listener will no longer receive events.
    @@ -2521,12 +2567,12 @@

    removeListener

    @Deprecated
     public void removeListener​(Player.EventListener listener)
    Deprecated.
    -
    Description copied from interface: Player
    -
    Unregister a listener registered through Player.addListener(EventListener). The listener will +
    Description copied from interface: ExoPlayer
    +
    Unregister a listener registered through ExoPlayer.addListener(EventListener). The listener will no longer receive events from the player.
    Specified by:
    -
    removeListener in interface Player
    +
    removeListener in interface ExoPlayer
    Parameters:
    listener - The listener to unregister.
    @@ -2539,7 +2585,8 @@

    removeListener

  • getPlaybackState

    @State
    -public int getPlaybackState()
    +public @com.google.android.exoplayer2.Player.State int getPlaybackState() +
    Deprecated.
    Description copied from interface: Player
    Returns the current playback state of the player.
    @@ -2548,7 +2595,7 @@

    getPlaybackState

    Returns:
    The current playback state.
    See Also:
    -
    Player.Listener.onPlaybackStateChanged(int)
    +
    Player.Listener.onPlaybackStateChanged(int)
  • @@ -2559,7 +2606,8 @@

    getPlaybackState

  • getPlaybackSuppressionReason

    @PlaybackSuppressionReason
    -public int getPlaybackSuppressionReason()
    +public @com.google.android.exoplayer2.Player.PlaybackSuppressionReason int getPlaybackSuppressionReason() +
    Deprecated.
    Description copied from interface: Player
    Returns the reason why playback is suppressed even though Player.getPlayWhenReady() is true, or Player.PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed.
    @@ -2569,7 +2617,7 @@

    getPlaybackSuppressionReason

    Returns:
    The current playback suppression reason.
    See Also:
    -
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
    +
    Player.Listener.onPlaybackSuppressionReasonChanged(int)
  • @@ -2581,6 +2629,7 @@

    getPlaybackSuppressionReason

    getPlayerError

    @Nullable
     public ExoPlaybackException getPlayerError()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Equivalent to Player.getPlayerError(), except the exception is guaranteed to be an ExoPlaybackException.
    @@ -2620,18 +2669,18 @@

    retry

  • getAvailableCommands

    public Player.Commands getAvailableCommands()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the player's currently available Player.Commands.

    The returned Player.Commands are not updated when available commands change. Use Player.Listener.onAvailableCommandsChanged(Commands) to get an update when the available commands change. -

    Executing a command that is not available (for example, calling Player.seekToNextWindow() - if Player.COMMAND_SEEK_TO_NEXT_WINDOW is unavailable) will neither throw an exception nor - generate a Player.getPlayerError() player error}. +

    Executing a command that is not available (for example, calling Player.seekToNextMediaItem() if Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM is unavailable) will + neither throw an exception nor generate a Player.getPlayerError() player error}. -

    Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW and Player.COMMAND_SEEK_TO_NEXT_WINDOW are - unavailable if there is no such MediaItem.

    +

    Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM and Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM + are unavailable if there is no such MediaItem.

    Specified by:
    getAvailableCommands in interface Player
    @@ -2649,6 +2698,7 @@

    getAvailableCommands

  • prepare

    public void prepare()
    +
    Deprecated.
    Description copied from interface: Player
    Prepares the player.
    @@ -2702,6 +2752,7 @@

    prepare

    setMediaItems

    public void setMediaItems​(List<MediaItem> mediaItems,
                               boolean resetPosition)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the playlist and adds the specified MediaItems.
    @@ -2711,7 +2762,7 @@

    setMediaItems

    mediaItems - The new MediaItems.
    resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined - by Player.getCurrentWindowIndex() and Player.getCurrentPosition().
    + by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
  • @@ -2722,8 +2773,9 @@

    setMediaItems

  • setMediaItems

    public void setMediaItems​(List<MediaItem> mediaItems,
    -                          int startWindowIndex,
    +                          int startIndex,
                               long startPositionMs)
    +
    Deprecated.
    Description copied from interface: Player
    Clears the playlist and adds the specified MediaItems.
    @@ -2731,11 +2783,11 @@

    setMediaItems

    setMediaItems in interface Player
    Parameters:
    mediaItems - The new MediaItems.
    -
    startWindowIndex - The window index to start playback from. If C.INDEX_UNSET is - passed, the current position is not reset.
    -
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given window is used. In any case, if - startWindowIndex is set to C.INDEX_UNSET, this parameter is ignored and the - position is not reset at all.
    +
    startIndex - The MediaItem index to start playback from. If C.INDEX_UNSET + is passed, the current position is not reset.
    +
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given MediaItem is used. In + any case, if startIndex is set to C.INDEX_UNSET, this parameter is ignored + and the position is not reset at all.
  • @@ -2746,6 +2798,7 @@

    setMediaItems

  • setMediaSources

    public void setMediaSources​(List<MediaSource> mediaSources)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist, adds the specified MediaSources and resets the position to the default position.
    @@ -2765,6 +2818,7 @@

    setMediaSources

    setMediaSources

    public void setMediaSources​(List<MediaSource> mediaSources,
                                 boolean resetPosition)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist and adds the specified MediaSources.
    @@ -2774,7 +2828,7 @@

    setMediaSources

    mediaSources - The new MediaSources.
    resetPosition - Whether the playback position should be reset to the default position in the first Timeline.Window. If false, playback will start from the position defined - by Player.getCurrentWindowIndex() and Player.getCurrentPosition().
    + by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
  • @@ -2785,8 +2839,9 @@

    setMediaSources

  • setMediaSources

    public void setMediaSources​(List<MediaSource> mediaSources,
    -                            int startWindowIndex,
    +                            int startMediaItemIndex,
                                 long startPositionMs)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist and adds the specified MediaSources.
    @@ -2794,11 +2849,10 @@

    setMediaSources

    setMediaSources in interface ExoPlayer
    Parameters:
    mediaSources - The new MediaSources.
    -
    startWindowIndex - The window index to start playback from. If C.INDEX_UNSET is - passed, the current position is not reset.
    -
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given window is used. In any case, if - startWindowIndex is set to C.INDEX_UNSET, this parameter is ignored and the - position is not reset at all.
    +
    startMediaItemIndex - The media item index to start playback from. If C.INDEX_UNSET is passed, the current position is not reset.
    +
    startPositionMs - The position in milliseconds to start playback from. If C.TIME_UNSET is passed, the default position of the given media item is used. In any case, + if startMediaItemIndex is set to C.INDEX_UNSET, this parameter is ignored + and the position is not reset at all.
  • @@ -2809,6 +2863,7 @@

    setMediaSources

  • setMediaSource

    public void setMediaSource​(MediaSource mediaSource)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist, adds the specified MediaSource and resets the position to the default position.
    @@ -2828,6 +2883,7 @@

    setMediaSource

    setMediaSource

    public void setMediaSource​(MediaSource mediaSource,
                                boolean resetPosition)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist and adds the specified MediaSource.
    @@ -2836,7 +2892,7 @@

    setMediaSource

    Parameters:
    mediaSource - The new MediaSource.
    resetPosition - Whether the playback position should be reset to the default position. If - false, playback will start from the position defined by Player.getCurrentWindowIndex() + false, playback will start from the position defined by Player.getCurrentMediaItemIndex() and Player.getCurrentPosition().
  • @@ -2849,6 +2905,7 @@

    setMediaSource

    setMediaSource

    public void setMediaSource​(MediaSource mediaSource,
                                long startPositionMs)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Clears the playlist and adds the specified MediaSource.
    @@ -2868,6 +2925,7 @@

    setMediaSource

    addMediaItems

    public void addMediaItems​(int index,
                               List<MediaItem> mediaItems)
    +
    Deprecated.
    Description copied from interface: Player
    Adds a list of media items at the given index of the playlist.
    @@ -2887,6 +2945,7 @@

    addMediaItems

  • addMediaSource

    public void addMediaSource​(MediaSource mediaSource)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Adds a media source to the end of the playlist.
    @@ -2905,6 +2964,7 @@

    addMediaSource

    addMediaSource

    public void addMediaSource​(int index,
                                MediaSource mediaSource)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Adds a media source at the given index of the playlist.
    @@ -2923,6 +2983,7 @@

    addMediaSource

  • addMediaSources

    public void addMediaSources​(List<MediaSource> mediaSources)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Adds a list of media sources to the end of the playlist.
    @@ -2941,6 +3002,7 @@

    addMediaSources

    addMediaSources

    public void addMediaSources​(int index,
                                 List<MediaSource> mediaSources)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Adds a list of media sources at the given index of the playlist.
    @@ -2961,6 +3023,7 @@

    moveMediaItems

    public void moveMediaItems​(int fromIndex,
                                int toIndex,
                                int newIndex)
    +
    Deprecated.
    Description copied from interface: Player
    Moves the media item range to the new index.
    @@ -2983,6 +3046,7 @@

    moveMediaItems

    removeMediaItems

    public void removeMediaItems​(int fromIndex,
                                  int toIndex)
    +
    Deprecated.
    Description copied from interface: Player
    Removes a range of media items from the playlist.
    @@ -3002,6 +3066,7 @@

    removeMediaItems

  • setShuffleOrder

    public void setShuffleOrder​(ShuffleOrder shuffleOrder)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Sets the shuffle order.
    @@ -3019,6 +3084,7 @@

    setShuffleOrder

  • setPlayWhenReady

    public void setPlayWhenReady​(boolean playWhenReady)
    +
    Deprecated.
    Description copied from interface: Player
    Sets whether playback should proceed when Player.getPlaybackState() == Player.STATE_READY. @@ -3038,6 +3104,7 @@

    setPlayWhenReady

  • getPlayWhenReady

    public boolean getPlayWhenReady()
    +
    Deprecated.
    Description copied from interface: Player
    Whether playback will proceed when Player.getPlaybackState() == Player.STATE_READY.
    @@ -3046,7 +3113,7 @@

    getPlayWhenReady

    Returns:
    Whether playback will proceed when ready.
    See Also:
    -
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
    +
    Player.Listener.onPlayWhenReadyChanged(boolean, int)
  • @@ -3057,10 +3124,11 @@

    getPlayWhenReady

  • setPauseAtEndOfMediaItems

    public void setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Sets whether to pause playback at the end of each media item. -

    This means the player will pause at the end of each window in the current timeline. Listeners will be informed by a call to Player.Listener.onPlayWhenReadyChanged(boolean, int) with the reason Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM when this happens.

    +

    This means the player will pause at the end of each window in the current timeline. Listeners will be informed by a call to Player.Listener.onPlayWhenReadyChanged(boolean, int) with the reason Player.PLAY_WHEN_READY_CHANGE_REASON_END_OF_MEDIA_ITEM when this happens.

    Specified by:
    setPauseAtEndOfMediaItems in interface ExoPlayer
    @@ -3076,6 +3144,7 @@

    setPauseAtEndOfMediaItems

  • getPauseAtEndOfMediaItems

    public boolean getPauseAtEndOfMediaItems()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns whether the player pauses playback at the end of each media item.
    @@ -3093,7 +3162,8 @@

    getPauseAtEndOfMediaItems

  • getRepeatMode

    @RepeatMode
    -public int getRepeatMode()
    +public @com.google.android.exoplayer2.Player.RepeatMode int getRepeatMode() +
    Deprecated.
    Description copied from interface: Player
    Returns the current Player.RepeatMode used for playback.
    @@ -3102,23 +3172,24 @@

    getRepeatMode

    Returns:
    The current repeat mode.
    See Also:
    -
    Player.Listener.onRepeatModeChanged(int)
    +
    Player.Listener.onRepeatModeChanged(int)
  • - +
    • setRepeatMode

      public void setRepeatMode​(@RepeatMode
      -                          int repeatMode)
      -
      Description copied from interface: Player
      + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode) +
      Deprecated.
      +
      Description copied from interface: Player
      Sets the Player.RepeatMode to be used for playback.
      Specified by:
      -
      setRepeatMode in interface Player
      +
      setRepeatMode in interface Player
      Parameters:
      repeatMode - The repeat mode.
      @@ -3131,8 +3202,9 @@

      setRepeatMode

    • setShuffleModeEnabled

      public void setShuffleModeEnabled​(boolean shuffleModeEnabled)
      +
      Deprecated.
      Description copied from interface: Player
      -
      Sets whether shuffling of windows is enabled.
      +
      Sets whether shuffling of media items is enabled.
      Specified by:
      setShuffleModeEnabled in interface Player
      @@ -3148,8 +3220,9 @@

      setShuffleModeEnabled

    • getShuffleModeEnabled

      public boolean getShuffleModeEnabled()
      +
      Deprecated.
      Description copied from interface: Player
      -
      Returns whether shuffling of windows is enabled.
      +
      Returns whether shuffling of media items is enabled.
      Specified by:
      getShuffleModeEnabled in interface Player
      @@ -3165,6 +3238,7 @@

      getShuffleModeEnabled

    • isLoading

      public boolean isLoading()
      +
      Deprecated.
      Description copied from interface: Player
      Whether the player is currently loading the source.
      @@ -3183,17 +3257,18 @@

      isLoading

      • seekTo

        -
        public void seekTo​(int windowIndex,
        +
        public void seekTo​(int mediaItemIndex,
                            long positionMs)
        +
        Deprecated.
        Description copied from interface: Player
        -
        Seeks to a position specified in milliseconds in the specified window.
        +
        Seeks to a position specified in milliseconds in the specified MediaItem.
        Specified by:
        seekTo in interface Player
        Parameters:
        -
        windowIndex - The index of the window.
        -
        positionMs - The seek position in the specified window, or C.TIME_UNSET to seek to - the window's default position.
        +
        mediaItemIndex - The index of the MediaItem.
        +
        positionMs - The seek position in the specified MediaItem, or C.TIME_UNSET + to seek to the media item's default position.
      @@ -3204,6 +3279,7 @@

      seekTo

    • getSeekBackIncrement

      public long getSeekBackIncrement()
      +
      Deprecated.
      Description copied from interface: Player
      Returns the Player.seekBack() increment.
      @@ -3223,6 +3299,7 @@

      getSeekBackIncrement

    • getSeekForwardIncrement

      public long getSeekForwardIncrement()
      +
      Deprecated.
      Description copied from interface: Player
      Returns the Player.seekForward() increment.
      @@ -3241,17 +3318,17 @@

      getSeekForwardIncrement

      @@ -3262,6 +3339,7 @@

      getMaxSeekToPreviousPosition

    • setPlaybackParameters

      public void setPlaybackParameters​(PlaybackParameters playbackParameters)
      +
      Deprecated.
      Description copied from interface: Player
      Attempts to set the playback parameters. Passing PlaybackParameters.DEFAULT resets the player to the default, which means there is no speed or pitch adjustment. @@ -3283,6 +3361,7 @@

      setPlaybackParameters

    • getPlaybackParameters

      public PlaybackParameters getPlaybackParameters()
      +
      Deprecated.
      Description copied from interface: Player
      Returns the currently active playback parameters.
      @@ -3301,6 +3380,7 @@

      getPlaybackParameters

      setSeekParameters

      public void setSeekParameters​(@Nullable
                                     SeekParameters seekParameters)
      +
      Deprecated.
      Description copied from interface: ExoPlayer
      Sets the parameters that control how seek operations are performed.
      @@ -3318,6 +3398,7 @@

      setSeekParameters

    • getSeekParameters

      public SeekParameters getSeekParameters()
      +
      Deprecated.
      Description copied from interface: ExoPlayer
      Returns the currently active SeekParameters of the player.
      @@ -3333,6 +3414,7 @@

      getSeekParameters

    • setForegroundMode

      public void setForegroundMode​(boolean foregroundMode)
      +
      Deprecated.
      Description copied from interface: ExoPlayer
      Sets whether the player is allowed to keep holding limited resources such as video decoders, even when in the idle state. By doing so, the player may be able to reduce latency when @@ -3366,6 +3448,30 @@

      setForegroundMode

    + + + +
      +
    • +

      stop

      +
      public void stop()
      +
      Deprecated.
      +
      Description copied from interface: Player
      +
      Stops playback without resetting the player. Use Player.pause() rather than this method if + the intention is to pause playback. + +

      Calling this method will cause the playback state to transition to Player.STATE_IDLE. The + player instance can still be used, and Player.release() must still be called on the player if + it's no longer required. + +

      Calling this method does not clear the playlist, reset the playback position or the playback + error.

      +
      +
      Specified by:
      +
      stop in interface Player
      +
      +
    • +
    @@ -3388,6 +3494,7 @@

    stop

  • release

    public void release()
    +
    Deprecated.
    Description copied from interface: Player
    Releases the player. This method must be called when the player is no longer required. The player must not be used after calling this method.
    @@ -3404,12 +3511,13 @@

    release

  • createMessage

    public PlayerMessage createMessage​(PlayerMessage.Target target)
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Creates a message that can be sent to a PlayerMessage.Target. By default, the message will be delivered immediately without blocking on the playback thread. The default PlayerMessage.getType() is 0 and the default PlayerMessage.getPayload() is null. If a position is specified with PlayerMessage.setPosition(long), the message will be - delivered at this position in the current window defined by Player.getCurrentWindowIndex(). - Alternatively, the message can be sent at a specific window using PlayerMessage.setPosition(int, long).
    + delivered at this position in the current media item defined by Player.getCurrentMediaItemIndex(). Alternatively, the message can be sent at a specific mediaItem + using PlayerMessage.setPosition(int, long).
    Specified by:
    createMessage in interface ExoPlayer
    @@ -3423,6 +3531,7 @@

    createMessage

  • getRendererCount

    public int getRendererCount()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns the number of renderers.
    @@ -3437,7 +3546,8 @@

    getRendererCount

    • getRendererType

      -
      public int getRendererType​(int index)
      +
      public @com.google.android.exoplayer2.C.TrackType int getRendererType​(int index)
      +
      Deprecated.
      Description copied from interface: ExoPlayer
      Returns the track type that the renderer at a given index handles. @@ -3449,7 +3559,7 @@

      getRendererType

      Parameters:
      index - The index of the renderer.
      Returns:
      -
      One of the TRACK_TYPE_* constants defined in C.
      +
      The track type that the renderer handles.
  • @@ -3461,6 +3571,7 @@

    getRendererType

    getTrackSelector

    @Nullable
     public TrackSelector getTrackSelector()
    +
    Deprecated.
    Description copied from interface: ExoPlayer
    Returns the track selector that this player uses, or null if track selection is not supported.
    @@ -3476,13 +3587,14 @@

    getTrackSelector

  • getCurrentTrackGroups

    public TrackGroupArray getCurrentTrackGroups()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the available track groups.
    Specified by:
    getCurrentTrackGroups in interface Player
    See Also:
    -
    Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    +
    Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
  • @@ -3493,6 +3605,7 @@

    getCurrentTrackGroups

  • getCurrentTrackSelections

    public TrackSelectionArray getCurrentTrackSelections()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the current track selections. @@ -3503,22 +3616,73 @@

    getCurrentTrackSelections

    Specified by:
    getCurrentTrackSelections in interface Player
    See Also:
    -
    Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
    +
    Player.EventListener.onTracksChanged(TrackGroupArray, TrackSelectionArray)
  • - + + + + + + + + +
      +
    • +

      setTrackSelectionParameters

      +
      public void setTrackSelectionParameters​(TrackSelectionParameters parameters)
      Deprecated.
      +
      Description copied from interface: Player
      +
      Sets the parameters constraining the track selection. + +

      Unsupported parameters will be silently ignored. + +

      Use Player.getTrackSelectionParameters() to retrieve the current parameters. For example, + the following snippet restricts video to SD whilst keep other track selection parameters + unchanged: + +

      
      + player.setTrackSelectionParameters(
      +   player.getTrackSelectionParameters()
      +         .buildUpon()
      +         .setMaxVideoSizeSd()
      +         .build())
      + 
      Specified by:
      -
      getCurrentStaticMetadata in interface Player
      +
      setTrackSelectionParameters in interface Player
    @@ -3529,13 +3693,15 @@

    getCurrentStaticMetadata

  • getMediaMetadata

    public MediaMetadata getMediaMetadata()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the current combined MediaMetadata, or MediaMetadata.EMPTY if not supported.

    This MediaMetadata is a combination of the MediaItem.mediaMetadata and the static and dynamic metadata from the track selections' - formats and MetadataOutput.onMetadata(Metadata).

    + formats and Player.Listener.onMetadata(Metadata). If a field is populated in the MediaItem.mediaMetadata, it will be prioritised above the same field coming from static or + dynamic metadata.
    Specified by:
    getMediaMetadata in interface Player
    @@ -3549,6 +3715,7 @@

    getMediaMetadata

  • getPlaylistMetadata

    public MediaMetadata getPlaylistMetadata()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the playlist MediaMetadata, as set by Player.setPlaylistMetadata(MediaMetadata), or MediaMetadata.EMPTY if not supported.
    @@ -3564,6 +3731,7 @@

    getPlaylistMetadata

  • setPlaylistMetadata

    public void setPlaylistMetadata​(MediaMetadata mediaMetadata)
    +
    Deprecated.
    Description copied from interface: Player
    Sets the playlist MediaMetadata.
    @@ -3579,13 +3747,14 @@

    setPlaylistMetadata

  • getCurrentTimeline

    public Timeline getCurrentTimeline()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the current Timeline. Never null, but may be empty.
    Specified by:
    getCurrentTimeline in interface Player
    See Also:
    -
    Player.Listener.onTimelineChanged(Timeline, int)
    +
    Player.Listener.onTimelineChanged(Timeline, int)
  • @@ -3596,6 +3765,7 @@

    getCurrentTimeline

  • getCurrentPeriodIndex

    public int getCurrentPeriodIndex()
    +
    Deprecated.
    Description copied from interface: Player
    Returns the index of the period currently being played.
    @@ -3604,18 +3774,20 @@

    getCurrentPeriodIndex

  • - + @@ -3626,8 +3798,10 @@

    getCurrentWindowIndex

  • getDuration

    public long getDuration()
    +
    Deprecated.
    Description copied from interface: Player
    -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Returns the duration of the current content or ad in milliseconds, or C.TIME_UNSET if + the duration is not known.
    Specified by:
    getDuration in interface Player
    @@ -3641,10 +3815,10 @@

    getDuration

  • getCurrentPosition

    public long getCurrentPosition()
    +
    Deprecated.
    Description copied from interface: Player
    -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    +
    Returns the playback position in the current content or ad, in milliseconds, or the prospective + position in milliseconds if the current timeline is empty.
    Specified by:
    getCurrentPosition in interface Player
    @@ -3658,9 +3832,10 @@

    getCurrentPosition

  • getBufferedPosition

    public long getBufferedPosition()
    +
    Deprecated.
    Description copied from interface: Player
    -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns an estimate of the position in the current content or ad up to which data is buffered, + in milliseconds.
    Specified by:
    getBufferedPosition in interface Player
    @@ -3674,9 +3849,10 @@

    getBufferedPosition

  • getTotalBufferedDuration

    public long getTotalBufferedDuration()
    +
    Deprecated.
    Description copied from interface: Player
    Returns an estimate of the total buffered duration from the current position, in milliseconds. - This includes pre-buffered data for subsequent ads and windows.
    + This includes pre-buffered data for subsequent ads and media items.
    Specified by:
    getTotalBufferedDuration in interface Player
    @@ -3690,6 +3866,7 @@

    getTotalBufferedDuration

  • isPlayingAd

    public boolean isPlayingAd()
    +
    Deprecated.
    Description copied from interface: Player
    Returns whether the player is currently playing an ad.
    @@ -3705,6 +3882,7 @@

    isPlayingAd

  • getCurrentAdGroupIndex

    public int getCurrentAdGroupIndex()
    +
    Deprecated.
    Description copied from interface: Player
    If Player.isPlayingAd() returns true, returns the index of the ad group in the period currently being played. Returns C.INDEX_UNSET otherwise.
    @@ -3721,6 +3899,7 @@

    getCurrentAdGroupIndex

  • getCurrentAdIndexInAdGroup

    public int getCurrentAdIndexInAdGroup()
    +
    Deprecated.
    Description copied from interface: Player
    If Player.isPlayingAd() returns true, returns the index of the ad in its ad group. Returns C.INDEX_UNSET otherwise.
    @@ -3737,6 +3916,7 @@

    getCurrentAdIndexInAdGroup

  • getContentPosition

    public long getContentPosition()
    +
    Deprecated.
    Description copied from interface: Player
    If Player.isPlayingAd() returns true, returns the content position that will be played once all ads in the ad group have finished playing, in milliseconds. If there is no ad @@ -3754,10 +3934,11 @@

    getContentPosition

  • getContentBufferedPosition

    public long getContentBufferedPosition()
    +
    Deprecated.
    Description copied from interface: Player
    If Player.isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds. If there is no ad - playing, the returned position is the same as that returned by Player.getBufferedPosition().
    + the current content up to which data is buffered, in milliseconds. If there is no ad playing, + the returned position is the same as that returned by Player.getBufferedPosition().
    Specified by:
    getContentBufferedPosition in interface Player
    @@ -3772,31 +3953,23 @@

    getContentBufferedPosition

    setHandleWakeLock

    @Deprecated
     public void setHandleWakeLock​(boolean handleWakeLock)
    -
    Deprecated. -
    Use setWakeMode(int) instead.
    -
    -
    Sets whether the player should use a PowerManager.WakeLock to ensure the - device stays awake for playback, even when the screen is off. - -

    Enabling this feature requires the Manifest.permission.WAKE_LOCK permission. - It should be used together with a foreground Service for use cases where - playback can occur when the screen is off (e.g. background audio playback). It is not useful if - the screen will always be on during playback (e.g. foreground video playback).

    +
    Deprecated.
    -
    Parameters:
    -
    handleWakeLock - Whether the player should use a PowerManager.WakeLock - to ensure the device stays awake for playback, even when the screen is off.
    +
    Specified by:
    +
    setHandleWakeLock in interface ExoPlayer
  • - + - - - - - - - -
    • getDeviceInfo

      -
      public DeviceInfo getDeviceInfo()
      +
      public DeviceInfo getDeviceInfo()
      +
      Deprecated.
      Description copied from interface: Player
      Gets the device information.
      @@ -3870,15 +4012,16 @@

      getDeviceInfo

    • getDeviceVolume

      public int getDeviceVolume()
      +
      Deprecated.
      Description copied from interface: Player
      Gets the current volume of the device. -

      For devices with local playback, the volume returned +

      For devices with local playback, the volume returned by this method varies according to the current stream type. The stream type is determined by AudioAttributes.usage which can be converted to stream type with - Util.getStreamTypeForAudioUsage(int). + Util.getStreamTypeForAudioUsage(int). -

      For devices with remote playback, the volume of the +

      For devices with remote playback, the volume of the remote device is returned.

      Specified by:
      @@ -3895,6 +4038,7 @@

      getDeviceVolume

    • isDeviceMuted

      public boolean isDeviceMuted()
      +
      Deprecated.
      Description copied from interface: Player
      Gets whether the device is muted or not.
      @@ -3912,6 +4056,7 @@

      isDeviceMuted

    • setDeviceVolume

      public void setDeviceVolume​(int volume)
      +
      Deprecated.
      Description copied from interface: Player
      Sets the volume of the device.
      @@ -3931,6 +4076,7 @@

      setDeviceVolume

    • increaseDeviceVolume

      public void increaseDeviceVolume()
      +
      Deprecated.
      Description copied from interface: Player
      Increases the volume of the device.
      @@ -3948,6 +4094,7 @@

      increaseDeviceVolume

    • decreaseDeviceVolume

      public void decreaseDeviceVolume()
      +
      Deprecated.
      Description copied from interface: Player
      Decreases the volume of the device.
      @@ -3965,6 +4112,7 @@

      decreaseDeviceVolume

    • setDeviceMuted

      public void setDeviceMuted​(boolean muted)
      +
      Deprecated.
      Description copied from interface: Player
      Sets the mute state of the device.
      @@ -3983,15 +4131,15 @@

      setDeviceMuted

      setThrowsWhenUsingWrongThread

      @Deprecated
       public void setThrowsWhenUsingWrongThread​(boolean throwsWhenUsingWrongThread)
      -
      Deprecated. -
      Disabling the enforcement can result in hard-to-detect bugs. Do not use this method - except to ease the transition while wrong thread access problems are fixed.
      -
      +
      Deprecated.
      +
      Description copied from interface: ExoPlayer
      Sets whether the player should throw an IllegalStateException when methods are called - from a thread other than the one associated with getApplicationLooper(). + from a thread other than the one associated with Player.getApplicationLooper().

      The default is true and this method will be removed in the future.

      +
      Specified by:
      +
      setThrowsWhenUsingWrongThread in interface ExoPlayer
      Parameters:
      throwsWhenUsingWrongThread - Whether to throw when methods are called from a wrong thread.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Timeline.RemotableTimeline.html b/docs/doc/reference/com/google/android/exoplayer2/Timeline.RemotableTimeline.html index 8d36aecfc60..9b8d35a8d70 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Timeline.RemotableTimeline.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Timeline.RemotableTimeline.html @@ -254,8 +254,8 @@

      Method Summary

      int -getNextWindowIndex​(int windowIndex, - int repeatMode, +getNextWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns the index of the window after the window at index windowIndex depending on the @@ -280,8 +280,8 @@

      Method Summary

      int -getPreviousWindowIndex​(int windowIndex, - int repeatMode, +getPreviousWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns the index of the window before the window at index windowIndex depending on the @@ -317,7 +317,7 @@

      Method Summary

      Methods inherited from class com.google.android.exoplayer2.Timeline

      -equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundle
    • +equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundle
  • - +
      @@ -410,14 +410,14 @@

      getWindow

      getNextWindowIndex

      public int getNextWindowIndex​(int windowIndex,
                                     @RepeatMode
      -                              int repeatMode,
      +                              @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                     boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getNextWindowIndex in class Timeline
      +
      getNextWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      @@ -427,7 +427,7 @@

      getNextWindowIndex

    - +
      @@ -435,14 +435,14 @@

      getNextWindowIndex

      getPreviousWindowIndex

      public int getPreviousWindowIndex​(int windowIndex,
                                         @RepeatMode
      -                                  int repeatMode,
      +                                  @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                         boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getPreviousWindowIndex in class Timeline
      +
      getPreviousWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/Timeline.html b/docs/doc/reference/com/google/android/exoplayer2/Timeline.html index 656b01021fc..1d13ead1030 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/Timeline.html +++ b/docs/doc/reference/com/google/android/exoplayer2/Timeline.html @@ -25,8 +25,8 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":6,"i8":10,"i9":6,"i10":10,"i11":10,"i12":10,"i13":6,"i14":10,"i15":6,"i16":6,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; +var data = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":6,"i8":10,"i9":6,"i10":42,"i11":42,"i12":10,"i13":10,"i14":10,"i15":6,"i16":10,"i17":6,"i18":6,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -325,10 +325,12 @@

      Constructor Summary

      - + + + @@ -344,7 +346,7 @@

      Constructor Summary

      Method Summary

      Constructors 
      ConstructorModifierConstructor Description
      protected Timeline()  
      - + @@ -380,10 +382,10 @@

      Method Summary

      - - @@ -451,28 +454,52 @@

      Method Summary

      long windowPositionUs, long defaultPositionProjectionUs) + + + + + + + + + + - + - - + - + @@ -480,7 +507,7 @@

      Method Summary

      Populates a Timeline.Window with data for the window at the specified index.
      - + - + - + - + - + - - + - + @@ -594,7 +621,7 @@

      Constructor Detail

      • Timeline

        -
        public Timeline()
        +
        protected Timeline()
      @@ -627,7 +654,7 @@

      getWindowCount

      Returns the number of windows in the timeline.
      - +
        @@ -635,7 +662,7 @@

        getWindowCount

        getNextWindowIndex

        public int getNextWindowIndex​(int windowIndex,
                                       @RepeatMode
        -                              int repeatMode,
        +                              @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                       boolean shuffleModeEnabled)
        Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
        @@ -649,7 +676,7 @@

        getNextWindowIndex

      - +
        @@ -657,7 +684,7 @@

        getNextWindowIndex

        getPreviousWindowIndex

        public int getPreviousWindowIndex​(int windowIndex,
                                           @RepeatMode
        -                                  int repeatMode,
        +                                  @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                           boolean shuffleModeEnabled)
        Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
        @@ -756,7 +783,7 @@

        getPeriodCount

        Returns the number of periods in the timeline.
      - +
        @@ -766,7 +793,7 @@

        getNextPeriodIndex

        Timeline.Period period, Timeline.Window window, @RepeatMode - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
        Returns the index of the period after the period at index periodIndex depending on the repeatMode and whether shuffling is enabled.
        @@ -782,7 +809,7 @@

        getNextPeriodIndex

      - +
        @@ -792,7 +819,7 @@

        isLastPeriod

        Timeline.Period period, Timeline.Window window, @RepeatMode - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
        Returns whether the given period is the last period of the timeline depending on the repeatMode and whether shuffling is enabled.
        @@ -814,12 +841,15 @@

        isLastPeriod

        @@ -828,12 +858,45 @@

        getPeriodPosition

        + + + + + + + +
          +
        • +

          getPeriodPositionUs

          +
          @Nullable
          +public final Pair<Object,​Long> getPeriodPositionUs​(Timeline.Window window,
          +                                                         Timeline.Period period,
          +                                                         int windowIndex,
          +                                                         long windowPositionUs,
          +                                                         long defaultPositionProjectionUs)
          Converts (windowIndex, windowPositionUs) to the corresponding (periodUid, periodPositionUs). The returned periodPositionUs is constrained to be non-negative, and to be less than the containing period's duration if it is known.
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.TrackGroupInfo.html b/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.TrackGroupInfo.html new file mode 100644 index 00000000000..bf2d129d08e --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.TrackGroupInfo.html @@ -0,0 +1,584 @@ + + + + +TracksInfo.TrackGroupInfo (ExoPlayer library) + + + + + + + + + + + + + +
          + +
          + +
          +
          + +

          Class TracksInfo.TrackGroupInfo

          +
          +
          +
            +
          • java.lang.Object
          • +
          • +
              +
            • com.google.android.exoplayer2.TracksInfo.TrackGroupInfo
            • +
            +
          • +
          +
          +
            +
          • +
            +
            All Implemented Interfaces:
            +
            Bundleable
            +
            +
            +
            Enclosing class:
            +
            TracksInfo
            +
            +
            +
            public static final class TracksInfo.TrackGroupInfo
            +extends Object
            +implements Bundleable
            +
            Information about tracks in a TrackGroup: their C.TrackType, if their format is + supported by the player and if they are selected for playback.
            +
          • +
          +
          +
          +
      All Methods Instance Methods Abstract Methods Concrete Methods All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method
      intgetNextPeriodIndex​(int periodIndex, +getNextPeriodIndex​(int periodIndex, Timeline.Period period, Timeline.Window window, - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns the index of the period after the period at index periodIndex depending on the @@ -392,8 +394,8 @@

      Method Summary

      intgetNextWindowIndex​(int windowIndex, - int repeatMode, +getNextWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns the index of the window after the window at index windowIndex depending on the @@ -439,8 +441,9 @@

      Method Summary

      int windowIndex, long windowPositionUs)
      -
      Calls getPeriodPosition(Window, Period, int, long, long) with a zero default position - projection.
      +
      + +
      Pair<Object,​Long>getPeriodPositionUs​(Timeline.Window window, + Timeline.Period period, + int windowIndex, + long windowPositionUs) +
      Calls getPeriodPosition(Window, Period, int, long, long) with a zero default position + projection.
      +
      Pair<Object,​Long>getPeriodPositionUs​(Timeline.Window window, + Timeline.Period period, + int windowIndex, + long windowPositionUs, + long defaultPositionProjectionUs)
      Converts (windowIndex, windowPositionUs) to the corresponding (periodUid, periodPositionUs).
      intgetPreviousWindowIndex​(int windowIndex, - int repeatMode, +getPreviousWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      abstract Object getUidOfPeriod​(int periodIndex)
      Returns the unique id of the period identified by its index in the timeline.
      Timeline.Window getWindow​(int windowIndex, Timeline.Window window)
      abstract Timeline.Window getWindow​(int windowIndex, Timeline.Window window, @@ -489,45 +516,45 @@

      Method Summary

      Populates a Timeline.Window with data for the window at the specified index.
      abstract int getWindowCount()
      Returns the number of windows in the timeline.
      int hashCode()  
      boolean isEmpty()
      Returns whether the timeline is empty.
      booleanisLastPeriod​(int periodIndex, +isLastPeriod​(int periodIndex, Timeline.Period period, Timeline.Window window, - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
      Returns whether the given period is the last period of the timeline depending on the repeatMode and whether shuffling is enabled.
      Bundle toBundle()
      Returns a Bundle representing the information stored in this object.
      Bundle toBundle​(boolean excludeMediaItems)
      + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      static Bundleable.Creator<TracksInfo.TrackGroupInfo>CREATOR +
      Object that can restores a TracksInfo from a Bundle.
      +
      + +
    + + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      TrackGroupInfo​(TrackGroup trackGroup, + int[] trackSupport, + @com.google.android.exoplayer2.C.TrackType int trackType, + boolean[] tracksSelected) +
      Constructs a TrackGroupInfo.
      +
      +
    • +
    +
    + +
    + +
    +
  • + + +
    +
      +
    • + +
      + +
      + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          TrackGroupInfo

          +
          public TrackGroupInfo​(TrackGroup trackGroup,
          +                      @FormatSupport
          +                      int[] trackSupport,
          +                      @com.google.android.exoplayer2.C.TrackType int trackType,
          +                      boolean[] tracksSelected)
          +
          Constructs a TrackGroupInfo.
          +
          +
          Parameters:
          +
          trackGroup - The TrackGroup described.
          +
          trackSupport - The C.FormatSupport of each track in the trackGroup.
          +
          trackType - The C.TrackType of the tracks in the trackGroup.
          +
          tracksSelected - Whether a track is selected for each track in trackGroup.
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getTrackGroup

          +
          public TrackGroup getTrackGroup()
          +
          Returns the TrackGroup described by this TrackGroupInfo.
          +
        • +
        + + + +
          +
        • +

          getTrackSupport

          +
          @FormatSupport
          +public int getTrackSupport​(int trackIndex)
          +
          Returns the level of support for a track in a TrackGroup.
          +
          +
          Parameters:
          +
          trackIndex - The index of the track in the TrackGroup.
          +
          Returns:
          +
          The C.FormatSupport of the track.
          +
          +
        • +
        + + + +
          +
        • +

          isTrackSupported

          +
          public boolean isTrackSupported​(int trackIndex)
          +
          Returns if a track in a TrackGroup is supported for playback.
          +
          +
          Parameters:
          +
          trackIndex - The index of the track in the TrackGroup.
          +
          Returns:
          +
          True if the track's format can be played, false otherwise.
          +
          +
        • +
        + + + +
          +
        • +

          isSelected

          +
          public boolean isSelected()
          +
          Returns if at least one track in a TrackGroup is selected for playback.
          +
        • +
        + + + +
          +
        • +

          isSupported

          +
          public boolean isSupported()
          +
          Returns if at least one track in a TrackGroup is supported.
          +
        • +
        + + + +
          +
        • +

          isTrackSelected

          +
          public boolean isTrackSelected​(int trackIndex)
          +
          Returns if a track in a TrackGroup is selected for playback. + +

          Multiple tracks of a track group may be selected. This is common in adaptive streaming, + where multiple tracks of different quality are selected and the player switches between them + depending on the network and the TrackSelectionParameters. + +

          While this class doesn't provide which selected track is currently playing, some player + implementations have ways of getting such information. For example ExoPlayer provides this + information in ExoTrackSelection.getSelectedFormat.

          +
          +
          Parameters:
          +
          trackIndex - The index of the track in the TrackGroup.
          +
          Returns:
          +
          true if the track is selected, false otherwise.
          +
          +
        • +
        + + + +
          +
        • +

          getTrackType

          +
          public @com.google.android.exoplayer2.C.TrackType int getTrackType()
          +
          Returns the C.TrackType of the tracks in the TrackGroup. Tracks in a group + are all of the same type.
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(@Nullable
          +                      Object other)
          +
          +
          Overrides:
          +
          equals in class Object
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          +
          Overrides:
          +
          hashCode in class Object
          +
          +
        • +
        + + + +
          +
        • +

          toBundle

          +
          public Bundle toBundle()
          +
          Description copied from interface: Bundleable
          +
          Returns a Bundle representing the information stored in this object.
          +
          +
          Specified by:
          +
          toBundle in interface Bundleable
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    + + + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.html b/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.html new file mode 100644 index 00000000000..1945afab4ac --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/TracksInfo.html @@ -0,0 +1,502 @@ + + + + +TracksInfo (ExoPlayer library) + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class TracksInfo

    +
    +
    + +
    + +
    +
    + +
    +
    +
      +
    • + +
      + +
      + +
      + +
      + +
      +
        +
      • + + +

        Method Detail

        + + + + + + + +
          +
        • +

          isTypeSupportedOrEmpty

          +
          public boolean isTypeSupportedOrEmpty​(@com.google.android.exoplayer2.C.TrackType int trackType)
          +
          Returns if there is at least one track of type trackType but none are supported.
          +
        • +
        + + + +
          +
        • +

          isTypeSelected

          +
          public boolean isTypeSelected​(@com.google.android.exoplayer2.C.TrackType int trackType)
          +
          Returns if at least one track of the type trackType is selected for playback.
          +
        • +
        + + + +
          +
        • +

          equals

          +
          public boolean equals​(@Nullable
          +                      Object other)
          +
          +
          Overrides:
          +
          equals in class Object
          +
          +
        • +
        + + + +
          +
        • +

          hashCode

          +
          public int hashCode()
          +
          +
          Overrides:
          +
          hashCode in class Object
          +
          +
        • +
        + + + +
          +
        • +

          toBundle

          +
          public Bundle toBundle()
          +
          Description copied from interface: Bundleable
          +
          Returns a Bundle representing the information stored in this object.
          +
          +
          Specified by:
          +
          toBundle in interface Bundleable
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsCollector.html b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsCollector.html index 9036aecfbda..1ab98d1f2ac 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsCollector.html +++ b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsCollector.html @@ -25,8 +25,8 @@ 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,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":42,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; +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,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -130,7 +130,7 @@

    Class AnalyticsCollector

  • All Implemented Interfaces:
    -
    AudioListener, AudioRendererEventListener, DeviceListener, DrmSessionEventListener, MetadataOutput, Player.EventListener, Player.Listener, MediaSourceEventListener, TextOutput, BandwidthMeter.EventListener, VideoListener, VideoRendererEventListener
    +
    AudioRendererEventListener, DrmSessionEventListener, Player.EventListener, Player.Listener, MediaSourceEventListener, BandwidthMeter.EventListener, VideoRendererEventListener

    public class AnalyticsCollector
    @@ -219,7 +219,7 @@ 

    Constructor Summary

    Method Summary

    - + @@ -342,7 +342,7 @@

    Method Summary

    @@ -481,15 +481,15 @@

    Method Summary

    - + - + @@ -518,14 +518,14 @@

    Method Summary

    - + - + @@ -539,8 +539,8 @@

    Method Summary

    - + @@ -552,17 +552,17 @@

    Method Summary

    - + - + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason) @@ -578,7 +578,7 @@

    Method Summary

    - + @@ -618,13 +618,6 @@

    Method Summary

    - - - - - - + - + - + @@ -648,6 +641,13 @@

    Method Summary

    Called when the available or selected tracks change.
    + + + + + @@ -387,7 +387,7 @@

    currentTimeline

    currentWindowIndex

    public final int currentWindowIndex
    The current window index in currentTimeline at the time of the event, or the - prospective window index if the timeline is not yet known and empty (equivalent to Player.getCurrentWindowIndex()).
    + prospective window index if the timeline is not yet known and empty (equivalent to Player.getCurrentMediaItemIndex()). @@ -468,7 +468,7 @@

    EventTime

    Player.getCurrentTimeline()).
    currentWindowIndex - The current window index in currentTimeline at the time of the event, or the prospective window index if the timeline is not yet known and empty - (equivalent to Player.getCurrentWindowIndex()).
    + (equivalent to Player.getCurrentMediaItemIndex()).
    currentMediaPeriodId - Media period identifier for the currently playing media period at the time of the event, or null if no current media period identifier is available.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.html b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.html index fd1cff47c81..598ba3bd066 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.html +++ b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":18,"i1":18,"i2":50,"i3":18,"i4":18,"i5":18,"i6":18,"i7":50,"i8":18,"i9":18,"i10":18,"i11":18,"i12":18,"i13":18,"i14":18,"i15":50,"i16":50,"i17":50,"i18":50,"i19":18,"i20":18,"i21":18,"i22":18,"i23":50,"i24":18,"i25":18,"i26":18,"i27":18,"i28":18,"i29":18,"i30":18,"i31":18,"i32":18,"i33":18,"i34":50,"i35":18,"i36":18,"i37":18,"i38":18,"i39":18,"i40":18,"i41":18,"i42":18,"i43":18,"i44":18,"i45":50,"i46":18,"i47":18,"i48":50,"i49":18,"i50":18,"i51":18,"i52":18,"i53":18,"i54":50,"i55":50,"i56":18,"i57":18,"i58":50,"i59":18,"i60":18,"i61":18,"i62":18,"i63":18,"i64":50,"i65":18,"i66":18,"i67":18,"i68":18,"i69":18,"i70":50,"i71":18,"i72":50,"i73":18,"i74":18}; +var data = {"i0":18,"i1":18,"i2":50,"i3":18,"i4":18,"i5":18,"i6":18,"i7":50,"i8":18,"i9":18,"i10":18,"i11":18,"i12":18,"i13":18,"i14":18,"i15":50,"i16":50,"i17":50,"i18":50,"i19":18,"i20":18,"i21":18,"i22":18,"i23":50,"i24":18,"i25":18,"i26":18,"i27":18,"i28":18,"i29":18,"i30":18,"i31":18,"i32":18,"i33":18,"i34":50,"i35":18,"i36":18,"i37":18,"i38":18,"i39":18,"i40":18,"i41":18,"i42":18,"i43":18,"i44":18,"i45":50,"i46":18,"i47":18,"i48":50,"i49":18,"i50":18,"i51":18,"i52":18,"i53":18,"i54":50,"i55":50,"i56":18,"i57":18,"i58":18,"i59":18,"i60":50,"i61":18,"i62":18,"i63":18,"i64":50,"i65":18,"i66":18,"i67":18,"i68":18,"i69":18,"i70":50,"i71":18,"i72":50,"i73":18,"i74":18}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -512,98 +512,89 @@

    Field Summary

    - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason) @@ -994,16 +985,16 @@

    Method Summary

    - + - + @@ -1025,12 +1016,12 @@

    Method Summary

    - + @com.google.android.exoplayer2.Player.State int playbackState) @@ -1044,30 +1035,30 @@

    Method Summary

    - + @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int reason) - + - + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason) @@ -1084,8 +1075,8 @@

    Method Summary

    - + @@ -1120,7 +1111,7 @@

    Method Summary

    @@ -1143,18 +1134,6 @@

    Method Summary

    - - - - - @@ -1162,21 +1141,31 @@

    Method Summary

    Called when the output surface size changed.
    - + - + - + + + + + + @@ -1352,30 +1341,13 @@

    EVENT_MEDIA_ITEM_TRANSITION

  • EVENT_TRACKS_CHANGED

    static final int EVENT_TRACKS_CHANGED
    - +
    See Also:
    Constant Field Values
  • - - - - @@ -1495,7 +1467,7 @@

    EVENT_PLAYER_ERROR

  • EVENT_POSITION_DISCONTINUITY

    static final int EVENT_POSITION_DISCONTINUITY
    - +
    See Also:
    Constant Field Values
    @@ -2157,7 +2129,7 @@

    EVENT_VIDEO_CODEC_ERROR

    Method Detail

    - + - +
      @@ -2181,7 +2153,7 @@

      onPlayerStateChanged

      onPlaybackStateChanged

      default void onPlaybackStateChanged​(AnalyticsListener.EventTime eventTime,
                                           @State
      -                                    int state)
      + @com.google.android.exoplayer2.Player.State int state)
      Called when the playback state changed.
      Parameters:
      @@ -2190,7 +2162,7 @@

      onPlaybackStateChanged

    - +
      @@ -2199,7 +2171,7 @@

      onPlayWhenReadyChanged

      default void onPlayWhenReadyChanged​(AnalyticsListener.EventTime eventTime,
                                           boolean playWhenReady,
                                           @PlayWhenReadyChangeReason
      -                                    int reason)
      + @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int reason)
      Called when the value changed that indicates whether playback will proceed when ready.
      Parameters:
      @@ -2209,7 +2181,7 @@

      onPlayWhenReadyChanged

    - +
      @@ -2217,7 +2189,7 @@

      onPlayWhenReadyChanged

      onPlaybackSuppressionReasonChanged

      default void onPlaybackSuppressionReasonChanged​(AnalyticsListener.EventTime eventTime,
                                                       @PlaybackSuppressionReason
      -                                                int playbackSuppressionReason)
      + @com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason)
      Called when playback suppression reason changed.
      Parameters:
      @@ -2242,7 +2214,7 @@

      onIsPlayingChanged

    - +
      @@ -2250,7 +2222,7 @@

      onIsPlayingChanged

      onTimelineChanged

      default void onTimelineChanged​(AnalyticsListener.EventTime eventTime,
                                      @TimelineChangeReason
      -                               int reason)
      + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
      Called when the timeline changed.
      Parameters:
      @@ -2259,7 +2231,7 @@

      onTimelineChanged

    - +
      @@ -2269,7 +2241,7 @@

      onMediaItemTransition

      @Nullable MediaItem mediaItem, @MediaItemTransitionReason - int reason) + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason)
      Called when playback transitions to a different media item.
      Parameters:
      @@ -2279,7 +2251,7 @@

      onMediaItemTransition

    - + - + - +
    • onMaxSeekToPreviousPositionChanged

      default void onMaxSeekToPreviousPositionChanged​(AnalyticsListener.EventTime eventTime,
      -                                                int maxSeekToPreviousPositionMs)
      + long maxSeekToPreviousPositionMs)
      Called when the maximum position for which Player.seekToPrevious() seeks to the previous window changes.
      @@ -2409,7 +2381,7 @@

      onMaxSeekToPreviousPositionChanged

    - +
  • - + @@ -441,7 +441,7 @@

    updateSessions

    Description copied from interface: PlaybackSessionManager
    Specified by:
    @@ -471,7 +471,7 @@

    updateSessionsWithTimelineChange

    - +
    - + @@ -313,7 +313,7 @@

    updateSessions

    void updateSessions​(AnalyticsListener.EventTime eventTime)
    Updates or creates sessions based on a player AnalyticsListener.EventTime. -

    Call updateSessionsWithTimelineChange(EventTime) or updateSessionsWithDiscontinuity(EventTime, int) if the event is a Timeline change or +

    Call updateSessionsWithTimelineChange(EventTime) or updateSessionsWithDiscontinuity(EventTime, int) if the event is a Timeline change or a position discontinuity respectively.

    Parameters:
    @@ -338,7 +338,7 @@

    updateSessionsWithTimelineChange

    - + @@ -317,10 +317,10 @@

    Method Summary

    - + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason) @@ -372,7 +372,7 @@

    Methods inherited from class java.lang.AnalyticsListener

    -onAudioAttributesChanged, onAudioCodecError, onAudioDecoderInitialized, onAudioDecoderInitialized, onAudioDecoderReleased, onAudioDisabled, onAudioEnabled, onAudioInputFormatChanged, onAudioInputFormatChanged, onAudioPositionAdvancing, onAudioSessionIdChanged, onAudioSinkError, onAudioUnderrun, onAvailableCommandsChanged, onDecoderDisabled, onDecoderEnabled, onDecoderInitialized, onDecoderInputFormatChanged, onDrmKeysLoaded, onDrmKeysRemoved, onDrmKeysRestored, onDrmSessionAcquired, onDrmSessionAcquired, onDrmSessionReleased, onIsLoadingChanged, onIsPlayingChanged, onLoadCanceled, onLoadCompleted, onLoadingChanged, onLoadStarted, onMaxSeekToPreviousPositionChanged, onMediaItemTransition, onMediaMetadataChanged, onMetadata, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerReleased, onPlayerStateChanged, onPlaylistMetadataChanged, onPlayWhenReadyChanged, onPositionDiscontinuity, onRenderedFirstFrame, onRepeatModeChanged, onSeekBackIncrementChanged, onSeekForwardIncrementChanged, onSeekProcessed, onSeekStarted, onShuffleModeChanged, onSkipSilenceEnabledChanged, onStaticMetadataChanged, onSurfaceSizeChanged, onTimelineChanged, onTracksChanged, onUpstreamDiscarded, onVideoCodecError, onVideoDecoderInitialized, onVideoDecoderInitialized, onVideoDecoderReleased, onVideoDisabled, onVideoEnabled, onVideoFrameProcessingOffset, onVideoInputFormatChanged, onVideoInputFormatChanged, onVideoSizeChanged, onVolumeChanged +onAudioAttributesChanged, onAudioCodecError, onAudioDecoderInitialized, onAudioDecoderInitialized, onAudioDecoderReleased, onAudioDisabled, onAudioEnabled, onAudioInputFormatChanged, onAudioInputFormatChanged, onAudioPositionAdvancing, onAudioSessionIdChanged, onAudioSinkError, onAudioUnderrun, onAvailableCommandsChanged, onDecoderDisabled, onDecoderEnabled, onDecoderInitialized, onDecoderInputFormatChanged, onDrmKeysLoaded, onDrmKeysRemoved, onDrmKeysRestored, onDrmSessionAcquired, onDrmSessionAcquired, onDrmSessionReleased, onIsLoadingChanged, onIsPlayingChanged, onLoadCanceled, onLoadCompleted, onLoadingChanged, onLoadStarted, onMaxSeekToPreviousPositionChanged, onMediaItemTransition, onMediaMetadataChanged, onMetadata, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerReleased, onPlayerStateChanged, onPlaylistMetadataChanged, onPlayWhenReadyChanged, onPositionDiscontinuity, onRenderedFirstFrame, onRepeatModeChanged, onSeekBackIncrementChanged, onSeekForwardIncrementChanged, onSeekProcessed, onSeekStarted, onShuffleModeChanged, onSkipSilenceEnabledChanged, onSurfaceSizeChanged, onTimelineChanged, onTracksChanged, onTracksInfoChanged, onUpstreamDiscarded, onVideoCodecError, onVideoDecoderInitialized, onVideoDecoderInitialized, onVideoDecoderReleased, onVideoDisabled, onVideoEnabled, onVideoFrameProcessingOffset, onVideoInputFormatChanged, onVideoInputFormatChanged, onVideoSizeChanged, onVolumeChanged @@ -532,7 +532,7 @@

    onSessionFinished

    - +
    - - - - - - + @@ -642,7 +635,7 @@

    buildAacLcAudioSpecificConfig

    -
      +
      • buildAudioSpecificConfig

        public static byte[] buildAudioSpecificConfig​(int audioObjectType,
        @@ -659,18 +652,6 @@ 

        buildAudioSpecificConfig

      - - - -
        -
      • -

        getEncodingForAudioObjectType

        -
        @Encoding
        -public static int getEncodingForAudioObjectType​(@AacAudioObjectType
        -                                                int audioObjectType)
        -
        Returns the encoding for a given AAC audio object type.
        -
      • -
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/Ac3Util.html b/docs/doc/reference/com/google/android/exoplayer2/audio/Ac3Util.html index 02a56bf85cb..6621b61e0e2 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/Ac3Util.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/Ac3Util.html @@ -186,34 +186,27 @@

    Field Summary

    - - - - - - + - + - + - + - + - + - +
    All Methods Instance Methods Concrete Methods Deprecated Methods All Methods Instance Methods Concrete Methods 
    Modifier and Type Method void onAvailableCommandsChanged​(Player.Commands availableCommands) -
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one +
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one Player.Command.
    voidonMaxSeekToPreviousPositionChanged​(int maxSeekToPreviousPositionMs)onMaxSeekToPreviousPositionChanged​(long maxSeekToPreviousPositionMs)
    Called when the value of Player.getMaxSeekToPreviousPosition() changes.
    voidonMediaItemTransition​(MediaItem mediaItem, - int reason)onMediaItemTransition​(MediaItem mediaItem, + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason)
    Called when playback transitions to a media item or starts repeating a media item according to the current repeat mode.
    @@ -506,7 +506,7 @@

    Method Summary

    void onMetadata​(Metadata metadata) -
    Called when there is metadata associated with current playback time.
    +
    Called when there is metadata associated with the current playback time.
    voidonPlaybackStateChanged​(int playbackState)onPlaybackStateChanged​(@com.google.android.exoplayer2.Player.State int playbackState)
    Called when the value returned from Player.getPlaybackState() changes.
    voidonPlaybackSuppressionReasonChanged​(int playbackSuppressionReason)onPlaybackSuppressionReasonChanged​(@com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason)
    Called when the value returned from Player.getPlaybackSuppressionReason() changes.
    voidonPlayerStateChanged​(boolean playWhenReady, - int playbackState)onPlayerStateChanged​(boolean playWhenReady, + @com.google.android.exoplayer2.Player.State int playbackState)  
    voidonPlayWhenReadyChanged​(boolean playWhenReady, - int reason)onPlayWhenReadyChanged​(boolean playWhenReady, + @com.google.android.exoplayer2.Player.PlayWhenReadyChangeReason int reason)
    Called when the value returned from Player.getPlayWhenReady() changes.
    voidonPositionDiscontinuity​(Player.PositionInfo oldPosition, +onPositionDiscontinuity​(Player.PositionInfo oldPosition, Player.PositionInfo newPosition, - int reason)
    Called when a position discontinuity occurs.
    voidonRepeatModeChanged​(int repeatMode)onRepeatModeChanged​(@com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
    Called when the value of Player.getRepeatMode() changes.
    voidonStaticMetadataChanged​(List<Metadata> metadataList) -
    Deprecated.
    -
    void onSurfaceSizeChanged​(int width, int height) @@ -632,15 +625,15 @@

    Method Summary

    rendered.
    voidonTimelineChanged​(Timeline timeline, - int reason)onTimelineChanged​(Timeline timeline, + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
    Called when the timeline has been refreshed.
    void onTracksChanged​(TrackGroupArray trackGroups, TrackSelectionArray trackSelections)
    voidonTracksInfoChanged​(TracksInfo tracksInfo) +
    Called when the available or selected tracks change.
    +
    void onUpstreamDiscarded​(int windowIndex, @@ -791,21 +791,14 @@

    Methods inherited from interface com.google.android.exoplayer2.drm.

    Methods inherited from interface com.google.android.exoplayer2.Player.EventListener

    -onLoadingChanged, onPositionDiscontinuity +onLoadingChanged, onPositionDiscontinuity, onTrackSelectionParametersChanged - - + - + - + @@ -1745,7 +1733,7 @@

    onIsLoadingChanged

    onAvailableCommandsChanged

    public void onAvailableCommandsChanged​(Player.Commands availableCommands)
    Description copied from interface: Player.EventListener
    -
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one +
    Called when the value returned from Player.isCommandAvailable(int) changes for at least one Player.Command.

    Player.EventListener.onEvents(Player, Events) will also be called to report this event along with @@ -1760,7 +1748,7 @@

    onAvailableCommandsChanged

    - + - + - + - + - + @@ -1939,7 +1927,7 @@

    onPlayerError

    - + - +
    @@ -2110,12 +2102,10 @@

    onPlaylistMetadataChanged

  • onMetadata

    public final void onMetadata​(Metadata metadata)
    -
    Description copied from interface: MetadataOutput
    -
    Called when there is metadata associated with current playback time.
    +
    Description copied from interface: Player.Listener
    +
    Called when there is metadata associated with the current playback time.
    Specified by:
    -
    onMetadata in interface MetadataOutput
    -
    Specified by:
    onMetadata in interface Player.Listener
    Parameters:
    metadata - The metadata.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.EventTime.html b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.EventTime.html index ef12128c800..19f70bab3c2 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.EventTime.html +++ b/docs/doc/reference/com/google/android/exoplayer2/analytics/AnalyticsListener.EventTime.html @@ -184,7 +184,7 @@

    Field Summary

  • currentWindowIndex
    The current window index in currentTimeline at the time of the event, or the - prospective window index if the timeline is not yet known and empty (equivalent to Player.getCurrentWindowIndex()).
    + prospective window index if the timeline is not yet known and empty (equivalent to Player.getCurrentMediaItemIndex()).
    static intEVENT_STATIC_METADATA_CHANGED - -
    static int EVENT_SURFACE_SIZE_CHANGED
    The surface size changed.
    static int EVENT_TIMELINE_CHANGED
    static int EVENT_TRACKS_CHANGED - +
    static int EVENT_UPSTREAM_DISCARDED
    Data was removed from the end of the media buffer.
    static int EVENT_VIDEO_CODEC_ERROR
    The video codec encountered an error.
    static int EVENT_VIDEO_DECODER_INITIALIZED
    A video renderer created a decoder.
    static int EVENT_VIDEO_DECODER_RELEASED
    A video renderer released a decoder.
    static int EVENT_VIDEO_DISABLED
    A video renderer was disabled.
    static int EVENT_VIDEO_ENABLED
    A video renderer was enabled.
    static int EVENT_VIDEO_FRAME_PROCESSING_OFFSET
    Video frame processing offset data has been reported.
    static int EVENT_VIDEO_INPUT_FORMAT_CHANGED
    The format consumed by a video renderer changed.
    static int EVENT_VIDEO_SIZE_CHANGED
    The video size changed.
    static int EVENT_VOLUME_CHANGED @@ -952,8 +943,8 @@

    Method Summary

    default voidonMaxSeekToPreviousPositionChanged​(AnalyticsListener.EventTime eventTime, - int maxSeekToPreviousPositionMs)onMaxSeekToPreviousPositionChanged​(AnalyticsListener.EventTime eventTime, + long maxSeekToPreviousPositionMs)
    Called when the maximum position for which Player.seekToPrevious() seeks to the previous window changes.
    @@ -961,9 +952,9 @@

    Method Summary

    default voidonMediaItemTransition​(AnalyticsListener.EventTime eventTime, +onMediaItemTransition​(AnalyticsListener.EventTime eventTime, MediaItem mediaItem, - int reason)
    Called when playback transitions to a different media item.
    default voidonPlaybackStateChanged​(AnalyticsListener.EventTime eventTime, - int state)onPlaybackStateChanged​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.State int state)
    Called when the playback state changed.
    default voidonPlaybackSuppressionReasonChanged​(AnalyticsListener.EventTime eventTime, - int playbackSuppressionReason)onPlaybackSuppressionReasonChanged​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.PlaybackSuppressionReason int playbackSuppressionReason)
    Called when playback suppression reason changed.
    default voidonPlayerStateChanged​(AnalyticsListener.EventTime eventTime, +onPlayerStateChanged​(AnalyticsListener.EventTime eventTime, boolean playWhenReady, - int playbackState)
    default voidonPlayWhenReadyChanged​(AnalyticsListener.EventTime eventTime, +onPlayWhenReadyChanged​(AnalyticsListener.EventTime eventTime, boolean playWhenReady, - int reason)
    Called when the value changed that indicates whether playback will proceed when ready.
    default voidonPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, - int reason)onPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
    default voidonPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, +onPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, Player.PositionInfo oldPosition, Player.PositionInfo newPosition, - int reason)
    Called when a position discontinuity occurred.
    default voidonRepeatModeChanged​(AnalyticsListener.EventTime eventTime, - int repeatMode)onRepeatModeChanged​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode)
    Called when the repeat mode changed.
    onSeekStarted​(AnalyticsListener.EventTime eventTime)
    default voidonStaticMetadataChanged​(AnalyticsListener.EventTime eventTime, - List<Metadata> metadataList) -
    Deprecated. -
    Use Player.getMediaMetadata() and onMediaMetadataChanged(EventTime, - MediaMetadata) for access to structured metadata, or access the raw static metadata - directly from the track selections' formats.
    -
    -
    default void onSurfaceSizeChanged​(AnalyticsListener.EventTime eventTime, int width, int height)
    default voidonTimelineChanged​(AnalyticsListener.EventTime eventTime, - int reason)onTimelineChanged​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
    Called when the timeline changed.
    default void onTracksChanged​(AnalyticsListener.EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections) -
    Called when the available or selected tracks for the renderers changed.
    + +
    default voidonTracksInfoChanged​(AnalyticsListener.EventTime eventTime, + TracksInfo tracksInfo) +
    Called when the available or selected tracks change.
    voidupdateSessionsWithDiscontinuity​(AnalyticsListener.EventTime eventTime, - int reason)updateSessionsWithDiscontinuity​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
    Updates or creates sessions based on a position discontinuity at AnalyticsListener.EventTime.
    voidupdateSessionsWithDiscontinuity​(AnalyticsListener.EventTime eventTime, - int reason)updateSessionsWithDiscontinuity​(AnalyticsListener.EventTime eventTime, + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
    Updates or creates sessions based on a position discontinuity at AnalyticsListener.EventTime.
    voidonPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, +onPositionDiscontinuity​(AnalyticsListener.EventTime eventTime, Player.PositionInfo oldPosition, Player.PositionInfo newPosition, - int reason)
    Called when a position discontinuity occurred.
    static intgetEncodingForAudioObjectType​(int audioObjectType) -
    Returns the encoding for a given AAC audio object type.
    -
    static AacUtil.Config parseAudioSpecificConfig​(byte[] audioSpecificConfig)
    Parses an AAC AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1
    static AacUtil.Config parseAudioSpecificConfig​(ParsableBitArray bitArray, boolean forceReadToEnd)
    static StringE_AC3_JOC_CODEC_STRING -
    A non-standard codec string for E-AC3-JOC.
    -
    static int E_AC3_MAX_RATE_BYTES_PER_SECOND
    Maximum rate for an E-AC-3 audio stream, in bytes per second.
    static int TRUEHD_MAX_RATE_BYTES_PER_SECOND
    Maximum rate for a TrueHD audio stream, in bytes per second.
    static int TRUEHD_RECHUNK_SAMPLE_COUNT
    The number of samples to store in each output chunk when rechunking TrueHD streams.
    static int TRUEHD_SYNCFRAME_PREFIX_LENGTH @@ -328,23 +321,6 @@

    Methods inherited from class java.lang. - - -
      -
    • -

      E_AC3_JOC_CODEC_STRING

      -
      public static final String E_AC3_JOC_CODEC_STRING
      -
      A non-standard codec string for E-AC3-JOC. Use of this constant allows for disambiguation - between regular E-AC3 ("ec-3") and E-AC3-JOC ("ec+3") streams from the codec string alone. The - standard is to use "ec-3" for both, as per the MP4RA - registered codec types.
      -
      -
      See Also:
      -
      Constant Field Values
      -
      -
    • -
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.Builder.html index 711d4f9c9d2..e05fc413046 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.Builder.html @@ -188,24 +188,24 @@

    Method Summary

    AudioAttributes.BuildersetAllowedCapturePolicy​(int allowedCapturePolicy)setAllowedCapturePolicy​(@com.google.android.exoplayer2.C.AudioAllowedCapturePolicy int allowedCapturePolicy)
    AudioAttributes.BuildersetContentType​(int contentType)setContentType​(@com.google.android.exoplayer2.C.AudioContentType int contentType)  
    AudioAttributes.BuildersetFlags​(int flags)setFlags​(@com.google.android.exoplayer2.C.AudioFlags int flags)  
    AudioAttributes.BuildersetUsage​(int usage)setUsage​(@com.google.android.exoplayer2.C.AudioUsage int usage)  
    @@ -254,56 +254,56 @@

    Builder

    Method Detail

    - +
    See Also:
    AudioAttributes.Builder.setContentType(int)
  • - + - + - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.html b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.html index b6d7ba3d260..72657535631 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioAttributes.html @@ -197,12 +197,12 @@

    Field Summary

    Description -int +@com.google.android.exoplayer2.C.AudioAllowedCapturePolicy int allowedCapturePolicy   -int +@com.google.android.exoplayer2.C.AudioContentType int contentType   @@ -219,12 +219,12 @@

    Field Summary

      -int +@com.google.android.exoplayer2.C.AudioFlags int flags   -int +@com.google.android.exoplayer2.C.AudioUsage int usage   @@ -310,7 +310,7 @@

    DEFAULT

  • contentType

    @AudioContentType
    -public final int contentType
    +public final @com.google.android.exoplayer2.C.AudioContentType int contentType
  • @@ -320,7 +320,7 @@

    contentType

  • flags

    @AudioFlags
    -public final int flags
    +public final @com.google.android.exoplayer2.C.AudioFlags int flags
  • @@ -330,7 +330,7 @@

    flags

  • usage

    @AudioUsage
    -public final int usage
    +public final @com.google.android.exoplayer2.C.AudioUsage int usage
  • @@ -340,7 +340,7 @@

    usage

  • allowedCapturePolicy

    @AudioAllowedCapturePolicy
    -public final int allowedCapturePolicy
    +public final @com.google.android.exoplayer2.C.AudioAllowedCapturePolicy int allowedCapturePolicy
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioListener.html b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioListener.html deleted file mode 100644 index 718a4fc3d82..00000000000 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioListener.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - -AudioListener (ExoPlayer library) - - - - - - - - - - - - - -
    - -
    - -
    -
    - -

    Interface AudioListener

    -
    -
    -
    - -
    -
    - -
    -
    -
      -
    • - -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          onAudioSessionIdChanged

          -
          default void onAudioSessionIdChanged​(int audioSessionId)
          -
          Deprecated.
          -
          Called when the audio session ID changes.
          -
          -
          Parameters:
          -
          audioSessionId - The audio session ID.
          -
          -
        • -
        - - - -
          -
        • -

          onAudioAttributesChanged

          -
          default void onAudioAttributesChanged​(AudioAttributes audioAttributes)
          -
          Deprecated.
          -
          Called when the audio attributes change.
          -
          -
          Parameters:
          -
          audioAttributes - The audio attributes.
          -
          -
        • -
        - - - -
          -
        • -

          onVolumeChanged

          -
          default void onVolumeChanged​(float volume)
          -
          Deprecated.
          -
          Called when the volume changes.
          -
          -
          Parameters:
          -
          volume - The new volume, with 0 being silence and 1 being unity gain.
          -
          -
        • -
        - - - -
          -
        • -

          onSkipSilenceEnabledChanged

          -
          default void onSkipSilenceEnabledChanged​(boolean skipSilenceEnabled)
          -
          Deprecated.
          -
          Called when skipping silences is enabled or disabled in the audio stream.
          -
          -
          Parameters:
          -
          skipSilenceEnabled - Whether skipping silences in the audio stream is enabled.
          -
          -
        • -
        -
      • -
      -
      -
    • -
    -
    -
    -
    - -
    - -
    - - diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioProcessor.html b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioProcessor.html index eecefafcb39..2297eca1ddd 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/AudioProcessor.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/AudioProcessor.html @@ -122,7 +122,7 @@

    Interface AudioProcessor

  • All Known Implementing Classes:
    -
    BaseAudioProcessor, GvrAudioProcessor, SilenceSkippingAudioProcessor, SonicAudioProcessor, TeeAudioProcessor
    +
    BaseAudioProcessor, SilenceSkippingAudioProcessor, SonicAudioProcessor, TeeAudioProcessor

    public interface AudioProcessor
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/DecoderAudioRenderer.html b/docs/doc/reference/com/google/android/exoplayer2/audio/DecoderAudioRenderer.html index 88fb36940ca..1ada9e6afaa 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/DecoderAudioRenderer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/DecoderAudioRenderer.html @@ -114,7 +114,7 @@
    -

    Class DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleOutputBuffer,​? extends DecoderException>>

    +

    Class DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleDecoderOutputBuffer,​? extends DecoderException>>


  • -
    public abstract class DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleOutputBuffer,​? extends DecoderException>>
    +
    public abstract class DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleDecoderOutputBuffer,​? extends DecoderException>>
     extends BaseRenderer
     implements MediaClock
    Decodes and renders audio using a Decoder. @@ -154,8 +154,8 @@

    Class DecoderAudioRenderer&
  • Message with type Renderer.MSG_SET_VOLUME to set the volume. The message payload should be a Float with 0 being silence and 1 being unity gain.
  • Message with type Renderer.MSG_SET_AUDIO_ATTRIBUTES to set the audio attributes. The - message payload should be an AudioAttributes - instance that will configure the underlying audio track. + message payload should be an AudioAttributes instance that will configure the + underlying audio track.
  • Message with type Renderer.MSG_SET_AUX_EFFECT_INFO to set the auxiliary effect. The message payload should be an AuxEffectInfo instance that will configure the underlying audio track. @@ -183,7 +183,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Renderer

    -Renderer.State, Renderer.VideoScalingMode, Renderer.WakeupListener
  • +Renderer.MessageType, Renderer.State, Renderer.WakeupListener

  • - + - - - -
      -
    • -

      getPreSkipSamples

      -
      public static int getPreSkipSamples​(List<byte[]> initializationData)
      -
      Returns the number of pre-skip samples specified by the given Opus codec initialization data.
      -
      -
      Parameters:
      -
      initializationData - The codec initialization data.
      -
      Returns:
      -
      The number of pre-skip samples.
      -
      -
    • -
    - - - -
      -
    • -

      getSeekPreRollSamples

      -
      public static int getSeekPreRollSamples​(List<byte[]> initializationData)
      -
      Returns the number of seek per-roll samples specified by the given Opus codec initialization - data.
      -
      -
      Parameters:
      -
      initializationData - The codec initialization data.
      -
      Returns:
      -
      The number of seek pre-roll samples.
      -
      -
    • -
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/TeeAudioProcessor.html b/docs/doc/reference/com/google/android/exoplayer2/audio/TeeAudioProcessor.html index 9aba8e4a9b1..2575d10588d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/TeeAudioProcessor.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/TeeAudioProcessor.html @@ -146,8 +146,8 @@

    Class TeeAudioProcessor

    This audio processor can be inserted into the audio processor chain to access audio data before/after particular processing steps have been applied. For example, to get audio output after playback speed adjustment and silence skipping have been applied it is necessary to pass a - custom DefaultAudioSink.AudioProcessorChain when - creating the audio sink, and include this audio processor after all other audio processors. + custom DefaultAudioSink.AudioProcessorChain when creating the audio sink, and include + this audio processor after all other audio processors.

  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/audio/package-summary.html index f792956e967..adbed47e7e2 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/package-summary.html @@ -110,44 +110,38 @@

    Package com.google.android.exoplayer2.aud -AudioListener -Deprecated. - - - - AudioProcessor
    Interface for audio processors, which take audio data as input and transform it, potentially modifying its channel count, encoding and/or sample rate.
    - + AudioRendererEventListener
    Listener of audio Renderer events.
    - + AudioSink
    A sink that consumes audio data.
    - + AudioSink.Listener
    Listener for audio sink events.
    - + DefaultAudioSink.AudioProcessorChain
    Provides a chain of audio processors, which are used for any user-defined processing and applying playback parameters (if supported).
    - + TeeAudioProcessor.AudioBufferSink
    A sink for audio buffers handled by the audio processor.
    @@ -252,7 +246,7 @@

    Package com.google.android.exoplayer2.aud -DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleOutputBuffer,​? extends DecoderException>> +DecoderAudioRenderer<T extends Decoder<DecoderInputBuffer,​? extends SimpleDecoderOutputBuffer,​? extends DecoderException>>
    Decodes and renders audio using a Decoder.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/audio/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/audio/package-tree.html index e4275677443..397e2d4786e 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/audio/package-tree.html +++ b/docs/doc/reference/com/google/android/exoplayer2/audio/package-tree.html @@ -168,7 +168,6 @@

    Class Hierarchy

    Interface Hierarchy

    @@ -152,7 +152,7 @@

    Field Summary

    static String TABLE_PREFIX -
    Prefix for tables that can be read and written by ExoPlayer components.
    +
    Prefix for tables that can be read and written by media library components.
    @@ -211,7 +211,7 @@

    Field Detail

  • TABLE_PREFIX

    static final String TABLE_PREFIX
    -
    Prefix for tables that can be read and written by ExoPlayer components.
    +
    Prefix for tables that can be read and written by media library components.
    See Also:
    Constant Field Values
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/database/ExoDatabaseProvider.html b/docs/doc/reference/com/google/android/exoplayer2/database/ExoDatabaseProvider.html index 1c796098803..e0d5ab81390 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/database/ExoDatabaseProvider.html +++ b/docs/doc/reference/com/google/android/exoplayer2/database/ExoDatabaseProvider.html @@ -25,12 +25,6 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; -var altColor = "altColor"; -var rowColor = "rowColor"; -var tableTab = "tableTab"; -var activeTableTab = "activeTableTab"; var pathtoroot = "../../../../../"; var useModuleDirectories = false; loadScripts(document, 'script'); @@ -93,9 +87,9 @@ @@ -124,12 +118,17 @@

    Class ExoDatabaseProviderandroid.database.sqlite.SQLiteOpenHelper

  • +
  • +

    -
    public final class ExoDatabaseProvider
    -extends SQLiteOpenHelper
    -implements DatabaseProvider
    -
    An SQLiteOpenHelper that provides instances of a standalone ExoPlayer database. - -

    Suitable for use by applications that do not already have their own database, or that would - prefer to keep ExoPlayer tables isolated in their own database. Other applications should prefer - to use DefaultDatabaseProvider with their own SQLiteOpenHelper.

    +
    @Deprecated
    +public final class ExoDatabaseProvider
    +extends StandaloneDatabaseProvider
    +
    Deprecated. + +
  • @@ -159,21 +156,13 @@

    Class ExoDatabaseProvider

    Field Summary

    - - - - - - - - - - - - -
    Fields 
    Modifier and TypeFieldDescription
    static StringDATABASE_NAME -
    The file name used for the standalone ExoPlayer database.
    -
    +
    • @@ -200,8 +189,8 @@

      Constructor Summary

      ExoDatabaseProvider​(Context context) -
      Provides instances of the database located by passing DATABASE_NAME to Context.getDatabasePath(String).
      - +
      Deprecated.
    • @@ -214,33 +203,13 @@

      Constructor Summary

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidonCreate​(SQLiteDatabase db) 
      voidonDowngrade​(SQLiteDatabase db, - int oldVersion, - int newVersion) 
      voidonUpgrade​(SQLiteDatabase db, - int oldVersion, - int newVersion) 
      + diff --git a/docs/doc/reference/com/google/android/exoplayer2/database/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/database/package-summary.html index b97fa9d1598..a21d902eeb1 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/database/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/database/package-summary.html @@ -106,7 +106,7 @@

      Package com.google.android.exoplayer2.dat DatabaseProvider -
      Provides SQLiteDatabase instances to ExoPlayer components, which may read and write +
      Provides SQLiteDatabase instances to media library components, which may read and write tables prefixed with DatabaseProvider.TABLE_PREFIX.
      @@ -129,14 +129,20 @@

      Package com.google.android.exoplayer2.dat ExoDatabaseProvider - -
      An SQLiteOpenHelper that provides instances of a standalone ExoPlayer database.
      +Deprecated. + +StandaloneDatabaseProvider + +
      An SQLiteOpenHelper that provides instances of a standalone database.
      + + + VersionTable -
      Utility methods for accessing versions of ExoPlayer database components.
      +
      Utility methods for accessing versions of media library database components.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/database/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/database/package-tree.html index f1e892e04ce..4e0149de185 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/database/package-tree.html +++ b/docs/doc/reference/com/google/android/exoplayer2/database/package-tree.html @@ -106,7 +106,11 @@

      Class Hierarchy

    • com.google.android.exoplayer2.database.DefaultDatabaseProvider (implements com.google.android.exoplayer2.database.DatabaseProvider)
    • android.database.sqlite.SQLiteOpenHelper (implements java.lang.AutoCloseable)
    • java.lang.Throwable (implements java.io.Serializable) diff --git a/docs/doc/reference/com/google/android/exoplayer2/decoder/Buffer.html b/docs/doc/reference/com/google/android/exoplayer2/decoder/Buffer.html index 0c467e7bf2e..9c9d6fa5c1d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/decoder/Buffer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/decoder/Buffer.html @@ -130,7 +130,7 @@

      Class Buffer

    • Direct Known Subclasses:
      -
      DecoderInputBuffer, OutputBuffer
      +
      DecoderInputBuffer, DecoderOutputBuffer

      public abstract class Buffer
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/drm/ExoMediaCrypto.html b/docs/doc/reference/com/google/android/exoplayer2/decoder/CryptoConfig.html
      similarity index 88%
      rename from docs/doc/reference/com/google/android/exoplayer2/drm/ExoMediaCrypto.html
      rename to docs/doc/reference/com/google/android/exoplayer2/decoder/CryptoConfig.html
      index 9e822c4669d..618770cff30 100644
      --- a/docs/doc/reference/com/google/android/exoplayer2/drm/ExoMediaCrypto.html
      +++ b/docs/doc/reference/com/google/android/exoplayer2/decoder/CryptoConfig.html
      @@ -2,7 +2,7 @@
       
       
       
      -ExoMediaCrypto (ExoPlayer library)
      +CryptoConfig (ExoPlayer library)
       
       
       
      @@ -19,7 +19,7 @@
       
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - -
      - -
      -
      - -

      Class GvrAudioProcessor

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.google.android.exoplayer2.ext.gvr.GvrAudioProcessor
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        AudioProcessor
        -
        -
        -
        @Deprecated
        -public class GvrAudioProcessor
        -extends Object
        -implements AudioProcessor
        -
        Deprecated. -
        If you still need this component, please contact us by filing an issue on our issue tracker.
        -
        -
        An AudioProcessor that uses GvrAudioSurround to provide binaural rendering of - surround sound and ambisonic soundfields.
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            GvrAudioProcessor

            -
            public GvrAudioProcessor()
            -
            Deprecated.
            -
            Creates a new GVR audio processor.
            -
          • -
          -
        • -
        -
        - -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            updateOrientation

            -
            public void updateOrientation​(float w,
            -                              float x,
            -                              float y,
            -                              float z)
            -
            Deprecated.
            -
            Updates the listener head orientation. May be called on any thread. See - GvrAudioSurround.updateNativeOrientation.
            -
            -
            Parameters:
            -
            w - The w component of the quaternion.
            -
            x - The x component of the quaternion.
            -
            y - The y component of the quaternion.
            -
            z - The z component of the quaternion.
            -
            -
          • -
          - - - - - - - -
            -
          • -

            isActive

            -
            public boolean isActive()
            -
            Deprecated.
            -
            Description copied from interface: AudioProcessor
            -
            Returns whether the processor is configured and will process input buffers.
            -
            -
            Specified by:
            -
            isActive in interface AudioProcessor
            -
            -
          • -
          - - - -
            -
          • -

            queueInput

            -
            public void queueInput​(ByteBuffer inputBuffer)
            -
            Deprecated.
            -
            Description copied from interface: AudioProcessor
            -
            Queues audio data between the position and limit of the input buffer for processing. - buffer must be a direct byte buffer with native byte order. Its contents are treated as - read-only. Its position will be advanced by the number of bytes consumed (which may be zero). - The caller retains ownership of the provided buffer. Calling this method invalidates any - previous buffer returned by AudioProcessor.getOutput().
            -
            -
            Specified by:
            -
            queueInput in interface AudioProcessor
            -
            Parameters:
            -
            inputBuffer - The input buffer to process.
            -
            -
          • -
          - - - - - - - -
            -
          • -

            getOutput

            -
            public ByteBuffer getOutput()
            -
            Deprecated.
            -
            Description copied from interface: AudioProcessor
            -
            Returns a buffer containing processed output data between its position and limit. The buffer - will always be a direct byte buffer with native byte order. Calling this method invalidates any - previously returned buffer. The buffer will be empty if no output is available.
            -
            -
            Specified by:
            -
            getOutput in interface AudioProcessor
            -
            Returns:
            -
            A buffer containing processed output data between its position and limit.
            -
            -
          • -
          - - - - - - - -
            -
          • -

            flush

            -
            public void flush()
            -
            Deprecated.
            -
            Description copied from interface: AudioProcessor
            -
            Clears any buffered data and pending output. If the audio processor is active, also prepares - the audio processor to receive a new stream of input in the last configured (pending) format.
            -
            -
            Specified by:
            -
            flush in interface AudioProcessor
            -
            -
          • -
          - - - -
            -
          • -

            reset

            -
            public void reset()
            -
            Deprecated.
            -
            Description copied from interface: AudioProcessor
            -
            Resets the processor to its unconfigured state, releasing any resources.
            -
            -
            Specified by:
            -
            reset in interface AudioProcessor
            -
            -
          • -
          -
        • -
        -
        -
      • -
      -
      -
      -
      - - - - diff --git a/docs/doc/reference/com/google/android/exoplayer2/ext/gvr/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/ext/gvr/package-tree.html deleted file mode 100644 index 3f23cccf8cf..00000000000 --- a/docs/doc/reference/com/google/android/exoplayer2/ext/gvr/package-tree.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - -com.google.android.exoplayer2.ext.gvr Class Hierarchy (ExoPlayer library) - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.google.android.exoplayer2.ext.gvr

      -Package Hierarchies: - -
      -
      -
      -

      Class Hierarchy

      - -
      -
      -
      - - - diff --git a/docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html index 4991086e651..6350170170f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html @@ -570,7 +570,8 @@

      setAdPreloadTimeoutMs

      - +
        @@ -619,27 +612,29 @@

        handlePrepareError

        onTimelineChanged

        public void onTimelineChanged​(Timeline timeline,
                                       @TimelineChangeReason
        -                              int reason)
        -
        Description copied from interface: Player.EventListener
        + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
      +
      Description copied from interface: Player.EventListener
      Called when the timeline has been refreshed. -

      Note that the current window or period index may change as a result of a timeline change. - If playback can't continue smoothly because of this timeline change, a separate Player.EventListener.onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be triggered. +

      Note that the current MediaItem or playback position may change as a result of a + timeline change. If playback can't continue smoothly because of this timeline change, a + separate Player.EventListener.onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be + triggered.

      Player.EventListener.onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration.

      Specified by:
      -
      onTimelineChanged in interface Player.EventListener
      +
      onTimelineChanged in interface Player.EventListener
      Specified by:
      -
      onTimelineChanged in interface Player.Listener
      +
      onTimelineChanged in interface Player.Listener
      Parameters:
      timeline - The latest timeline. Never null, but may be empty.
      reason - The Player.TimelineChangeReason responsible for this timeline change.
    - + - +
  • + + + +
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/util/FlacConstants.html b/docs/doc/reference/com/google/android/exoplayer2/extractor/flac/FlacConstants.html similarity index 82% rename from docs/doc/reference/com/google/android/exoplayer2/util/FlacConstants.html rename to docs/doc/reference/com/google/android/exoplayer2/extractor/flac/FlacConstants.html index 5a8c7958197..f516401b0ce 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/util/FlacConstants.html +++ b/docs/doc/reference/com/google/android/exoplayer2/extractor/flac/FlacConstants.html @@ -4,16 +4,16 @@ FlacConstants (ExoPlayer library) - - - - - + + + + + - - + +
  • @@ -267,7 +267,7 @@

    METADATA_BLOCK_HEADER_SIZE

    Size of the header of a FLAC metadata block in bytes.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -281,7 +281,7 @@

    STREAM_INFO_BLOCK_SIZE

    Size of the FLAC stream info block (header included) in bytes.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -295,7 +295,7 @@

    MIN_FRAME_HEADER_SIZE

    Minimum size of a FLAC frame header in bytes.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -309,7 +309,7 @@

    MAX_FRAME_HEADER_SIZE

    Maximum size of a FLAC frame header in bytes.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -323,7 +323,7 @@

    METADATA_TYPE_STREAM_INFO

    Stream info metadata block type.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -337,7 +337,7 @@

    METADATA_TYPE_SEEK_TABLE

    Seek table metadata block type.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -351,7 +351,7 @@

    METADATA_TYPE_VORBIS_COMMENT

    Vorbis comment metadata block type.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -365,7 +365,7 @@

    METADATA_TYPE_PICTURE

    Picture metadata block type.
    See Also:
    -
    Constant Field Values
    +
    Constant Field Values
  • @@ -389,18 +389,18 @@

    METADATA_TYPE_PICTURE

  • - +
    -
    - -
    -
  • + + + +
      +
    • +

      createInputSurface

      +
      public final boolean createInputSurface
      +
      Whether to request a Surface and use it as to the input to an encoder. This can only + be set to true on API 18+.
      +
    • +
    - +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html index f335fe50996..0efbdc1d72f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html @@ -122,7 +122,7 @@

    Interface MediaCod
  • All Known Implementing Classes:
    -
    SynchronousMediaCodecAdapter.Factory
    +
    DefaultMediaCodecAdapterFactory, SynchronousMediaCodecAdapter.Factory
    Enclosing interface:
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html index 0487ffd65e9..70e564c2298 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6}; +var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -218,27 +218,34 @@

    Method Summary

    +Surface +getInputSurface() + +
    Returns the input Surface, or null if the input is not a surface.
    + + + ByteBuffer getOutputBuffer​(int index)
    Returns a read-only ByteBuffer for a dequeued output buffer index.
    - + MediaFormat getOutputFormat()
    Gets the MediaFormat that was output from the MediaCodec.
    - + boolean needsReconfiguration()
    Whether the adapter needs to be reconfigured before it is used.
    - + void queueInputBuffer​(int index, int offset, @@ -249,7 +256,7 @@

    Method Summary

    Submit an input buffer for decoding.
    - + void queueSecureInputBuffer​(int index, int offset, @@ -260,14 +267,14 @@

    Method Summary

    Submit an input buffer that is potentially encrypted for decoding.
    - + void release()
    Releases the adapter and the underlying MediaCodec.
    - + void releaseOutputBuffer​(int index, boolean render) @@ -275,7 +282,7 @@

    Method Summary

    Returns the buffer to the MediaCodec.
    - + void releaseOutputBuffer​(int index, long renderTimeStampNs) @@ -284,7 +291,7 @@

    Method Summary

    it on the output surface. - + void setOnFrameRenderedListener​(MediaCodecAdapter.OnFrameRenderedListener listener, Handler handler) @@ -292,27 +299,34 @@

    Method Summary

    Registers a callback to be invoked when an output frame is rendered on the output surface.
    - + void setOutputSurface​(Surface surface)
    Dynamically sets the output surface of a MediaCodec.
    - + void setParameters​(Bundle params)
    Communicate additional parameter changes to the MediaCodec instance.
    - + void setVideoScalingMode​(int scalingMode)
    Specifies the scaling mode to use, if a surface was specified when the codec was created.
    + +void +signalEndOfInputStream() + +
    Signals the encoder of end-of-stream on input.
    + +
  • @@ -387,6 +401,21 @@

    getInputBuffer

    + + + + @@ -567,13 +596,29 @@

    setVideoScalingMode

    -
      +
      • needsReconfiguration

        boolean needsReconfiguration()
        Whether the adapter needs to be reconfigured before it is used.
      + + + +
        +
      • +

        signalEndOfInputStream

        +
        @RequiresApi(18)
        +void signalEndOfInputStream()
        +
        Signals the encoder of end-of-stream on input. The call can only be used when the encoder + receives its input from a surface.
        +
        +
        See Also:
        +
        MediaCodec.signalEndOfInputStream()
        +
        +
      • +

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.html index 1d886e65614..6c6aa82f26d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":6,"i14":6,"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":6,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":6,"i50":9,"i51":10,"i52":10,"i53":10}; +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":6,"i11":6,"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":6,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":6,"i47":9,"i48":10,"i49":10,"i50":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -178,7 +178,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Renderer

    -Renderer.State, Renderer.VideoScalingMode, Renderer.WakeupListener +Renderer.MessageType, Renderer.State, Renderer.WakeupListener
    • @@ -754,21 +733,20 @@

      decoderCounters

      Constructor Detail

      - +
      • MediaCodecRenderer

        -
        public MediaCodecRenderer​(int trackType,
        +
        public MediaCodecRenderer​(@com.google.android.exoplayer2.C.TrackType int trackType,
                                   MediaCodecAdapter.Factory codecAdapterFactory,
                                   MediaCodecSelector mediaCodecSelector,
                                   boolean enableDecoderFallback,
                                   float assumedMinimumCodecOperatingRate)
        Parameters:
        -
        trackType - The track type that the renderer handles. One of the C.TRACK_TYPE_* - constants defined in C.
        +
        trackType - The track type that the renderer handles.
        mediaCodecSelector - A decoder selector.
        enableDecoderFallback - Whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is less efficient or slower @@ -796,7 +774,7 @@

        Method Detail

      • setRenderTimeLimitMs

        public void setRenderTimeLimitMs​(long renderTimeLimitMs)
        -
        Set a limit on the time a single render(long, long) call can spend draining and +
        Sets a limit on the time a single render(long, long) call can spend draining and filling the decoder.

        This method should be called right after creating an instance of this class.

        @@ -807,54 +785,6 @@

        setRenderTimeLimitMs

      - - - -
        -
      • -

        experimentalSetAsynchronousBufferQueueingEnabled

        -
        public void experimentalSetAsynchronousBufferQueueingEnabled​(boolean enabled)
        -
        Enables asynchronous input buffer queueing. - -

        Operates the underlying MediaCodec in asynchronous mode and submits input buffers - from a separate thread to unblock the playback thread. - -

        This method is experimental, and will be renamed or removed in a future release. It should - only be called before the renderer is used.

        -
      • -
      - - - -
        -
      • -

        experimentalSetForceAsyncQueueingSynchronizationWorkaround

        -
        public void experimentalSetForceAsyncQueueingSynchronizationWorkaround​(boolean enabled)
        -
        Enables the asynchronous queueing synchronization workaround. - -

        When enabled, the queueing threads for MediaCodec instance will synchronize on a - shared lock when submitting buffers to the respective MediaCodec. - -

        This method is experimental, and will be renamed or removed in a future release. It should - only be called before the renderer is used.

        -
      • -
      - - - -
        -
      • -

        experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled

        -
        public void experimentalSetSynchronizeCodecInteractionsWithQueueingEnabled​(boolean enabled)
        -
        Enables synchronizing codec interactions with asynchronous buffer queueing. - -

        When enabled, codec interactions will wait until all input buffers pending for asynchronous - queueing are submitted to the MediaCodec first. This method is effective only if asynchronous buffer queueing is enabled. - -

        This method is experimental, and will be renamed or removed in a future release. It should - only be called before the renderer is used.

        -
      • -
      @@ -949,8 +879,7 @@

      getDecoderInfos

      • getMediaCodecConfiguration

        -
        @Nullable
        -protected abstract MediaCodecAdapter.Configuration getMediaCodecConfiguration​(MediaCodecInfo codecInfo,
        +
        protected abstract MediaCodecAdapter.Configuration getMediaCodecConfiguration​(MediaCodecInfo codecInfo,
                                                                                       Format format,
                                                                                       @Nullable
                                                                                       MediaCrypto crypto,
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html
        index f967d4999e7..1f7c30ffdd1 100644
        --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html
        +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html
        @@ -25,7 +25,7 @@
             catch(err) {
             }
         //-->
        -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
        +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};
         var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
         var altColor = "altColor";
         var rowColor = "rowColor";
        @@ -218,27 +218,34 @@ 

        Method Summary

        +Surface +getInputSurface() + +
        Returns the input Surface, or null if the input is not a surface.
        + + + ByteBuffer getOutputBuffer​(int index)
        Returns a read-only ByteBuffer for a dequeued output buffer index.
        - + MediaFormat getOutputFormat()
        Gets the MediaFormat that was output from the MediaCodec.
        - + boolean needsReconfiguration()
        Whether the adapter needs to be reconfigured before it is used.
        - + void queueInputBuffer​(int index, int offset, @@ -249,7 +256,7 @@

        Method Summary

        Submit an input buffer for decoding.
        - + void queueSecureInputBuffer​(int index, int offset, @@ -260,14 +267,14 @@

        Method Summary

        Submit an input buffer that is potentially encrypted for decoding.
        - + void release()
        Releases the adapter and the underlying MediaCodec.
        - + void releaseOutputBuffer​(int index, boolean render) @@ -275,7 +282,7 @@

        Method Summary

        Returns the buffer to the MediaCodec.
        - + void releaseOutputBuffer​(int index, long renderTimeStampNs) @@ -284,7 +291,7 @@

        Method Summary

        it on the output surface. - + void setOnFrameRenderedListener​(MediaCodecAdapter.OnFrameRenderedListener listener, Handler handler) @@ -292,27 +299,34 @@

        Method Summary

        Registers a callback to be invoked when an output frame is rendered on the output surface.
        - + void setOutputSurface​(Surface surface)
        Dynamically sets the output surface of a MediaCodec.
        - + void setParameters​(Bundle params)
        Communicate additional parameter changes to the MediaCodec instance.
        - + void setVideoScalingMode​(int scalingMode)
        Specifies the scaling mode to use, if a surface was specified when the codec was created.
        + +void +signalEndOfInputStream() + +
        Signals the encoder of end-of-stream on input.
        + + + + + + @@ -560,6 +592,25 @@

        release

      + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-summary.html index 5a9ff6898b7..47133b4ae4f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-summary.html @@ -139,36 +139,42 @@

      Package com.google.android.exoplayer2.med +DefaultMediaCodecAdapterFactory + + + + + MediaCodecAdapter.Configuration
      Configuration parameters for a MediaCodecAdapter.
      - + MediaCodecInfo
      Information about a MediaCodec for a given mime type.
      - + MediaCodecRenderer
      An abstract renderer that uses MediaCodec to decode samples for rendering.
      - + MediaCodecUtil
      A utility class for querying the available codecs.
      - + SynchronousMediaCodecAdapter
      A MediaCodecAdapter that operates the underlying MediaCodec in synchronous mode.
      - + SynchronousMediaCodecAdapter.Factory
      A factory for SynchronousMediaCodecAdapter instances.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-tree.html index bc0eb822106..a1562594ea2 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-tree.html +++ b/docs/doc/reference/com/google/android/exoplayer2/mediacodec/package-tree.html @@ -108,6 +108,7 @@

      Class Hierarchy

    • com.google.android.exoplayer2.mediacodec.MediaCodecRenderer
    +
  • com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory (implements com.google.android.exoplayer2.mediacodec.MediaCodecAdapter.Factory)
  • com.google.android.exoplayer2.mediacodec.MediaCodecAdapter.Configuration
  • com.google.android.exoplayer2.mediacodec.MediaCodecInfo
  • com.google.android.exoplayer2.mediacodec.MediaCodecUtil
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/metadata/Metadata.Entry.html b/docs/doc/reference/com/google/android/exoplayer2/metadata/Metadata.Entry.html index 1ca5ab2ed77..c4938c36c78 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/metadata/Metadata.Entry.html +++ b/docs/doc/reference/com/google/android/exoplayer2/metadata/Metadata.Entry.html @@ -126,7 +126,7 @@

    Interface Metadata.Entry

    All Known Implementing Classes:
    -
    ApicFrame, AppInfoTable, BinaryFrame, ChapterFrame, ChapterTocFrame, CommentFrame, EventMessage, GeobFrame, HlsTrackMetadataEntry, IcyHeaders, IcyInfo, Id3Frame, InternalFrame, MdtaMetadataEntry, MlltFrame, MotionPhotoMetadata, PictureFrame, PrivateCommand, PrivFrame, SlowMotionData, SmtaMetadataEntry, SpliceCommand, SpliceInsertCommand, SpliceNullCommand, SpliceScheduleCommand, TextInformationFrame, TimeSignalCommand, UrlLinkFrame, VorbisComment
    +
    ApicFrame, AppInfoTable, BinaryFrame, ChapterFrame, ChapterTocFrame, CommentFrame, EventMessage, FakeMetadataEntry, GeobFrame, HlsTrackMetadataEntry, IcyHeaders, IcyInfo, Id3Frame, InternalFrame, MdtaMetadataEntry, MlltFrame, MotionPhotoMetadata, PictureFrame, PrivateCommand, PrivFrame, SlowMotionData, SmtaMetadataEntry, SpliceCommand, SpliceInsertCommand, SpliceNullCommand, SpliceScheduleCommand, TextInformationFrame, TimeSignalCommand, UrlLinkFrame, VorbisComment
    Enclosing class:
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataInputBuffer.html b/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataInputBuffer.html index af7bb84d43b..aae1d0ef8df 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataInputBuffer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataInputBuffer.html @@ -186,7 +186,7 @@

    Field Summary

    Fields inherited from class com.google.android.exoplayer2.decoder.DecoderInputBuffer

    -BUFFER_REPLACEMENT_MODE_DIRECT, BUFFER_REPLACEMENT_MODE_DISABLED, BUFFER_REPLACEMENT_MODE_NORMAL, cryptoInfo, data, supplementalData, timeUs, waitingForKeys +BUFFER_REPLACEMENT_MODE_DIRECT, BUFFER_REPLACEMENT_MODE_DISABLED, BUFFER_REPLACEMENT_MODE_NORMAL, cryptoInfo, data, format, supplementalData, timeUs, waitingForKeys diff --git a/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataOutput.html b/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataOutput.html index 91cd1db0ad8..6e702174345 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataOutput.html +++ b/docs/doc/reference/com/google/android/exoplayer2/metadata/MetadataOutput.html @@ -120,14 +120,6 @@

    Interface MetadataOutput

    @@ -199,32 +218,15 @@

    Class Hierarchy

    Interface Hierarchy

    @@ -263,6 +255,7 @@

    Annotation Type Hierarchy

  • com.google.android.exoplayer2.C.AudioContentType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.AudioFlags (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.AudioFocusGain (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.C.AudioManagerOffloadMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.AudioUsage (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.BufferFlags (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.ColorRange (implements java.lang.annotation.Annotation)
  • @@ -270,6 +263,7 @@

    Annotation Type Hierarchy

  • com.google.android.exoplayer2.C.ColorTransfer (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.ContentType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.CryptoMode (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.C.CryptoType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.DataType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.Encoding (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.FormatSupport (implements java.lang.annotation.Annotation)
  • @@ -278,12 +272,16 @@

    Annotation Type Hierarchy

  • com.google.android.exoplayer2.C.Projection (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.RoleFlags (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.SelectionFlags (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.C.SelectionReason (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.StereoMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.StreamType (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.C.TrackType (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.C.VideoChangeFrameRateStrategy (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.VideoOutputMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.VideoScalingMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.C.WakeMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.DefaultRenderersFactory.ExtensionRendererMode (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.DeviceInfo.PlaybackType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.ExoPlaybackException.Type (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.ExoTimeoutException.TimeoutOperation (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.MediaMetadata.FolderType (implements java.lang.annotation.Annotation)
  • @@ -299,8 +297,8 @@

    Annotation Type Hierarchy

  • com.google.android.exoplayer2.Player.RepeatMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.Player.State (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.Player.TimelineChangeReason (implements java.lang.annotation.Annotation)
  • +
  • com.google.android.exoplayer2.Renderer.MessageType (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.Renderer.State (implements java.lang.annotation.Annotation)
  • -
  • com.google.android.exoplayer2.Renderer.VideoScalingMode (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.RendererCapabilities.AdaptiveSupport (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.RendererCapabilities.Capabilities (implements java.lang.annotation.Annotation)
  • com.google.android.exoplayer2.RendererCapabilities.FormatSupport (implements java.lang.annotation.Annotation)
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/robolectric/PlaybackOutput.html b/docs/doc/reference/com/google/android/exoplayer2/robolectric/PlaybackOutput.html index eddeb7b254c..9e50aee7796 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/robolectric/PlaybackOutput.html +++ b/docs/doc/reference/com/google/android/exoplayer2/robolectric/PlaybackOutput.html @@ -169,7 +169,7 @@

    Method Summary

    static PlaybackOutput -register​(SimpleExoPlayer player, +register​(ExoPlayer player, CapturingRenderersFactory capturingRenderersFactory)
    Create an instance that captures the metadata and text output from player and the audio @@ -200,13 +200,13 @@

    Methods inherited from class java.lang. +
    • register

      -
      public static PlaybackOutput register​(SimpleExoPlayer player,
      +
      public static PlaybackOutput register​(ExoPlayer player,
                                             CapturingRenderersFactory capturingRenderersFactory)
      Create an instance that captures the metadata and text output from player and the audio and video output via capturingRenderersFactory. @@ -215,7 +215,7 @@

      register

      correctly.
      Parameters:
      -
      player - The SimpleExoPlayer to capture metadata and text output from.
      +
      player - The ExoPlayer to capture metadata and text output from.
      capturingRenderersFactory - The CapturingRenderersFactory to capture audio and video output from.
      Returns:
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/robolectric/TestPlayerRunHelper.html b/docs/doc/reference/com/google/android/exoplayer2/robolectric/TestPlayerRunHelper.html index 6a48791aee8..36b4271a785 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/robolectric/TestPlayerRunHelper.html +++ b/docs/doc/reference/com/google/android/exoplayer2/robolectric/TestPlayerRunHelper.html @@ -131,8 +131,8 @@

      Class TestPlayerRunHelper
      public class TestPlayerRunHelper
       extends Object
      -
      Helper methods to block the calling thread until the provided SimpleExoPlayer instance - reaches a particular state.
      +
      Helper methods to block the calling thread until the provided ExoPlayer instance reaches + a particular state.

    @@ -156,7 +156,7 @@

    Method Summary

    static void playUntilPosition​(ExoPlayer player, - int windowIndex, + int mediaItemIndex, long positionMs)
    Calls Player.play(), runs tasks of the main Looper until the player @@ -165,11 +165,12 @@

    Method Summary

    static void -playUntilStartOfWindow​(ExoPlayer player, - int windowIndex) +playUntilStartOfMediaItem​(ExoPlayer player, + int mediaItemIndex)
    Calls Player.play(), runs tasks of the main Looper until the player - reaches the specified window or a playback error occurs, and then pauses the player.
    + reaches the specified media item or a playback error occurs, and then pauses the + player.
    @@ -189,8 +190,8 @@

    Method Summary

    static void -runUntilPlaybackState​(Player player, - int expectedState) +runUntilPlaybackState​(Player player, + @com.google.android.exoplayer2.Player.State int expectedState)
    Runs tasks of the main Looper until Player.getPlaybackState() matches the expected state or a playback error occurs.
    @@ -207,10 +208,10 @@

    Method Summary

    static void -runUntilPositionDiscontinuity​(Player player, - int expectedReason) +runUntilPositionDiscontinuity​(Player player, + @com.google.android.exoplayer2.Player.DiscontinuityReason int expectedReason) -
    Runs tasks of the main Looper until Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) is +
    Runs tasks of the main Looper until Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) is called with the specified Player.DiscontinuityReason or a playback error occurs.
    @@ -224,9 +225,9 @@

    Method Summary

    static void -runUntilRenderedFirstFrame​(SimpleExoPlayer player) +runUntilRenderedFirstFrame​(ExoPlayer player) -
    Runs tasks of the main Looper until the VideoListener.onRenderedFirstFrame() +
    Runs tasks of the main Looper until the Player.Listener.onRenderedFirstFrame() callback is called or a playback error occurs.
    @@ -279,7 +280,7 @@

    Methods inherited from class java.lang. +
      @@ -287,7 +288,7 @@

      Method Detail

      runUntilPlaybackState

      public static void runUntilPlaybackState​(Player player,
                                                @State
      -                                         int expectedState)
      +                                         @com.google.android.exoplayer2.Player.State int expectedState)
                                         throws TimeoutException
      Runs tasks of the main Looper until Player.getPlaybackState() matches the expected state or a playback error occurs. @@ -371,7 +372,7 @@

      runUntilTimelineChanged

    - + - + - + + + + +
      +
    • +

      setClippingError

      +
      public void setClippingError​(ClippingMediaSource.IllegalClippingException clippingError)
      +
      Sets a clipping error detected by the media source so that it can be thrown as a period error + at the next opportunity.
      +
      +
      Parameters:
      +
      clippingError - The clipping error.
      +
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html b/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html index 17390069d00..23d01cf2479 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html @@ -126,7 +126,7 @@


    public static interface DefaultMediaSourceFactory.AdsLoaderProvider
    -
    Provides AdsLoader instances for media items that have ad tag URIs.
    +
    Provides AdsLoader instances for media items that have ad tag URIs.
    @@ -151,7 +151,7 @@

    Method Summary

    AdsLoader getAdsLoader​(MediaItem.AdsConfiguration adsConfiguration) -
    Returns an AdsLoader for the given ads configuration, or null if no ads +
    Returns an AdsLoader for the given ads configuration, or null if no ads loader is available for the given ads configuration.
    @@ -180,11 +180,11 @@

    Method Detail

    getAdsLoader

    @Nullable
     AdsLoader getAdsLoader​(MediaItem.AdsConfiguration adsConfiguration)
    -
    Returns an AdsLoader for the given ads configuration, or null if no ads +
    Returns an AdsLoader for the given ads configuration, or null if no ads loader is available for the given ads configuration.

    This method is called each time a MediaSource is created from a MediaItem - that defines an ads configuration.

    + that defines an ads configuration.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html b/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html index c88e4910f62..cd59556427f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":42}; +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -87,7 +87,7 @@ @@ -142,25 +142,25 @@

    Class DefaultMediaSour factories:

    Ad support for media items with ad tag URIs

    -

    To support media items with ads +

    To support media items with ads configuration, setAdsLoaderProvider(com.google.android.exoplayer2.source.DefaultMediaSourceFactory.AdsLoaderProvider) and setAdViewProvider(com.google.android.exoplayer2.ui.AdViewProvider) need to be called to configure the factory with the required providers.

    @@ -187,13 +187,30 @@

    Nested Class Summary

    static interface  DefaultMediaSourceFactory.AdsLoaderProvider -
    Provides AdsLoader instances for media items that have ad tag URIs.
    +
    Provides AdsLoader instances for media items that have ad tag URIs.
    + +
    + +
    - +
      @@ -414,14 +414,14 @@

      getWindowCount

      getNextWindowIndex

      public int getNextWindowIndex​(int windowIndex,
                                     @RepeatMode
      -                              int repeatMode,
      +                              @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                     boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getNextWindowIndex in class Timeline
      +
      getNextWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      @@ -431,7 +431,7 @@

      getNextWindowIndex

    - + @@ -367,7 +366,7 @@

    MediaLoadData

    - +
      @@ -375,9 +374,10 @@

      MediaLoadData

      MediaLoadData

      public MediaLoadData​(@DataType
                            int dataType,
      -                     int trackType,
      +                     @com.google.android.exoplayer2.C.TrackType int trackType,
                            @Nullable
                            Format trackFormat,
      +                     @SelectionReason
                            int trackSelectionReason,
                            @Nullable
                            Object trackSelectionData,
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/MediaSource.html b/docs/doc/reference/com/google/android/exoplayer2/source/MediaSource.html
      index ec0395ff23e..34102fdef18 100644
      --- a/docs/doc/reference/com/google/android/exoplayer2/source/MediaSource.html
      +++ b/docs/doc/reference/com/google/android/exoplayer2/source/MediaSource.html
      @@ -126,8 +126,8 @@ 

      Interface MediaSource


      public interface MediaSource
      -
      Defines and provides media to be played by an ExoPlayer. A - MediaSource has two main responsibilities: +
      Defines and provides media to be played by an ExoPlayer. A MediaSource has two main + responsibilities:
      • To provide the player with a Timeline defining the structure of its media, and to @@ -140,8 +140,8 @@

        Interface MediaSource

        way for the player to load and read the media.
      - All methods are called on the player's internal playback thread, as described in the ExoPlayer Javadoc. They should not be called directly from - application code. Instances can be re-used, but only for one ExoPlayer instance simultaneously.
      + All methods are called on the player's internal playback thread, as described in the ExoPlayer Javadoc. They should not be called directly from application code. Instances can be + re-used, but only for one ExoPlayer instance simultaneously.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/MediaSourceEventListener.EventDispatcher.html b/docs/doc/reference/com/google/android/exoplayer2/source/MediaSourceEventListener.EventDispatcher.html index 2ea776b6882..b06cfc388aa 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/MediaSourceEventListener.EventDispatcher.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/MediaSourceEventListener.EventDispatcher.html @@ -221,7 +221,7 @@

    Method Summary

    void -downstreamFormatChanged​(int trackType, +downstreamFormatChanged​(@com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -247,9 +247,9 @@

    Method Summary

    void -loadCanceled​(LoadEventInfo loadEventInfo, +loadCanceled​(LoadEventInfo loadEventInfo, int dataType, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -277,9 +277,9 @@

    Method Summary

    void -loadCompleted​(LoadEventInfo loadEventInfo, +loadCompleted​(LoadEventInfo loadEventInfo, int dataType, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -299,9 +299,9 @@

    Method Summary

    void -loadError​(LoadEventInfo loadEventInfo, +loadError​(LoadEventInfo loadEventInfo, int dataType, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -346,9 +346,9 @@

    Method Summary

    void -loadStarted​(LoadEventInfo loadEventInfo, +loadStarted​(LoadEventInfo loadEventInfo, int dataType, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -539,7 +539,7 @@

    loadStarted

    - + - + - +
      @@ -634,9 +636,10 @@

      loadCanceled

      public void loadCanceled​(LoadEventInfo loadEventInfo,
                                @DataType
                                int dataType,
      -                         int trackType,
      +                         @com.google.android.exoplayer2.C.TrackType int trackType,
                                @Nullable
                                Format trackFormat,
      +                         @SelectionReason
                                int trackSelectionReason,
                                @Nullable
                                Object trackSelectionData,
      @@ -671,7 +674,7 @@ 

      loadError

      boolean)
      .
    - + - + @@ -327,7 +374,7 @@

    setDrmHttpDataSourceFactory

    Calls to this method are ignored if either a DrmSessionManager provider or concrete DrmSessionManager are provided.

    Parameters:
    -
    drmHttpDataSourceFactory - The HTTP data source factory, or null to use DefaultHttpDataSourceFactory.
    +
    drmHttpDataSourceFactory - The HTTP data source factory, or null to use DefaultHttpDataSource.Factory.
    Returns:
    This factory, for convenience.
    @@ -478,13 +525,13 @@

    createMediaSource

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/ProgressiveMediaSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/ProgressiveMediaSource.Factory.html index 299689a6522..3278ee9cd52 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/ProgressiveMediaSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/ProgressiveMediaSource.Factory.html @@ -87,7 +87,7 @@ @@ -147,6 +147,23 @@

    Class Progressive
    - - - - - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/TrackGroupArray.html b/docs/doc/reference/com/google/android/exoplayer2/source/TrackGroupArray.html index 18fb9da3af8..ddd782c0ff3 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/TrackGroupArray.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/TrackGroupArray.html @@ -25,7 +25,7 @@ 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}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -130,12 +130,12 @@

    Class TrackGroupArray

  • All Implemented Interfaces:
    -
    Parcelable
    +
    Bundleable

    public final class TrackGroupArray
     extends Object
    -implements Parcelable
    +implements Bundleable
    An immutable array of TrackGroups.
  • @@ -151,11 +151,11 @@

    Class TrackGroupArray

    Nested Class Summary

    @@ -175,9 +175,11 @@

    Field Summary

    Description -static Parcelable.Creator<TrackGroupArray> +static Bundleable.Creator<TrackGroupArray> CREATOR -  + +
    Object that can restores a TrackGroupArray from a Bundle.
    + static TrackGroupArray @@ -194,13 +196,6 @@

    Field Summary

    -

    @@ -219,7 +214,9 @@

    Constructor Summary

    TrackGroupArray​(TrackGroup... trackGroups) -  + +
    Construct a TrackGroupArray from an array of (possibly empty) trackGroups.
    + @@ -240,46 +237,42 @@

    Method Summary

    Description -int -describeContents() -  - - boolean equals​(Object obj)   - + TrackGroup get​(int index)
    Returns the group at a given index.
    - + int hashCode()   - + int indexOf​(TrackGroup group)
    Returns the index of a group within the array.
    - + boolean isEmpty()
    Returns whether this track group array is empty.
    - -void -writeToParcel​(Parcel dest, - int flags) -  + +Bundle +toBundle() + +
    Returns a Bundle representing the information stored in this object.
    +
      @@ -331,7 +324,8 @@

      length

      @@ -351,10 +345,7 @@

      Constructor Detail

    • TrackGroupArray

      public TrackGroupArray​(TrackGroup... trackGroups)
      -
      -
      Parameters:
      -
      trackGroups - The groups. May be empty.
      -
      +
      Construct a TrackGroupArray from an array of (possibly empty) trackGroups.
    @@ -436,30 +427,18 @@

    equals

    - - - - - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html b/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html index 69e37b98aaf..a31da04f95a 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html @@ -228,8 +228,7 @@

    Field Summary

    long timeUs -
    The time of the ad group in the Timeline.Period, in - microseconds, or C.TIME_END_OF_SOURCE to indicate a postroll ad.
    +
    The time of the ad group in the Timeline.Period, in microseconds, or C.TIME_END_OF_SOURCE to indicate a postroll ad.
    @@ -417,8 +416,7 @@

    Field Detail

  • timeUs

    public final long timeUs
    -
    The time of the ad group in the Timeline.Period, in - microseconds, or C.TIME_END_OF_SOURCE to indicate a postroll ad.
    +
    The time of the ad group in the Timeline.Period, in microseconds, or C.TIME_END_OF_SOURCE to indicate a postroll ad.
  • @@ -513,7 +511,8 @@

    AdGroup

    Creates a new ad group with an unspecified number of ads.
    Parameters:
    -
    timeUs - The time of the ad group in the Timeline.Period, in microseconds, or C.TIME_END_OF_SOURCE to indicate a postroll ad.
    +
    timeUs - The time of the ad group in the Timeline.Period, in microseconds, or + C.TIME_END_OF_SOURCE to indicate a postroll ad.
    @@ -544,9 +543,11 @@

    getFirstAdIndexToPlay

    • getNextAdIndexToPlay

      -
      public int getNextAdIndexToPlay​(int lastPlayedAdIndex)
      +
      public int getNextAdIndexToPlay​(@IntRange(from=-1L)
      +                                int lastPlayedAdIndex)
      Returns the index of the next ad in the ad group that should be played after playing - lastPlayedAdIndex, or count if no later ads should be played.
      + lastPlayedAdIndex
      , or count if no later ads should be played. If no ads have been + played, pass -1 to get the index of the first ad to play.
    @@ -626,6 +627,7 @@

    withAdCount

    withAdUri

    @CheckResult
     public AdPlaybackState.AdGroup withAdUri​(Uri uri,
    +                                         @IntRange(from=0L)
                                              int index)
    Returns a new instance with the specified uri set for the specified ad, and the ad marked as AdPlaybackState.AD_STATE_AVAILABLE.
    @@ -640,6 +642,7 @@

    withAdState

    @CheckResult
     public AdPlaybackState.AdGroup withAdState​(@AdState
                                                int state,
    +                                           @IntRange(from=0L)
                                                int index)
    Returns a new instance with the specified ad set to the specified state. The ad specified must currently either be in AdPlaybackState.AD_STATE_UNAVAILABLE or AdPlaybackState.AD_STATE_AVAILABLE. diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.html b/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.html index 56acc34b48a..51526fcf7d2 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/ads/AdPlaybackState.html @@ -693,8 +693,7 @@

    AdPlaybackState

    Parameters:
    adsId - The opaque identifier for ads with which this instance is associated.
    adGroupTimesUs - The times of ad groups in microseconds, relative to the start of the - Timeline.Period they belong to. A final element with - the value C.TIME_END_OF_SOURCE indicates that there is a postroll ad.
    + Timeline.Period they belong to. A final element with the value C.TIME_END_OF_SOURCE indicates that there is a postroll ad. @@ -714,7 +713,8 @@

    Method Detail

    @@ -769,7 +769,9 @@

    getAdGroupIndexAfterPositionUs

    • isAdInErrorState

      -
      public boolean isAdInErrorState​(int adGroupIndex,
      +
      public boolean isAdInErrorState​(@IntRange(from=0L)
      +                                int adGroupIndex,
      +                                @IntRange(from=0L)
                                       int adIndexInAdGroup)
      Returns whether the specified ad has been marked as in AD_STATE_ERROR.
    • @@ -781,7 +783,8 @@

      isAdInErrorState

    • withAdGroupTimeUs

      @CheckResult
      -public AdPlaybackState withAdGroupTimeUs​(int adGroupIndex,
      +public AdPlaybackState withAdGroupTimeUs​(@IntRange(from=0L)
      +                                         int adGroupIndex,
                                                long adGroupTimeUs)
      Returns an instance with the specified ad group time.
      @@ -801,7 +804,8 @@

      withAdGroupTimeUs

    • withNewAdGroup

      @CheckResult
      -public AdPlaybackState withNewAdGroup​(int adGroupIndex,
      +public AdPlaybackState withNewAdGroup​(@IntRange(from=0L)
      +                                      int adGroupIndex,
                                             long adGroupTimeUs)
      Returns an instance with a new ad group.
      @@ -821,7 +825,9 @@

      withNewAdGroup

    • withAdCount

      @CheckResult
      -public AdPlaybackState withAdCount​(int adGroupIndex,
      +public AdPlaybackState withAdCount​(@IntRange(from=0L)
      +                                   int adGroupIndex,
      +                                   @IntRange(from=1L)
                                          int adCount)
      Returns an instance with the number of ads in adGroupIndex resolved to adCount. The ad count must be greater than zero.
      @@ -834,7 +840,9 @@

      withAdCount

    • withAdUri

      @CheckResult
      -public AdPlaybackState withAdUri​(int adGroupIndex,
      +public AdPlaybackState withAdUri​(@IntRange(from=0L)
      +                                 int adGroupIndex,
      +                                 @IntRange(from=0L)
                                        int adIndexInAdGroup,
                                        Uri uri)
      Returns an instance with the specified ad URI.
      @@ -847,7 +855,9 @@

      withAdUri

    • withPlayedAd

      @CheckResult
      -public AdPlaybackState withPlayedAd​(int adGroupIndex,
      +public AdPlaybackState withPlayedAd​(@IntRange(from=0L)
      +                                    int adGroupIndex,
      +                                    @IntRange(from=0L)
                                           int adIndexInAdGroup)
      Returns an instance with the specified ad marked as played.
    • @@ -859,7 +869,9 @@

      withPlayedAd

    • withSkippedAd

      @CheckResult
      -public AdPlaybackState withSkippedAd​(int adGroupIndex,
      +public AdPlaybackState withSkippedAd​(@IntRange(from=0L)
      +                                     int adGroupIndex,
      +                                     @IntRange(from=0L)
                                            int adIndexInAdGroup)
      Returns an instance with the specified ad marked as skipped.
    • @@ -871,7 +883,9 @@

      withSkippedAd

    • withAdLoadError

      @CheckResult
      -public AdPlaybackState withAdLoadError​(int adGroupIndex,
      +public AdPlaybackState withAdLoadError​(@IntRange(from=0L)
      +                                       int adGroupIndex,
      +                                       @IntRange(from=0L)
                                              int adIndexInAdGroup)
      Returns an instance with the specified ad marked as having a load error.
    • @@ -883,7 +897,8 @@

      withAdLoadError

    • withSkippedAdGroup

      @CheckResult
      -public AdPlaybackState withSkippedAdGroup​(int adGroupIndex)
      +public AdPlaybackState withSkippedAdGroup​(@IntRange(from=0L) + int adGroupIndex)
      Returns an instance with all ads in the specified ad group skipped (except for those already marked as played or in the error state).
    • @@ -908,7 +923,8 @@

      withAdDurationsUs

    • withAdDurationsUs

      @CheckResult
      -public AdPlaybackState withAdDurationsUs​(int adGroupIndex,
      +public AdPlaybackState withAdDurationsUs​(@IntRange(from=0L)
      +                                         int adGroupIndex,
                                                long... adDurationsUs)
      Returns an instance with the specified ad durations, in microseconds, in the specified ad group.
      @@ -944,7 +960,8 @@

      withContentDurationUs

    • withRemovedAdGroupCount

      @CheckResult
      -public AdPlaybackState withRemovedAdGroupCount​(int removedAdGroupCount)
      +public AdPlaybackState withRemovedAdGroupCount​(@IntRange(from=0L) + int removedAdGroupCount)
      Returns an instance with the specified number of removed ad groups. @@ -959,7 +976,8 @@

      withRemovedAdGroupCount

    • withContentResumeOffsetUs

      @CheckResult
      -public AdPlaybackState withContentResumeOffsetUs​(int adGroupIndex,
      +public AdPlaybackState withContentResumeOffsetUs​(@IntRange(from=0L)
      +                                                 int adGroupIndex,
                                                        long contentResumeOffsetUs)
      Returns an instance with the specified AdPlaybackState.AdGroup.contentResumeOffsetUs, in microseconds, for the specified ad group.
      @@ -972,7 +990,8 @@

      withContentResumeOffsetUs

    • withIsServerSideInserted

      @CheckResult
      -public AdPlaybackState withIsServerSideInserted​(int adGroupIndex,
      +public AdPlaybackState withIsServerSideInserted​(@IntRange(from=0L)
      +                                                int adGroupIndex,
                                                       boolean isServerSideInserted)
      Returns an instance with the specified value for AdPlaybackState.AdGroup.isServerSideInserted in the specified ad group.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html b/docs/doc/reference/com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html index 7bc877dc8cd..4a644c4bd81 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html @@ -253,14 +253,14 @@

      Method Summary

      Methods inherited from class com.google.android.exoplayer2.source.ForwardingTimeline

      -getFirstWindowIndex, getIndexOfPeriod, getLastWindowIndex, getNextWindowIndex, getPeriodCount, getPreviousWindowIndex, getUidOfPeriod, getWindow, getWindowCount
    • +getFirstWindowIndex, getIndexOfPeriod, getLastWindowIndex, getNextWindowIndex, getPeriodCount, getPreviousWindowIndex, getUidOfPeriod, getWindow, getWindowCount
    @@ -336,20 +336,20 @@

    FACTORY

    Constructor Detail

    - +
    • BundledChunkExtractor

      public BundledChunkExtractor​(Extractor extractor,
      -                             int primaryTrackType,
      +                             @com.google.android.exoplayer2.C.TrackType int primaryTrackType,
                                    Format primaryTrackManifestFormat)
      Creates an instance.
      Parameters:
      extractor - The extractor to wrap.
      -
      primaryTrackType - The type of the primary track. Typically one of the C TRACK_TYPE_* constants.
      +
      primaryTrackType - The type of the primary track.
      primaryTrackManifestFormat - A manifest defined Format whose data should be merged into any sample Format output from the Extractor for the primary track.
      @@ -468,18 +468,17 @@

      read

      track

      public TrackOutput track​(int id,
                                int type)
      -
      Description copied from interface: ExtractorOutput
      +
      Description copied from interface: ExtractorOutput
      Called by the Extractor to get the TrackOutput for a specific track.

      The same TrackOutput is returned if multiple calls are made with the same id.

      Specified by:
      -
      track in interface ExtractorOutput
      +
      track in interface ExtractorOutput
      Parameters:
      id - A track identifier.
      -
      type - The type of the track. Typically one of the C - TRACK_TYPE_* constants.
      +
      type - The track type.
      Returns:
      The TrackOutput for the given track identifier.
      @@ -494,7 +493,7 @@

      endTracks

      public void endTracks()
      Description copied from interface: ExtractorOutput
      Called when all tracks have been identified, meaning no new trackId values will be - passed to ExtractorOutput.track(int, int).
      + passed to ExtractorOutput.track(int, int).
      Specified by:
      endTracks in interface ExtractorOutput
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/Chunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/Chunk.html index be9b9b96375..c03339a84df 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/Chunk.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/Chunk.html @@ -215,7 +215,7 @@

      Field Summary

      int trackSelectionReason -
      One of the C SELECTION_REASON_* constants if the chunk belongs to a track.
      +
      One of the selection reasons if the chunk belongs to a track.
      @@ -377,10 +377,10 @@

      trackFormat

      • trackSelectionReason

        -
        public final int trackSelectionReason
        -
        One of the C SELECTION_REASON_* constants if the chunk belongs to a track. - C.SELECTION_REASON_UNKNOWN if the chunk does not belong to a track, or if the selection - reason is unknown.
        +
        @SelectionReason
        +public final int trackSelectionReason
        +
        One of the selection reasons if the chunk belongs to a track. C.SELECTION_REASON_UNKNOWN if the chunk does not belong to a track, or if the selection reason + is unknown.
      @@ -447,6 +447,7 @@

      Chunk

      @DataType int type, Format trackFormat, + @SelectionReason int trackSelectionReason, @Nullable Object trackSelectionData, diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.Factory.html index 659df88c70d..276103876cf 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.Factory.html @@ -149,7 +149,7 @@

      Method Summary

      ChunkExtractor -createProgressiveMediaExtractor​(int primaryTrackType, +createProgressiveMediaExtractor​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType, Format representationFormat, boolean enableEventMessageTrack, List<Format> closedCaptionFormats, @@ -175,14 +175,14 @@

      Method Summary

      Method Detail

      - +
      • createProgressiveMediaExtractor

        @Nullable
        -ChunkExtractor createProgressiveMediaExtractor​(int primaryTrackType,
        +ChunkExtractor createProgressiveMediaExtractor​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType,
                                                        Format representationFormat,
                                                        boolean enableEventMessageTrack,
                                                        List<Format> closedCaptionFormats,
        @@ -191,7 +191,7 @@ 

        createProgressiveMediaExtractor

        Returns a new ChunkExtractor instance.
        Parameters:
        -
        primaryTrackType - The type of the primary track. One of C.TRACK_TYPE_*.
        +
        primaryTrackType - The type of the primary track.
        representationFormat - The format of the representation to extract from.
        enableEventMessageTrack - Whether to enable the event message track.
        closedCaptionFormats - The Formats of the Closed-Caption tracks.
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html index ba08fc5c527..ca99f386b02 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html @@ -153,8 +153,8 @@

        Method Summary

        TrackOutput -track​(int id, - int type) +track​(int id, + @com.google.android.exoplayer2.C.TrackType int type)
        Called to get the TrackOutput for a specific track.
        @@ -176,14 +176,14 @@

        Method Summary

        Method Detail

        - +
        • track

          TrackOutput track​(int id,
          -                  int type)
          + @com.google.android.exoplayer2.C.TrackType int type)
        Called to get the TrackOutput for a specific track.

        The same TrackOutput is returned if multiple calls are made with the same @@ -191,8 +191,7 @@

        track

        Parameters:
        id - A track identifier.
        -
        type - The type of the track. Typically one of the C TRACK_TYPE_* - constants.
        +
        type - The type of the track.
        Returns:
        The TrackOutput for the given track identifier.
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html index 70678ae3e48..0128a190f85 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html @@ -205,7 +205,7 @@

        Field Summary

        Description -int +@com.google.android.exoplayer2.C.TrackType int primaryTrackType   @@ -234,7 +234,7 @@

        Constructor Summary

        Description -ChunkSampleStream​(int primaryTrackType, +ChunkSampleStream​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType, int[] embeddedTrackTypes, Format[] embeddedTrackFormats, T chunkSource, @@ -453,7 +453,7 @@

        Field Detail

        • primaryTrackType

          -
          public final int primaryTrackType
          +
          public final @com.google.android.exoplayer2.C.TrackType int primaryTrackType
      • @@ -466,15 +466,15 @@

        primaryTrackType

        Constructor Detail

        - + - +
        • ChunkSampleStream

          -
          public ChunkSampleStream​(int primaryTrackType,
          +
          public ChunkSampleStream​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType,
                                    @Nullable
                                    int[] embeddedTrackTypes,
                                    @Nullable
          @@ -490,8 +490,7 @@ 

          ChunkSampleStream

          Constructs an instance.
          Parameters:
          -
          primaryTrackType - The type of the primary track. One of the C - TRACK_TYPE_* constants.
          +
          primaryTrackType - The type of the primary track.
          embeddedTrackTypes - The types of any embedded tracks, or null.
          embeddedTrackFormats - The formats of the embedded tracks, or null.
          chunkSource - A ChunkSource from which chunks to load are obtained.
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.html index b875d2f7d97..95ca36b4fc7 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.html @@ -317,6 +317,7 @@

          ContainerMediaChunk

          public ContainerMediaChunk​(DataSource dataSource,
                                      DataSpec dataSpec,
                                      Format trackFormat,
          +                           @SelectionReason
                                      int trackSelectionReason,
                                      @Nullable
                                      Object trackSelectionData,
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/DataChunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/DataChunk.html
          index 38aacb6ca6c..f118ee4cc1b 100644
          --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/DataChunk.html
          +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/DataChunk.html
          @@ -277,6 +277,7 @@ 

          DataChunk

          @DataType int type, Format trackFormat, + @SelectionReason int trackSelectionReason, @Nullable Object trackSelectionData, diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/InitializationChunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/InitializationChunk.html index c65a3e6025b..1bec6911713 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/InitializationChunk.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/InitializationChunk.html @@ -266,6 +266,7 @@

          InitializationChunk

          public InitializationChunk​(DataSource dataSource,
                                      DataSpec dataSpec,
                                      Format trackFormat,
          +                           @SelectionReason
                                      int trackSelectionReason,
                                      @Nullable
                                      Object trackSelectionData,
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaChunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaChunk.html
          index 39362613fae..da46a0fc789 100644
          --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaChunk.html
          +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaChunk.html
          @@ -306,6 +306,7 @@ 

          MediaChunk

          public MediaChunk​(DataSource dataSource,
                             DataSpec dataSpec,
                             Format trackFormat,
          +                  @SelectionReason
                             int trackSelectionReason,
                             @Nullable
                             Object trackSelectionData,
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html
          index f16a7565908..7312e4fa3d9 100644
          --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html
          +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html
          @@ -198,7 +198,7 @@ 

          Constructor Summary

          Description -MediaParserChunkExtractor​(int primaryTrackType, +MediaParserChunkExtractor​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType, Format manifestFormat, List<Format> closedCaptionFormats) @@ -304,20 +304,19 @@

          FACTORY

          Constructor Detail

          - +
          • MediaParserChunkExtractor

            -
            public MediaParserChunkExtractor​(int primaryTrackType,
            +
            public MediaParserChunkExtractor​(@com.google.android.exoplayer2.C.TrackType int primaryTrackType,
                                              Format manifestFormat,
                                              List<Format> closedCaptionFormats)
            Creates a new instance.
            Parameters:
            -
            primaryTrackType - The type of the primary track, or C.TRACK_TYPE_NONE if there is - no primary track. Must be one of the C.TRACK_TYPE_* constants.
            +
            primaryTrackType - The type of the primary track. C.TRACK_TYPE_NONE if there is no primary track.
            manifestFormat - The chunks Format as obtained from the manifest.
            closedCaptionFormats - A list containing the Formats of the closed-caption tracks in the chunks.
            diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html index 7249fd35c03..806a2410738 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html @@ -202,7 +202,7 @@

            Constructor Summary

            Description -SingleSampleMediaChunk​(DataSource dataSource, +SingleSampleMediaChunk​(DataSource dataSource, DataSpec dataSpec, Format trackFormat, int trackSelectionReason, @@ -210,7 +210,7 @@

            Constructor Summary

            long startTimeUs, long endTimeUs, long chunkIndex, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format sampleFormat)
              @@ -298,7 +298,7 @@

            Methods inherited from class java.lang. +
              @@ -307,13 +307,14 @@

              SingleSampleMediaChunk

              public SingleSampleMediaChunk​(DataSource dataSource,
                                             DataSpec dataSpec,
                                             Format trackFormat,
              +                              @SelectionReason
                                             int trackSelectionReason,
                                             @Nullable
                                             Object trackSelectionData,
                                             long startTimeUs,
                                             long endTimeUs,
                                             long chunkIndex,
              -                              int trackType,
              +                              @com.google.android.exoplayer2.C.TrackType int trackType,
                                             Format sampleFormat)
              Parameters:
              @@ -325,8 +326,7 @@

              SingleSampleMediaChunk

              startTimeUs - The start time of the media contained by the chunk, in microseconds.
              endTimeUs - The end time of the media contained by the chunk, in microseconds.
              chunkIndex - The index of the chunk, or C.INDEX_UNSET if it is not known.
              -
              trackType - The type of the chunk. Typically one of the C TRACK_TYPE_* - constants.
              +
              trackType - The track type of the chunk.
              sampleFormat - The Format of the sample in the chunk.
              diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashChunkSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashChunkSource.Factory.html index 4fb04686e44..715a9269839 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashChunkSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashChunkSource.Factory.html @@ -153,13 +153,13 @@

              Method Summary

              DashChunkSource -createDashChunkSource​(LoaderErrorThrower manifestLoaderErrorThrower, +createDashChunkSource​(LoaderErrorThrower manifestLoaderErrorThrower, DashManifest manifest, BaseUrlExclusionList baseUrlExclusionList, int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int type, + @com.google.android.exoplayer2.C.TrackType int trackType, long elapsedRealtimeOffsetMs, boolean enableEventMessageTrack, List<Format> closedCaptionFormats, @@ -184,7 +184,7 @@

              Method Summary

              Method Detail

              - +
                @@ -196,7 +196,7 @@

                createDashChunkSource

                int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int type, + @com.google.android.exoplayer2.C.TrackType int trackType, long elapsedRealtimeOffsetMs, boolean enableEventMessageTrack, List<Format> closedCaptionFormats, @@ -212,9 +212,11 @@

                createDashChunkSource

                periodIndex - The index of the corresponding period in the manifest.
                adaptationSetIndices - The indices of the corresponding adaptation sets in the period.
                trackSelection - The track selection.
                +
                trackType - The track type.
                elapsedRealtimeOffsetMs - If known, an estimate of the instantaneous difference between server-side unix time and SystemClock.elapsedRealtime() in milliseconds, - specified as the server's unix time minus the local elapsed time. Or C.TIME_UNSET if unknown.
                + specified as the server's unix time minus the local elapsed time. Or C.TIME_UNSET + if unknown.
                enableEventMessageTrack - Whether to output an event message track.
                closedCaptionFormats - The Formats of closed caption tracks to be output.
                transferListener - The transfer listener which should be informed of any data transfers. diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashMediaSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashMediaSource.Factory.html index 07374b8fc0d..15130b4b64b 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashMediaSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashMediaSource.Factory.html @@ -87,7 +87,7 @@ @@ -147,6 +147,23 @@

                Class DashMediaSource.Fa

            @@ -553,7 +571,8 @@

            setLivePresentationDelayMs

            public DashMediaSource.Factory setLivePresentationDelayMs​(long livePresentationDelayMs, boolean overridesManifest)
          • @@ -686,7 +705,7 @@

            createMediaSource

            Returns:
            The new DashMediaSource.
            Throws:
            -
            NullPointerException - if MediaItem.playbackProperties is null.
            +
            NullPointerException - if MediaItem.localConfiguration is null.
        @@ -758,7 +777,7 @@

        getSupportedTypes

        diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashUtil.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashUtil.html index 66e631b4565..0426145cf0c 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashUtil.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DashUtil.html @@ -371,7 +371,7 @@

        loadSampleFormat

        Parameters:
        dataSource - The source from which the data should be loaded.
        -
        trackType - The type of the representation. Typically one of the C TRACK_TYPE_* constants.
        +
        trackType - The type of the representation. Typically one of the com.google.android.exoplayer2.C TRACK_TYPE_* constants.
        representation - The representation which initialization chunk belongs to.
        baseUrlIndex - The index of the base URL to be picked from the list of base URLs.
        Returns:
        @@ -398,7 +398,7 @@

        loadSampleFormat

        Parameters:
        dataSource - The source from which the data should be loaded.
        -
        trackType - The type of the representation. Typically one of the C TRACK_TYPE_* constants.
        +
        trackType - The type of the representation. Typically one of the com.google.android.exoplayer2.C TRACK_TYPE_* constants.
        representation - The representation which initialization chunk belongs to.
        Returns:
        the sample Format of the given representation.
        @@ -423,7 +423,7 @@

        loadChunkIndex

        Parameters:
        dataSource - The source from which the data should be loaded.
        -
        trackType - The type of the representation. Typically one of the C TRACK_TYPE_* constants.
        +
        trackType - The type of the representation. Typically one of the com.google.android.exoplayer2.C TRACK_TYPE_* constants.
        representation - The representation which initialization chunk belongs to.
        baseUrlIndex - The index of the base URL with which to resolve the request URI.
        Returns:
        @@ -451,7 +451,7 @@

        loadChunkIndex

        Parameters:
        dataSource - The source from which the data should be loaded.
        -
        trackType - The type of the representation. Typically one of the C TRACK_TYPE_* constants.
        +
        trackType - The type of the representation. Typically one of the com.google.android.exoplayer2.C TRACK_TYPE_* constants.
        representation - The representation which initialization chunk belongs to.
        Returns:
        The ChunkIndex of the given representation, or null if no initialization or diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.Factory.html index 8cfbd412b4f..5e3826aff3f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.Factory.html @@ -202,13 +202,13 @@

        Method Summary

        DashChunkSource -createDashChunkSource​(LoaderErrorThrower manifestLoaderErrorThrower, +createDashChunkSource​(LoaderErrorThrower manifestLoaderErrorThrower, DashManifest manifest, BaseUrlExclusionList baseUrlExclusionList, int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, long elapsedRealtimeOffsetMs, boolean enableEventMessageTrack, List<Format> closedCaptionFormats, @@ -278,7 +278,7 @@

        Factory

        chunkExtractorFactory - Creates ChunkExtractor instances to use for extracting chunks.
        dataSourceFactory - Creates the DataSource to use for downloading chunks.
        -
        maxSegmentsPerLoad - See DefaultDashChunkSource(com.google.android.exoplayer2.source.chunk.ChunkExtractor.Factory, com.google.android.exoplayer2.upstream.LoaderErrorThrower, com.google.android.exoplayer2.source.dash.manifest.DashManifest, com.google.android.exoplayer2.source.dash.BaseUrlExclusionList, int, int[], com.google.android.exoplayer2.trackselection.ExoTrackSelection, int, com.google.android.exoplayer2.upstream.DataSource, long, int, boolean, java.util.List<com.google.android.exoplayer2.Format>, com.google.android.exoplayer2.source.dash.PlayerEmsgHandler.PlayerTrackEmsgHandler).
        +
        maxSegmentsPerLoad - See DefaultDashChunkSource(com.google.android.exoplayer2.source.chunk.ChunkExtractor.Factory, com.google.android.exoplayer2.upstream.LoaderErrorThrower, com.google.android.exoplayer2.source.dash.manifest.DashManifest, com.google.android.exoplayer2.source.dash.BaseUrlExclusionList, int, int[], com.google.android.exoplayer2.trackselection.ExoTrackSelection, @com.google.android.exoplayer2.C.TrackType int, com.google.android.exoplayer2.upstream.DataSource, long, int, boolean, java.util.List<com.google.android.exoplayer2.Format>, com.google.android.exoplayer2.source.dash.PlayerEmsgHandler.PlayerTrackEmsgHandler).
      @@ -292,7 +292,7 @@

      Factory

      Method Detail

      - +
        @@ -304,7 +304,7 @@

        createDashChunkSource

        int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, long elapsedRealtimeOffsetMs, boolean enableEventMessageTrack, List<Format> closedCaptionFormats, @@ -314,7 +314,7 @@

        createDashChunkSource

        TransferListener transferListener)
        Specified by:
        -
        createDashChunkSource in interface DashChunkSource.Factory
        +
        createDashChunkSource in interface DashChunkSource.Factory
        Parameters:
        manifestLoaderErrorThrower - Throws errors affecting loading of manifests.
        manifest - The initial manifest.
        @@ -322,9 +322,11 @@

        createDashChunkSource

        periodIndex - The index of the corresponding period in the manifest.
        adaptationSetIndices - The indices of the corresponding adaptation sets in the period.
        trackSelection - The track selection.
        +
        trackType - The track type.
        elapsedRealtimeOffsetMs - If known, an estimate of the instantaneous difference between server-side unix time and SystemClock.elapsedRealtime() in milliseconds, - specified as the server's unix time minus the local elapsed time. Or C.TIME_UNSET if unknown.
        + specified as the server's unix time minus the local elapsed time. Or C.TIME_UNSET + if unknown.
        enableEventMessageTrack - Whether to output an event message track.
        closedCaptionFormats - The Formats of closed caption tracks to be output.
        transferListener - The transfer listener which should be informed of any data transfers. diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.html index f7da8c2ac8e..71bca722d8b 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.html @@ -217,14 +217,14 @@

        Constructor Summary

        Description -DefaultDashChunkSource​(ChunkExtractor.Factory chunkExtractorFactory, +DefaultDashChunkSource​(ChunkExtractor.Factory chunkExtractorFactory, LoaderErrorThrower manifestLoaderErrorThrower, DashManifest manifest, BaseUrlExclusionList baseUrlExclusionList, int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, DataSource dataSource, long elapsedRealtimeOffsetMs, int maxSegmentsPerLoad, @@ -298,9 +298,9 @@

        Method Summary

        protected Chunk -newMediaChunk​(DefaultDashChunkSource.RepresentationHolder representationHolder, +newMediaChunk​(DefaultDashChunkSource.RepresentationHolder representationHolder, DataSource dataSource, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, @@ -403,7 +403,7 @@

        representationHolders

        Constructor Detail

        - +
          @@ -416,7 +416,7 @@

          DefaultDashChunkSource

          int periodIndex, int[] adaptationSetIndices, ExoTrackSelection trackSelection, - int trackType, + @com.google.android.exoplayer2.C.TrackType int trackType, DataSource dataSource, long elapsedRealtimeOffsetMs, int maxSegmentsPerLoad, @@ -434,7 +434,7 @@

          DefaultDashChunkSource

          periodIndex - The index of the period in the manifest.
          adaptationSetIndices - The indices of the adaptation sets in the period.
          trackSelection - The track selection.
          -
          trackType - The type of the tracks in the selection.
          +
          trackType - The type of the tracks in the selection.
          dataSource - A DataSource suitable for loading the media data.
          elapsedRealtimeOffsetMs - If known, an estimate of the instantaneous difference between server-side unix time and SystemClock.elapsedRealtime() in milliseconds, specified @@ -688,7 +688,9 @@

          newInitializationChunk

          protected Chunk newInitializationChunk​(DefaultDashChunkSource.RepresentationHolder representationHolder,
                                                  DataSource dataSource,
                                                  Format trackFormat,
          +                                       @SelectionReason
                                                  int trackSelectionReason,
          +                                       @Nullable
                                                  Object trackSelectionData,
                                                  @Nullable
                                                  RangedUri initializationUri,
          @@ -696,7 +698,7 @@ 

          newInitializationChunk

          RangedUri indexUri)
        - +
          @@ -704,8 +706,9 @@

          newInitializationChunk

          newMediaChunk

          protected Chunk newMediaChunk​(DefaultDashChunkSource.RepresentationHolder representationHolder,
                                         DataSource dataSource,
          -                              int trackType,
          +                              @com.google.android.exoplayer2.C.TrackType int trackType,
                                         Format trackFormat,
          +                              @SelectionReason
                                         int trackSelectionReason,
                                         Object trackSelectionData,
                                         long firstSegmentNum,
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/AdaptationSet.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/AdaptationSet.html
          index 45d6f90fde1..0d7566e9ebc 100644
          --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/AdaptationSet.html
          +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/AdaptationSet.html
          @@ -190,10 +190,10 @@ 

          Field Summary

          -int +@com.google.android.exoplayer2.C.TrackType int type -
          The type of the adaptation set.
          +
          The track type of the adaptation set.
          @@ -214,8 +214,8 @@

          Constructor Summary

          Description -AdaptationSet​(int id, - int type, +AdaptationSet​(int id, + @com.google.android.exoplayer2.C.TrackType int type, List<Representation> representations, List<Descriptor> accessibilityDescriptors, List<Descriptor> essentialProperties, @@ -287,9 +287,8 @@

          id

          • type

            -
            public final int type
            -
            The type of the adaptation set. One of the C - TRACK_TYPE_* constants.
            +
            public final @com.google.android.exoplayer2.C.TrackType int type
            +
            The track type of the adaptation set.
          @@ -342,14 +341,14 @@

          supplementalProperties

          Constructor Detail

          - +
          • AdaptationSet

            public AdaptationSet​(int id,
            -                     int type,
            +                     @com.google.android.exoplayer2.C.TrackType int type,
                                  List<Representation> representations,
                                  List<Descriptor> accessibilityDescriptors,
                                  List<Descriptor> essentialProperties,
            @@ -358,8 +357,7 @@ 

            AdaptationSet

            Parameters:
            id - A non-negative identifier for the adaptation set that's unique in the scope of its containing period, or ID_UNSET if not specified.
            -
            type - The type of the adaptation set. One of the C - TRACK_TYPE_* constants.
            +
            type - The track type of the adaptation set.
            representations - Representations in the adaptation set.
            accessibilityDescriptors - Accessibility descriptors in the adaptation set.
            essentialProperties - Essential properties in the adaptation set.
            diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.html index a54b166f84d..7f55a3baa67 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.html @@ -210,8 +210,8 @@

            Method Summary

            protected AdaptationSet -buildAdaptationSet​(int id, - int contentType, +buildAdaptationSet​(int id, + @com.google.android.exoplayer2.C.TrackType int contentType, List<Representation> representations, List<Descriptor> accessibilityDescriptors, List<Descriptor> essentialProperties, @@ -422,7 +422,7 @@

            Method Summary

            -protected int +protected @com.google.android.exoplayer2.C.TrackType int parseContentType​(XmlPullParser xpp)   @@ -594,22 +594,22 @@

            Method Summary

              -protected int +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromAccessibilityDescriptors​(List<Descriptor> accessibilityDescriptors)   -protected int +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromDashRoleScheme​(String value)   -protected int +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromProperties​(List<Descriptor> accessibilityDescriptors)   -protected int +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromRoleDescriptors​(List<Descriptor> roleDescriptors)   @@ -655,12 +655,12 @@

            Method Summary

              -protected int +protected @com.google.android.exoplayer2.C.SelectionFlags int parseSelectionFlagsFromDashRoleScheme​(String value)   -protected int +protected @com.google.android.exoplayer2.C.SelectionFlags int parseSelectionFlagsFromRoleDescriptors​(List<Descriptor> roleDescriptors)   @@ -683,7 +683,7 @@

            Method Summary

              -protected int +protected @com.google.android.exoplayer2.C.RoleFlags int parseTvaAudioPurposeCsValue​(String value)   @@ -911,14 +911,14 @@

            parseAdaptationSet

      - + @@ -1470,8 +1470,8 @@

      parseSelectionFlagsFromRoleDescriptors

    • parseSelectionFlagsFromDashRoleScheme

      @SelectionFlags
      -protected int parseSelectionFlagsFromDashRoleScheme​(@Nullable
      -                                                    String value)
      +protected @com.google.android.exoplayer2.C.SelectionFlags int parseSelectionFlagsFromDashRoleScheme​(@Nullable + String value)
    @@ -1481,7 +1481,7 @@

    parseSelectionFlagsFromDashRoleScheme

  • parseRoleFlagsFromRoleDescriptors

    @RoleFlags
    -protected int parseRoleFlagsFromRoleDescriptors​(List<Descriptor> roleDescriptors)
    +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromRoleDescriptors​(List<Descriptor> roleDescriptors)
  • @@ -1491,7 +1491,7 @@

    parseRoleFlagsFromRoleDescriptors

  • parseRoleFlagsFromAccessibilityDescriptors

    @RoleFlags
    -protected int parseRoleFlagsFromAccessibilityDescriptors​(List<Descriptor> accessibilityDescriptors)
    +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromAccessibilityDescriptors​(List<Descriptor> accessibilityDescriptors)
  • @@ -1501,7 +1501,7 @@

    parseRoleFlagsFromAccessibilityDescriptors

  • parseRoleFlagsFromProperties

    @RoleFlags
    -protected int parseRoleFlagsFromProperties​(List<Descriptor> accessibilityDescriptors)
    +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromProperties​(List<Descriptor> accessibilityDescriptors)
  • @@ -1511,8 +1511,8 @@

    parseRoleFlagsFromProperties

  • parseRoleFlagsFromDashRoleScheme

    @RoleFlags
    -protected int parseRoleFlagsFromDashRoleScheme​(@Nullable
    -                                               String value)
    +protected @com.google.android.exoplayer2.C.RoleFlags int parseRoleFlagsFromDashRoleScheme​(@Nullable + String value)
  • @@ -1522,8 +1522,8 @@

    parseRoleFlagsFromDashRoleScheme

  • parseTvaAudioPurposeCsValue

    @RoleFlags
    -protected int parseTvaAudioPurposeCsValue​(@Nullable
    -                                          String value)
    +protected @com.google.android.exoplayer2.C.RoleFlags int parseTvaAudioPurposeCsValue​(@Nullable + String value)
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/dash/offline/DashDownloader.html b/docs/doc/reference/com/google/android/exoplayer2/source/dash/offline/DashDownloader.html index 38834cc6179..da11d4a0cf0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/dash/offline/DashDownloader.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/dash/offline/DashDownloader.html @@ -149,7 +149,7 @@

    Class DashDownloader

    CacheDataSource.Factory cacheDataSourceFactory = new CacheDataSource.Factory() .setCache(cache) - .setUpstreamDataSourceFactory(new DefaultHttpDataSourceFactory(userAgent)); + .setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()); // Create a downloader for the first representation of the first adaptation set of the first // period. DashDownloader dashDownloader = diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html index 4bdb02e8614..1b494d4ad26 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html @@ -174,7 +174,7 @@

    Constructor Summary

    Description -
    HlsMediaPeriod​(HlsExtractorFactory extractorFactory, +HlsMediaPeriod​(HlsExtractorFactory extractorFactory, HlsPlaylistTracker playlistTracker, HlsDataSourceFactory dataSourceFactory, TransferListener mediaTransferListener, @@ -185,7 +185,7 @@

    Constructor Summary

    Allocator allocator, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, boolean allowChunklessPreparation, - int metadataType, + @com.google.android.exoplayer2.source.hls.HlsMediaSource.MetadataType int metadataType, boolean useSessionKeys)
    Creates an HLS media period.
    @@ -384,7 +384,7 @@

    Methods inherited from class java.lang. +
      @@ -402,8 +402,7 @@

      HlsMediaPeriod

      Allocator allocator, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, boolean allowChunklessPreparation, - @MetadataType - int metadataType, + @com.google.android.exoplayer2.source.hls.HlsMediaSource.MetadataType int metadataType, boolean useSessionKeys)
      Creates an HLS media period.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html index 1e3f15ece51..6a6562f9b03 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html @@ -87,7 +87,7 @@ @@ -147,6 +147,23 @@

      Class HlsMediaSource.Fact

    - + @@ -778,7 +794,7 @@

    getSupportedTypes

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html index a7882ab665f..e72c27836b5 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html @@ -115,6 +115,7 @@

    Annotation
    @Documented
     @Retention(SOURCE)
    +@Target(TYPE_USE)
     public static @interface HlsMediaSource.MetadataType
    The types of metadata that can be extracted from HLS streams. @@ -125,7 +126,7 @@

    Annotation
  • HlsMediaSource.METADATA_TYPE_EMSG -

    See HlsMediaSource.Factory.setMetadataType(int).

  • +

    See HlsMediaSource.Factory.setMetadataType(int). diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html b/docs/doc/reference/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html index 0eb9418bdd3..172efd8dade 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html @@ -149,7 +149,7 @@

    Class HlsDownloader

    CacheDataSource.Factory cacheDataSourceFactory = new CacheDataSource.Factory() .setCache(cache) - .setUpstreamDataSourceFactory(new DefaultHttpDataSourceFactory(userAgent)); + .setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()); // Create a downloader for the first variant in a master playlist. HlsDownloader hlsDownloader = new HlsDownloader( diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/mediaparser/OutputConsumerAdapterV30.html b/docs/doc/reference/com/google/android/exoplayer2/source/mediaparser/OutputConsumerAdapterV30.html index ac7ec1bc29d..67b81751fba 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/mediaparser/OutputConsumerAdapterV30.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/mediaparser/OutputConsumerAdapterV30.html @@ -160,13 +160,13 @@

    Constructor Summary

    OutputConsumerAdapterV30() -
    Equivalent to OutputConsumerAdapterV30(primaryTrackManifestFormat= null, primaryTrackType= C.TRACK_TYPE_NONE, + -OutputConsumerAdapterV30​(Format primaryTrackManifestFormat, - int primaryTrackType, +OutputConsumerAdapterV30​(Format primaryTrackManifestFormat, + @com.google.android.exoplayer2.C.TrackType int primaryTrackType, boolean expectDummySeekMap)
    Creates a new instance.
    @@ -324,11 +324,11 @@

    Constructor Detail

  • OutputConsumerAdapterV30

    public OutputConsumerAdapterV30()
    -
  • - +
      @@ -336,15 +336,14 @@

      OutputConsumerAdapterV30

      OutputConsumerAdapterV30

      public OutputConsumerAdapterV30​(@Nullable
                                       Format primaryTrackManifestFormat,
      -                                int primaryTrackType,
      +                                @com.google.android.exoplayer2.C.TrackType int primaryTrackType,
                                       boolean expectDummySeekMap)
      Creates a new instance.
      Parameters:
      primaryTrackManifestFormat - The manifest-obtained format of the primary track, or null if not applicable.
      -
      primaryTrackType - The type of the primary track, or C.TRACK_TYPE_NONE if there is - no primary track. Must be one of the C.TRACK_TYPE_* constants.
      +
      primaryTrackType - The type of the primary track. C.TRACK_TYPE_NONE if there is no primary track.
      expectDummySeekMap - Whether the output consumer should expect an initial dummy seek map which should be exposed through getDummySeekMap().
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/source/package-summary.html index fae543fbd6e..b661f639c06 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/package-summary.html @@ -112,7 +112,7 @@

      Package com.google.android.exoplayer2.sou DefaultMediaSourceFactory.AdsLoaderProvider -
      Provides AdsLoader instances for media items that have ad tag URIs.
      +
      Provides AdsLoader instances for media items that have ad tag URIs.
      @@ -288,7 +288,7 @@

      Package com.google.android.exoplayer2.sou LoopingMediaSource Deprecated. -
      To loop a MediaSource indefinitely, use Player.setRepeatMode(int) +
      To loop a MediaSource indefinitely, use Player.setRepeatMode(int) instead of this class.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/source/package-tree.html index 1bc073bbd36..2f64e1f7ded 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/package-tree.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/package-tree.html @@ -168,8 +168,8 @@

      Class Hierarchy

    • com.google.android.exoplayer2.source.SinglePeriodTimeline
    -
  • com.google.android.exoplayer2.source.TrackGroup (implements android.os.Parcelable)
  • -
  • com.google.android.exoplayer2.source.TrackGroupArray (implements android.os.Parcelable)
  • +
  • com.google.android.exoplayer2.source.TrackGroup (implements com.google.android.exoplayer2.Bundleable)
  • +
  • com.google.android.exoplayer2.source.TrackGroupArray (implements com.google.android.exoplayer2.Bundleable)
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html index d792cd6754f..eca7ec1dffd 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":42,"i3":42,"i4":10,"i5":42,"i6":10,"i7":10,"i8":10,"i9":10}; +var data = {"i0":10,"i1":10,"i2":10,"i3":42,"i4":42,"i5":10,"i6":42,"i7":10,"i8":10,"i9":10,"i10":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -87,7 +87,7 @@ @@ -157,6 +157,23 @@

    Class RtspMediaSource.Fa
    - + RtspMediaSource.Factory setDrmSessionManagerProvider​(DrmSessionManagerProvider drmSessionManager)
    Does nothing.
    - + RtspMediaSource.Factory setDrmUserAgent​(String userAgent) @@ -241,28 +265,28 @@

    Method Summary

    - + RtspMediaSource.Factory setForceUseRtpTcp​(boolean forceUseRtpTcp)
    Sets whether to force using TCP as the default RTP transport.
    - + RtspMediaSource.Factory setLoadErrorHandlingPolicy​(LoadErrorHandlingPolicy loadErrorHandlingPolicy)
    Does nothing.
    - + RtspMediaSource.Factory setTimeoutMs​(long timeoutMs)
    Sets the timeout in milliseconds, the default value is RtspMediaSource.DEFAULT_TIMEOUT_MS.
    - + RtspMediaSource.Factory setUserAgent​(String userAgent) @@ -356,6 +380,25 @@

    setUserAgent

    + + + +
      +
    • +

      setDebugLoggingEnabled

      +
      public RtspMediaSource.Factory setDebugLoggingEnabled​(boolean debugLoggingEnabled)
      +
      Sets whether to log RTSP messages, the default value is false. + +

      This option presents a privacy risk, since it may expose sensitive information such as + user's credentials.

      +
      +
      Parameters:
      +
      debugLoggingEnabled - Whether to log RTSP messages.
      +
      Returns:
      +
      This Factory, for convenience.
      +
      +
    • +
    @@ -433,7 +476,7 @@

    setDrmHttpDataSourceFactory

    Specified by:
    setDrmHttpDataSourceFactory in interface MediaSourceFactory
    Parameters:
    -
    drmHttpDataSourceFactory - The HTTP data source factory, or null to use DefaultHttpDataSourceFactory.
    +
    drmHttpDataSourceFactory - The HTTP data source factory, or null to use DefaultHttpDataSource.Factory.
    Returns:
    This factory, for convenience.
    @@ -515,7 +558,7 @@

    createMediaSource

    Returns:
    The new RtspMediaSource.
    Throws:
    -
    NullPointerException - if MediaItem.playbackProperties is null.
    +
    NullPointerException - if MediaItem.localConfiguration is null.
    @@ -571,7 +614,7 @@

    createMediaSource

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.Factory.html b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.Factory.html index 27e12c89054..d8c91e621b1 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.Factory.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.Factory.html @@ -87,7 +87,7 @@ @@ -147,6 +147,23 @@

    Class SsMediaSource.Factor
    • + +
      + +
      @@ -731,7 +748,7 @@

      getSupportedTypes

      diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.StreamElement.html b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.StreamElement.html index 140f5f1b335..d5fe292c2e1 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.StreamElement.html +++ b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.StreamElement.html @@ -207,7 +207,7 @@

      Field Summary

        -int +@com.google.android.exoplayer2.C.TrackType int type   @@ -229,9 +229,9 @@

      Constructor Summary

      Description -StreamElement​(String baseUri, +StreamElement​(String baseUri, String chunkTemplate, - int type, + @com.google.android.exoplayer2.C.TrackType int type, String subType, long timescale, String name, @@ -329,7 +329,7 @@

      Field Detail

      • type

        -
        public final int type
        +
        public final @com.google.android.exoplayer2.C.TrackType int type
      @@ -433,7 +433,7 @@

      chunkCount

      Constructor Detail

      - +
        @@ -441,7 +441,7 @@

        Constructor Detail

        StreamElement

        public StreamElement​(String baseUri,
                              String chunkTemplate,
        -                     int type,
        +                     @com.google.android.exoplayer2.C.TrackType int type,
                              String subType,
                              long timescale,
                              String name,
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader.html b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader.html
        index 73c741b16a0..e4974a23d2b 100644
        --- a/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader.html
        +++ b/docs/doc/reference/com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader.html
        @@ -149,7 +149,7 @@ 

        Class SsDownloader

        CacheDataSource.Factory cacheDataSourceFactory = new CacheDataSource.Factory() .setCache(cache) - .setUpstreamDataSourceFactory(new DefaultHttpDataSourceFactory(userAgent)); + .setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()); // Create a downloader for the first track of the first stream element. SsDownloader ssDownloader = new SsDownloader( diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/Action.AddMediaItems.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/Action.AddMediaItems.html index ea30a761485..c692789fa1a 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/Action.AddMediaItems.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/Action.AddMediaItems.html @@ -140,7 +140,7 @@

        Class Action.AddMediaItems<
        public static final class Action.AddMediaItems
         extends Action
        - +

    @@ -202,11 +202,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -216,7 +216,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -201,11 +201,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -215,7 +215,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -201,11 +201,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -215,7 +215,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -203,11 +203,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -217,7 +217,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -202,11 +202,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -216,7 +216,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -203,11 +203,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -217,7 +217,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -203,11 +203,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -217,7 +217,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -179,7 +179,7 @@

    Constructor Summary

    SetMediaItems​(String tag, - int windowIndex, + int mediaItemIndex, long positionMs, MediaSource... mediaSources)   @@ -204,11 +204,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -218,7 +218,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -203,11 +203,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -217,7 +217,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -178,8 +178,8 @@

    Constructor Summary

    Description -SetRepeatMode​(String tag, - int repeatMode) +SetRepeatMode​(String tag, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode)   @@ -202,11 +202,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -216,7 +216,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -201,11 +201,11 @@

    Method Summary

    protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -215,7 +215,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext, doActionAndScheduleNextImpl +doActionAndScheduleNext, doActionAndScheduleNextImpl
    @@ -203,23 +203,23 @@

    Method Summary

    protected void -doActionAndScheduleNextImpl​(SimpleExoPlayer player, +doActionAndScheduleNextImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface, HandlerWrapper handler, com.google.android.exoplayer2.testutil.ActionSchedule.ActionNode nextAction) -
    Called by Action.doActionAndScheduleNext(SimpleExoPlayer, DefaultTrackSelector, Surface, + protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -229,7 +229,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext +doActionAndScheduleNext
    @@ -178,8 +178,8 @@

    Constructor Summary

    Description -WaitForPlaybackState​(String tag, - int targetPlaybackState) +WaitForPlaybackState​(String tag, + @com.google.android.exoplayer2.Player.State int targetPlaybackState)   @@ -202,23 +202,23 @@

    Method Summary

    protected void -doActionAndScheduleNextImpl​(SimpleExoPlayer player, +doActionAndScheduleNextImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface, HandlerWrapper handler, com.google.android.exoplayer2.testutil.ActionSchedule.ActionNode nextAction) -
    Called by Action.doActionAndScheduleNext(SimpleExoPlayer, DefaultTrackSelector, Surface, + protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -228,7 +228,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext +doActionAndScheduleNext
    @@ -184,9 +184,9 @@

    Constructor Summary

    -WaitForTimelineChanged​(String tag, +WaitForTimelineChanged​(String tag, Timeline expectedTimeline, - int expectedReason) + @com.google.android.exoplayer2.Player.TimelineChangeReason int expectedReason)
    Creates action waiting for a timeline change for a given reason.
    @@ -211,23 +211,23 @@

    Method Summary

    protected void -doActionAndScheduleNextImpl​(SimpleExoPlayer player, +doActionAndScheduleNextImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface, HandlerWrapper handler, com.google.android.exoplayer2.testutil.ActionSchedule.ActionNode nextAction) -
    Called by Action.doActionAndScheduleNext(SimpleExoPlayer, DefaultTrackSelector, Surface, + protected void -doActionImpl​(SimpleExoPlayer player, +doActionImpl​(ExoPlayer player, DefaultTrackSelector trackSelector, Surface surface) -
    Called by Action.doActionAndScheduleNextImpl(SimpleExoPlayer, DefaultTrackSelector, Surface, + @@ -237,7 +237,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.testutil.Action

    -doActionAndScheduleNext +doActionAndScheduleNext @@ -267,7 +267,7 @@

    Method Summary

      -protected SimpleExoPlayer +protected ExoPlayer buildExoPlayer​(HostActivity host, Surface surface, MappingTrackSelector trackSelector) @@ -363,7 +363,7 @@

    Methods inherited from class java.lang.AnalyticsListener

    -onAudioAttributesChanged, onAudioCodecError, onAudioDecoderInitialized, onAudioDecoderInitialized, onAudioDecoderReleased, onAudioEnabled, onAudioInputFormatChanged, onAudioInputFormatChanged, onAudioPositionAdvancing, onAudioSessionIdChanged, onAudioSinkError, onAudioUnderrun, onAvailableCommandsChanged, onBandwidthEstimate, onDecoderDisabled, onDecoderEnabled, onDecoderInitialized, onDecoderInputFormatChanged, onDownstreamFormatChanged, onDrmKeysLoaded, onDrmKeysRemoved, onDrmKeysRestored, onDrmSessionAcquired, onDrmSessionAcquired, onDrmSessionManagerError, onDrmSessionReleased, onDroppedVideoFrames, onIsLoadingChanged, onIsPlayingChanged, onLoadCanceled, onLoadCompleted, onLoadError, onLoadingChanged, onLoadStarted, onMaxSeekToPreviousPositionChanged, onMediaItemTransition, onMediaMetadataChanged, onMetadata, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerReleased, onPlayerStateChanged, onPlaylistMetadataChanged, onPlayWhenReadyChanged, onPositionDiscontinuity, onPositionDiscontinuity, onRenderedFirstFrame, onRepeatModeChanged, onSeekBackIncrementChanged, onSeekForwardIncrementChanged, onSeekProcessed, onSeekStarted, onShuffleModeChanged, onSkipSilenceEnabledChanged, onStaticMetadataChanged, onSurfaceSizeChanged, onTimelineChanged, onTracksChanged, onUpstreamDiscarded, onVideoCodecError, onVideoDecoderInitialized, onVideoDecoderInitialized, onVideoDecoderReleased, onVideoEnabled, onVideoFrameProcessingOffset, onVideoInputFormatChanged, onVideoInputFormatChanged, onVideoSizeChanged, onVideoSizeChanged, onVolumeChanged +onAudioAttributesChanged, onAudioCodecError, onAudioDecoderInitialized, onAudioDecoderInitialized, onAudioDecoderReleased, onAudioEnabled, onAudioInputFormatChanged, onAudioInputFormatChanged, onAudioPositionAdvancing, onAudioSessionIdChanged, onAudioSinkError, onAudioUnderrun, onAvailableCommandsChanged, onBandwidthEstimate, onDecoderDisabled, onDecoderEnabled, onDecoderInitialized, onDecoderInputFormatChanged, onDownstreamFormatChanged, onDrmKeysLoaded, onDrmKeysRemoved, onDrmKeysRestored, onDrmSessionAcquired, onDrmSessionAcquired, onDrmSessionManagerError, onDrmSessionReleased, onDroppedVideoFrames, onIsLoadingChanged, onIsPlayingChanged, onLoadCanceled, onLoadCompleted, onLoadError, onLoadingChanged, onLoadStarted, onMaxSeekToPreviousPositionChanged, onMediaItemTransition, onMediaMetadataChanged, onMetadata, onPlaybackParametersChanged, onPlaybackStateChanged, onPlaybackSuppressionReasonChanged, onPlayerError, onPlayerReleased, onPlayerStateChanged, onPlaylistMetadataChanged, onPlayWhenReadyChanged, onPositionDiscontinuity, onPositionDiscontinuity, onRenderedFirstFrame, onRepeatModeChanged, onSeekBackIncrementChanged, onSeekForwardIncrementChanged, onSeekProcessed, onSeekStarted, onShuffleModeChanged, onSkipSilenceEnabledChanged, onSurfaceSizeChanged, onTimelineChanged, onTracksChanged, onTracksInfoChanged, onUpstreamDiscarded, onVideoCodecError, onVideoDecoderInitialized, onVideoDecoderInitialized, onVideoDecoderReleased, onVideoEnabled, onVideoFrameProcessingOffset, onVideoInputFormatChanged, onVideoInputFormatChanged, onVideoSizeChanged, onVideoSizeChanged, onVolumeChanged @@ -597,15 +597,15 @@

    onEvents

    Specified by:
    @@ -678,9 +678,9 @@

    buildTrackSelector

    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.Builder.html index c672ef49d60..f3208e376e0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.Builder.html @@ -135,7 +135,7 @@

    Class ExoPlayerTestR
    public static final class ExoPlayerTestRunner.Builder
     extends Object
    -
    Builder to set-up a ExoPlayerTestRunner. Default fake implementations will be used for +
    Builder to set-up an ExoPlayerTestRunner. Default fake implementations will be used for unset test properties.
    @@ -187,7 +187,7 @@

    Method Summary

    ExoPlayerTestRunner.Builder -initialSeek​(int windowIndex, +initialSeek​(int mediaItemIndex, long positionMs)
    Seeks before setting the media sources and preparing the player.
    @@ -304,8 +304,7 @@

    Method Summary

    ExoPlayerTestRunner.Builder skipSettingMediaSources() -
    Skips calling ExoPlayer.setMediaSources(List) before - preparing.
    +
    Skips calling ExoPlayer.setMediaSources(List) before preparing.
    @@ -393,12 +392,12 @@

    setManifest

    Parameters:
    actionSchedule - An ActionSchedule to be used by the test runner.
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html index 998861c5937..45d546ed4b0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10}; +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}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -130,7 +130,7 @@

    Class ExoPlayerTestRunner
    All Implemented Interfaces:
    -
    AudioListener, DeviceListener, MetadataOutput, Player.EventListener, Player.Listener, ActionSchedule.Callback, TextOutput, VideoListener
    +
    Player.EventListener, Player.Listener, ActionSchedule.Callback

    public final class ExoPlayerTestRunner
    @@ -161,7 +161,7 @@ 

    Nested Class Summary

    static class  ExoPlayerTestRunner.Builder -
    Builder to set-up a ExoPlayerTestRunner.
    +
    Builder to set-up an ExoPlayerTestRunner.
    @@ -216,150 +216,119 @@

    Method Summary

    void -assertMediaItemsTransitionedSame​(MediaItem... mediaItems) - -
    Asserts that the media items reported by Player.Listener.onMediaItemTransition(MediaItem, int) are the same as the provided media - items.
    - - - -void -assertMediaItemsTransitionReasonsEqual​(Integer... reasons) - -
    Asserts that the media item transition reasons reported by Player.Listener.onMediaItemTransition(MediaItem, int) are the same as the provided reasons.
    - - - -void assertNoPositionDiscontinuities() -
    Asserts that Player.Listener.onPositionDiscontinuity(Player.PositionInfo, + - + void assertPlaybackStatesEqual​(Integer... states) -
    Asserts that the playback states reported by Player.Listener.onPlaybackStateChanged(int) are equal to the provided playback states.
    +
    Asserts that the playback states reported by Player.Listener.onPlaybackStateChanged(int) are equal to the provided playback states.
    - + void assertPlayedPeriodIndices​(Integer... periodIndices)
    Asserts that the indices of played periods is equal to the provided list of periods.
    - + void assertPositionDiscontinuityReasonsEqual​(Integer... discontinuityReasons) -
    Asserts that the discontinuity reasons reported by Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) are +
    Asserts that the discontinuity reasons reported by Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) are equal to the provided values.
    - + void assertTimelineChangeReasonsEqual​(Integer... reasons) -
    Asserts that the timeline change reasons reported by Player.Listener.onTimelineChanged(Timeline, int) are equal to the provided timeline change +
    Asserts that the timeline change reasons reported by Player.Listener.onTimelineChanged(Timeline, int) are equal to the provided timeline change reasons.
    - + void assertTimelinesSame​(Timeline... timelines) -
    Asserts that the timelines reported by Player.Listener.onTimelineChanged(Timeline, int) +
    Asserts that the timelines reported by Player.Listener.onTimelineChanged(Timeline, int) are the same to the provided timelines.
    - -void -assertTrackGroupsEqual​(TrackGroupArray trackGroupArray) - -
    Asserts that the last track group array reported by Player.Listener.onTracksChanged(TrackGroupArray, TrackSelectionArray) is equal to the provided - track group array.
    - - - + ExoPlayerTestRunner blockUntilActionScheduleFinished​(long timeoutMs)
    Blocks the current thread until the action schedule finished.
    - + ExoPlayerTestRunner blockUntilEnded​(long timeoutMs)
    Blocks the current thread until the test runner finishes.
    - + void onActionScheduleFinished()
    Called when action schedule finished executing all its actions.
    - + void -onMediaItemTransition​(MediaItem mediaItem, - int reason) +onMediaItemTransition​(MediaItem mediaItem, + @com.google.android.exoplayer2.Player.MediaItemTransitionReason int reason)
    Called when playback transitions to a media item or starts repeating a media item according to the current repeat mode.
    - + void -onPlaybackStateChanged​(int playbackState) +onPlaybackStateChanged​(@com.google.android.exoplayer2.Player.State int playbackState)
    Called when the value returned from Player.getPlaybackState() changes.
    - + void onPlayerError​(PlaybackException error)
    Called when an error occurs.
    - + void -onPositionDiscontinuity​(Player.PositionInfo oldPosition, +onPositionDiscontinuity​(Player.PositionInfo oldPosition, Player.PositionInfo newPosition, - int reason) + @com.google.android.exoplayer2.Player.DiscontinuityReason int reason)
    Called when a position discontinuity occurs.
    - + void -onTimelineChanged​(Timeline timeline, - int reason) +onTimelineChanged​(Timeline timeline, + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
    Called when the timeline has been refreshed.
    - -void -onTracksChanged​(TrackGroupArray trackGroups, - TrackSelectionArray trackSelections) - -
    Called when the available or selected tracks change.
    - - - + ExoPlayerTestRunner start()
    Starts the test runner on its own thread.
    - + ExoPlayerTestRunner start​(boolean doPrepare) @@ -379,21 +348,14 @@

    Methods inherited from class java.lang.Player.EventListener

    -onLoadingChanged, onMaxSeekToPreviousPositionChanged, onPlayerStateChanged, onPositionDiscontinuity, onSeekProcessed, onStaticMetadataChanged +onLoadingChanged, onMaxSeekToPreviousPositionChanged, onPlayerStateChanged, onPositionDiscontinuity, onSeekProcessed, onTracksChanged, onTrackSelectionParametersChanged - @@ -526,7 +488,7 @@

    blockUntilActionScheduleFinished

  • assertTimelinesSame

    public void assertTimelinesSame​(Timeline... timelines)
    -
    Asserts that the timelines reported by Player.Listener.onTimelineChanged(Timeline, int) +
    Asserts that the timelines reported by Player.Listener.onTimelineChanged(Timeline, int) are the same to the provided timelines. This assert differs from testing equality by not comparing period ids which may be different due to id mapping of child source period ids.
    @@ -542,39 +504,10 @@

    assertTimelinesSame

  • assertTimelineChangeReasonsEqual

    public void assertTimelineChangeReasonsEqual​(Integer... reasons)
    -
    Asserts that the timeline change reasons reported by Player.Listener.onTimelineChanged(Timeline, int) are equal to the provided timeline change +
    Asserts that the timeline change reasons reported by Player.Listener.onTimelineChanged(Timeline, int) are equal to the provided timeline change reasons.
  • - - - - - - - -
      -
    • -

      assertMediaItemsTransitionReasonsEqual

      -
      public void assertMediaItemsTransitionReasonsEqual​(Integer... reasons)
      -
      Asserts that the media item transition reasons reported by Player.Listener.onMediaItemTransition(MediaItem, int) are the same as the provided reasons.
      -
      -
      Parameters:
      -
      reasons - A list of expected transition reasons.
      -
      -
    • -
    @@ -582,22 +515,7 @@

    assertMediaItemsTransitionReasonsEqual

  • assertPlaybackStatesEqual

    public void assertPlaybackStatesEqual​(Integer... states)
    -
    Asserts that the playback states reported by Player.Listener.onPlaybackStateChanged(int) are equal to the provided playback states.
    -
  • - - - - - @@ -607,7 +525,7 @@

    assertTrackGroupsEqual

  • assertNoPositionDiscontinuities

    public void assertNoPositionDiscontinuities()
    -
  • @@ -618,7 +536,7 @@

    assertNoPositionDiscontinuities

  • assertPositionDiscontinuityReasonsEqual

    public void assertPositionDiscontinuityReasonsEqual​(Integer... discontinuityReasons)
    -
    Asserts that the discontinuity reasons reported by Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) are +
    Asserts that the discontinuity reasons reported by Player.Listener.onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int) are equal to the provided values.
    Parameters:
    @@ -643,7 +561,7 @@

    assertPlayedPeriodIndices

  • - +
      @@ -651,27 +569,29 @@

      assertPlayedPeriodIndices

      onTimelineChanged

      public void onTimelineChanged​(Timeline timeline,
                                     @TimelineChangeReason
      -                              int reason)
      -
      Description copied from interface: Player.EventListener
      + @com.google.android.exoplayer2.Player.TimelineChangeReason int reason)
  • +
    Description copied from interface: Player.EventListener
    Called when the timeline has been refreshed. -

    Note that the current window or period index may change as a result of a timeline change. - If playback can't continue smoothly because of this timeline change, a separate Player.EventListener.onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be triggered. +

    Note that the current MediaItem or playback position may change as a result of a + timeline change. If playback can't continue smoothly because of this timeline change, a + separate Player.EventListener.onPositionDiscontinuity(PositionInfo, PositionInfo, int) callback will be + triggered.

    Player.EventListener.onEvents(Player, Events) will also be called to report this event along with other events that happen in the same Looper message queue iteration.

    Specified by:
    -
    onTimelineChanged in interface Player.EventListener
    +
    onTimelineChanged in interface Player.EventListener
    Specified by:
    -
    onTimelineChanged in interface Player.Listener
    +
    onTimelineChanged in interface Player.Listener
    Parameters:
    timeline - The latest timeline. Never null, but may be empty.
    reason - The Player.TimelineChangeReason responsible for this timeline change.
    - + - - - -
      -
    • -

      onTracksChanged

      -
      public void onTracksChanged​(TrackGroupArray trackGroups,
      -                            TrackSelectionArray trackSelections)
      -
      Description copied from interface: Player.EventListener
      -
      Called when the available or selected tracks change. - -

      Player.EventListener.onEvents(Player, Events) will also be called to report this event along with - other events that happen in the same Looper message queue iteration.

      -
      -
      Specified by:
      -
      onTracksChanged in interface Player.EventListener
      -
      Specified by:
      -
      onTracksChanged in interface Player.Listener
      -
      Parameters:
      -
      trackGroups - The available tracks. Never null, but may be of length zero.
      -
      trackSelections - The selected tracks. Never null, but may contain null elements. A - concrete implementation may include null elements if it has a fixed number of renderer - components, wishes to report a TrackSelection for each of them, and has one or more - renderer components that is not assigned any selected tracks.
      -
      -
    • -
    - +

    - +

    Overrides:
    -
    onEnabled in class BaseRenderer
    +
    onEnabled in class FakeRenderer
    Parameters:
    joining - Whether this renderer is being enabled to join an ongoing playback.
    mayRenderStartOfStream - Whether this renderer is allowed to render the start of the diff --git a/docs/doc/reference/com/google/android/exoplayer2/drm/UnsupportedMediaCrypto.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeCryptoConfig.html similarity index 80% rename from docs/doc/reference/com/google/android/exoplayer2/drm/UnsupportedMediaCrypto.html rename to docs/doc/reference/com/google/android/exoplayer2/testutil/FakeCryptoConfig.html index dd8bc3d147c..40844ed7292 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/drm/UnsupportedMediaCrypto.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeCryptoConfig.html @@ -2,7 +2,7 @@ -UnsupportedMediaCrypto (ExoPlayer library) +FakeCryptoConfig (ExoPlayer library) @@ -19,7 +19,7 @@ + + + + + + + + + +
    + +
    + +
    +
    + +

    Class FakeMediaSourceFactory

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.google.android.exoplayer2.testutil.FakeMediaSourceFactory
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeMetadataEntry.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeMetadataEntry.html new file mode 100644 index 00000000000..4dcffc141f7 --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeMetadataEntry.html @@ -0,0 +1,456 @@ + + + + +FakeMetadataEntry (ExoPlayer library) + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class FakeMetadataEntry

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.google.android.exoplayer2.testutil.FakeMetadataEntry
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeRenderer.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeRenderer.html index 144da4f781f..39a3e2b8a29 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeRenderer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeRenderer.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10}; +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}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -165,7 +165,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.Renderer

    -Renderer.State, Renderer.VideoScalingMode, Renderer.WakeupListener +Renderer.MessageType, Renderer.State, Renderer.WakeupListener
    • @@ -391,12 +416,30 @@

      positionResetCount

      -
        +
        • sampleBufferReadCount

          public int sampleBufferReadCount
        + + + +
          +
        • +

          enabledCount

          +
          public int enabledCount
          +
        • +
        + + + +
          +
        • +

          resetCount

          +
          public int resetCount
          +
        • +
      @@ -407,13 +450,13 @@

      sampleBufferReadCount

      Constructor Detail

      - +
      • FakeRenderer

        -
        public FakeRenderer​(int trackType)
        +
        public FakeRenderer​(@com.google.android.exoplayer2.C.TrackType int trackType)
    • @@ -508,6 +551,48 @@

      render

    + + + +
      +
    • +

      onEnabled

      +
      protected void onEnabled​(boolean joining,
      +                         boolean mayRenderStartOfStream)
      +                  throws ExoPlaybackException
      +
      Description copied from class: BaseRenderer
      +
      Called when the renderer is enabled. + +

      The default implementation is a no-op.

      +
      +
      Overrides:
      +
      onEnabled in class BaseRenderer
      +
      Parameters:
      +
      joining - Whether this renderer is being enabled to join an ongoing playback.
      +
      mayRenderStartOfStream - Whether this renderer is allowed to render the start of the + stream even if the state is not Renderer.STATE_STARTED yet.
      +
      Throws:
      +
      ExoPlaybackException - If an error occurs.
      +
      +
    • +
    + + + +
      +
    • +

      onReset

      +
      protected void onReset()
      +
      Description copied from class: BaseRenderer
      +
      Called when the renderer is reset. + +

      The default implementation is a no-op.

      +
      +
      Overrides:
      +
      onReset in class BaseRenderer
      +
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTimeline.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTimeline.html index e20c5c25296..551b1d9d211 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTimeline.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTimeline.html @@ -311,8 +311,8 @@

    Method Summary

    int -getNextWindowIndex​(int windowIndex, - int repeatMode, +getNextWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Returns the index of the window after the window at index windowIndex depending on the @@ -337,8 +337,8 @@

    Method Summary

    int -getPreviousWindowIndex​(int windowIndex, - int repeatMode, +getPreviousWindowIndex​(int windowIndex, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Returns the index of the window before the window at index windowIndex depending on the @@ -374,7 +374,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.Timeline

    -equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundle +equals, getNextPeriodIndex, getPeriod, getPeriodByUid, getPeriodPosition, getPeriodPosition, getPeriodPositionUs, getPeriodPositionUs, getWindow, hashCode, isEmpty, isLastPeriod, toBundle, toBundle - +
      @@ -528,14 +528,14 @@

      getWindowCount

      getNextWindowIndex

      public int getNextWindowIndex​(int windowIndex,
                                     @RepeatMode
      -                              int repeatMode,
      +                              @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                     boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window after the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getNextWindowIndex in class Timeline
      +
      getNextWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      @@ -545,7 +545,7 @@

      getNextWindowIndex

    - +
      @@ -553,14 +553,14 @@

      getNextWindowIndex

      getPreviousWindowIndex

      public int getPreviousWindowIndex​(int windowIndex,
                                         @RepeatMode
      -                                  int repeatMode,
      +                                  @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                         boolean shuffleModeEnabled)
      -
      Description copied from class: Timeline
      +
      Description copied from class: Timeline
      Returns the index of the window before the window at index windowIndex depending on the repeatMode and whether shuffling is enabled.
      Overrides:
      -
      getPreviousWindowIndex in class Timeline
      +
      getPreviousWindowIndex in class Timeline
      Parameters:
      windowIndex - Index of a window in the timeline.
      repeatMode - A repeat mode.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelection.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelection.html index 838f9633837..c36b67975fd 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelection.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelection.html @@ -158,6 +158,13 @@

      Nested Class Summary

      Nested classes/interfaces inherited from interface com.google.android.exoplayer2.trackselection.ExoTrackSelection

      ExoTrackSelection.Definition, ExoTrackSelection.Factory
    + diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelector.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelector.html index 9fdcdb9690f..752f5fc1ca9 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelector.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/FakeTrackSelector.html @@ -248,7 +248,7 @@

    Method Summary

    Methods inherited from class com.google.android.exoplayer2.trackselection.DefaultTrackSelector

    -buildUponParameters, getFormatLanguageScore, getParameters, isSupported, normalizeUndeterminedLanguageToNull, selectAudioTrack, selectOtherTrack, selectTextTrack, selectTracks, selectVideoTrack, setParameters, setParameters +buildUponParameters, getFormatLanguageScore, getParameters, isSetParametersSupported, isSupported, maybeApplyOverride, normalizeUndeterminedLanguageToNull, selectAudioTrack, selectOtherTrack, selectTextTrack, selectTracks, selectVideoTrack, setParameters, setParameters
    Overrides:
    -
    onEnabled in class BaseRenderer
    +
    onEnabled in class FakeRenderer
    Parameters:
    joining - Whether this renderer is being enabled to join an ongoing playback.
    mayRenderStartOfStream - Whether this renderer is allowed to render the start of the @@ -506,7 +506,8 @@

    onFormatChanged

    + +
    • @@ -139,7 +144,7 @@

      Class StubExoPlayer


    public class StubExoPlayer
    -extends BasePlayer
    +extends StubPlayer
     implements ExoPlayer
    An abstract ExoPlayer implementation that throws UnsupportedOperationException from every method.
    @@ -161,7 +166,7 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.ExoPlayer

    -ExoPlayer.AudioComponent, ExoPlayer.AudioOffloadListener, ExoPlayer.Builder, ExoPlayer.DeviceComponent, ExoPlayer.MetadataComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent +ExoPlayer.AudioComponent, ExoPlayer.AudioOffloadListener, ExoPlayer.Builder, ExoPlayer.DeviceComponent, ExoPlayer.TextComponent, ExoPlayer.VideoComponent @@ -241,49 +246,41 @@

    Method Summary

    void -addAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) +addAnalyticsListener​(AnalyticsListener listener) -
    Adds a listener to receive audio offload events.
    +
    Adds an AnalyticsListener to receive analytics events.
    void -addListener​(Player.EventListener listener) +addAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) -
    Registers a listener to receive events from the player.
    +
    Adds a listener to receive audio offload events.
    void -addListener​(Player.Listener listener) +addListener​(Player.EventListener listener) -
    Registers a listener to receive all events from the player.
    +
    Registers a listener to receive events from the player.
    void -addMediaItems​(int index, - List<MediaItem> mediaItems) - -
    Adds a list of media items at the given index of the playlist.
    - - - -void addMediaSource​(int index, MediaSource mediaSource)
    Adds a media source at the given index of the playlist.
    - + void addMediaSource​(MediaSource mediaSource)
    Adds a media source to the end of the playlist.
    - + void addMediaSources​(int index, List<MediaSource> mediaSources) @@ -291,2616 +288,1599 @@

    Method Summary

    Adds a list of media sources at the given index of the playlist.
    - + void addMediaSources​(List<MediaSource> mediaSources)
    Adds a list of media sources to the end of the playlist.
    + +void +clearAuxEffectInfo() + +
    Detaches any previously attached auxiliary audio effect from the underlying audio track.
    + + void -clearVideoSurface() +clearCameraMotionListener​(CameraMotionListener listener) -
    Clears any Surface, SurfaceHolder, SurfaceView or TextureView - currently set on the player.
    +
    Clears the listener which receives camera motion events if it matches the one passed.
    void -clearVideoSurface​(Surface surface) +clearVideoFrameMetadataListener​(VideoFrameMetadataListener listener) -
    Clears the Surface onto which video is being rendered if it matches the one passed.
    +
    Clears the listener which receives video frame metadata events if it matches the one passed.
    -void -clearVideoSurfaceHolder​(SurfaceHolder surfaceHolder) +PlayerMessage +createMessage​(PlayerMessage.Target target) -
    Clears the SurfaceHolder that holds the Surface onto which video is being - rendered if it matches the one passed.
    +
    Creates a message that can be sent to a PlayerMessage.Target.
    -void -clearVideoSurfaceView​(SurfaceView surfaceView) +boolean +experimentalIsSleepingForOffload() -
    Clears the SurfaceView onto which video is being rendered if it matches the one passed.
    +
    Returns whether the player has paused its main loop to save power in offload scheduling mode.
    void -clearVideoTextureView​(TextureView textureView) +experimentalSetOffloadSchedulingEnabled​(boolean offloadSchedulingEnabled) -
    Clears the TextureView onto which video is being rendered if it matches the one passed.
    +
    Sets whether audio offload scheduling is enabled.
    -PlayerMessage -createMessage​(PlayerMessage.Target target) +AnalyticsCollector +getAnalyticsCollector() -
    Creates a message that can be sent to a PlayerMessage.Target.
    +
    Returns the AnalyticsCollector used for collecting analytics events.
    -void -decreaseDeviceVolume() +ExoPlayer.AudioComponent +getAudioComponent() -
    Decreases the volume of the device.
    +
    Deprecated.
    -boolean -experimentalIsSleepingForOffload() +DecoderCounters +getAudioDecoderCounters() -
    Returns whether the player has paused its main loop to save power in offload scheduling mode.
    +
    Returns DecoderCounters for audio, or null if no audio is being played.
    -void -experimentalSetOffloadSchedulingEnabled​(boolean offloadSchedulingEnabled) +Format +getAudioFormat() -
    Sets whether audio offload scheduling is enabled.
    +
    Returns the audio format currently being played, or null if no audio is being played.
    -Looper -getApplicationLooper() +int +getAudioSessionId() -
    Returns the Looper associated with the application thread that's used to access the - player and on which player events are received.
    +
    Returns the audio session identifier, or C.AUDIO_SESSION_ID_UNSET if not set.
    -AudioAttributes -getAudioAttributes() +Clock +getClock() -
    Returns the attributes for audio playback.
    +
    Returns the Clock used for playback.
    -ExoPlayer.AudioComponent -getAudioComponent() +ExoPlayer.DeviceComponent +getDeviceComponent() -
    Returns the component of this player for audio output, or null if audio is not supported.
    +
    Deprecated.
    -Player.Commands -getAvailableCommands() +boolean +getPauseAtEndOfMediaItems() -
    Returns the player's currently available Player.Commands.
    +
    Returns whether the player pauses playback at the end of each media item.
    -long -getBufferedPosition() +Looper +getPlaybackLooper() -
    Returns an estimate of the position in the current content window or ad up to which data is - buffered, in milliseconds.
    +
    Returns the Looper associated with the playback thread.
    -Clock -getClock() +ExoPlaybackException +getPlayerError() -
    Returns the Clock used for playback.
    +
    Returns the error that caused playback to fail.
    -long -getContentBufferedPosition() +int +getRendererCount() -
    If Player.isPlayingAd() returns true, returns an estimate of the content position in - the current content window up to which data is buffered, in milliseconds.
    +
    Returns the number of renderers.
    -long -getContentPosition() +int +getRendererType​(int index) -
    If Player.isPlayingAd() returns true, returns the content position that will be - played once all ads in the ad group have finished playing, in milliseconds.
    +
    Returns the track type that the renderer at a given index handles.
    -int -getCurrentAdGroupIndex() +SeekParameters +getSeekParameters() -
    If Player.isPlayingAd() returns true, returns the index of the ad group in the period - currently being played.
    +
    Returns the currently active SeekParameters of the player.
    -int -getCurrentAdIndexInAdGroup() +boolean +getSkipSilenceEnabled() -
    If Player.isPlayingAd() returns true, returns the index of the ad in its ad group.
    +
    Returns whether skipping silences in the audio stream is enabled.
    -List<Cue> -getCurrentCues() +ExoPlayer.TextComponent +getTextComponent() -
    Returns the current Cues.
    +
    Deprecated.
    -int -getCurrentPeriodIndex() +TrackSelector +getTrackSelector() -
    Returns the index of the period currently being played.
    +
    Returns the track selector that this player uses, or null if track selection is not supported.
    -long -getCurrentPosition() +int +getVideoChangeFrameRateStrategy() -
    Returns the playback position in the current content window or ad, in milliseconds, or the - prospective position in milliseconds if the current timeline is - empty.
    + -List<Metadata> -getCurrentStaticMetadata() +ExoPlayer.VideoComponent +getVideoComponent()
    Deprecated.
    -Timeline -getCurrentTimeline() +DecoderCounters +getVideoDecoderCounters() -
    Returns the current Timeline.
    +
    Returns DecoderCounters for video, or null if no video is being played.
    -TrackGroupArray -getCurrentTrackGroups() +Format +getVideoFormat() -
    Returns the available track groups.
    +
    Returns the video format currently being played, or null if no video is being played.
    -TrackSelectionArray -getCurrentTrackSelections() +int +getVideoScalingMode() -
    Returns the current track selections.
    +
    Returns the C.VideoScalingMode.
    -int -getCurrentWindowIndex() +void +prepare​(MediaSource mediaSource) -
    Returns the index of the current window in the timeline, or the prospective window index if the current timeline is empty.
    +
    Deprecated.
    -ExoPlayer.DeviceComponent -getDeviceComponent() +void +prepare​(MediaSource mediaSource, + boolean resetPosition, + boolean resetState) -
    Returns the component of this player for playback device, or null if it's not supported.
    +
    Deprecated.
    -DeviceInfo -getDeviceInfo() +void +removeAnalyticsListener​(AnalyticsListener listener) -
    Gets the device information.
    +
    Removes an AnalyticsListener.
    -int -getDeviceVolume() +void +removeAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) -
    Gets the current volume of the device.
    +
    Removes a listener of audio offload events.
    -long -getDuration() +void +removeListener​(Player.EventListener listener) -
    Returns the duration of the current content window or ad in milliseconds, or C.TIME_UNSET if the duration is not known.
    +
    Unregister a listener registered through ExoPlayer.addListener(EventListener).
    -int -getMaxSeekToPreviousPosition() +void +retry() -
    Returns the maximum position for which Player.seekToPrevious() seeks to the previous window, - in milliseconds.
    +
    Deprecated.
    -MediaMetadata -getMediaMetadata() +void +setAudioAttributes​(AudioAttributes audioAttributes, + boolean handleAudioFocus) -
    Returns the current combined MediaMetadata, or MediaMetadata.EMPTY if not - supported.
    +
    Sets the attributes for audio playback, used by the underlying audio track.
    -ExoPlayer.MetadataComponent -getMetadataComponent() +void +setAudioSessionId​(int audioSessionId) -
    Returns the component of this player for metadata output, or null if metadata is not supported.
    +
    Sets the ID of the audio session to attach to the underlying AudioTrack.
    -boolean -getPauseAtEndOfMediaItems() +void +setAuxEffectInfo​(AuxEffectInfo auxEffectInfo) -
    Returns whether the player pauses playback at the end of each media item.
    +
    Sets information on an auxiliary audio effect to attach to the underlying audio track.
    -Looper -getPlaybackLooper() +void +setCameraMotionListener​(CameraMotionListener listener) -
    Returns the Looper associated with the playback thread.
    +
    Sets a listener of camera motion events.
    -PlaybackParameters -getPlaybackParameters() +void +setForegroundMode​(boolean foregroundMode) -
    Returns the currently active playback parameters.
    +
    Sets whether the player is allowed to keep holding limited resources such as video decoders, + even when in the idle state.
    -int -getPlaybackState() +void +setHandleAudioBecomingNoisy​(boolean handleAudioBecomingNoisy) -
    Returns the current playback state of the player.
    +
    Sets whether the player should pause automatically when audio is rerouted from a headset to + device speakers.
    -int -getPlaybackSuppressionReason() +void +setHandleWakeLock​(boolean handleWakeLock) -
    Returns the reason why playback is suppressed even though Player.getPlayWhenReady() is - true, or Player.PLAYBACK_SUPPRESSION_REASON_NONE if playback is not suppressed.
    +
    Deprecated.
    -ExoPlaybackException -getPlayerError() +void +setMediaSource​(MediaSource mediaSource) -
    Equivalent to Player.getPlayerError(), except the exception is guaranteed to be an - ExoPlaybackException.
    +
    Clears the playlist, adds the specified MediaSource and resets the position to the + default position.
    -MediaMetadata -getPlaylistMetadata() +void +setMediaSource​(MediaSource mediaSource, + boolean resetPosition) -
    Returns the playlist MediaMetadata, as set by Player.setPlaylistMetadata(MediaMetadata), or MediaMetadata.EMPTY if not supported.
    +
    Clears the playlist and adds the specified MediaSource.
    -boolean -getPlayWhenReady() +void +setMediaSource​(MediaSource mediaSource, + long startPositionMs) -
    Whether playback will proceed when Player.getPlaybackState() == Player.STATE_READY.
    +
    Clears the playlist and adds the specified MediaSource.
    -int -getRendererCount() +void +setMediaSources​(List<MediaSource> mediaSources) -
    Returns the number of renderers.
    +
    Clears the playlist, adds the specified MediaSources and resets the + position to the default position.
    -int -getRendererType​(int index) +void +setMediaSources​(List<MediaSource> mediaSources, + boolean resetPosition) -
    Returns the track type that the renderer at a given index handles.
    +
    Clears the playlist and adds the specified MediaSources.
    -int -getRepeatMode() +void +setMediaSources​(List<MediaSource> mediaSources, + int startMediaItemIndex, + long startPositionMs) -
    Returns the current Player.RepeatMode used for playback.
    +
    Clears the playlist and adds the specified MediaSources.
    -long -getSeekBackIncrement() +void +setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems) -
    Returns the Player.seekBack() increment.
    +
    Sets whether to pause playback at the end of each media item.
    -long -getSeekForwardIncrement() +void +setPriorityTaskManager​(PriorityTaskManager priorityTaskManager) -
    Returns the Player.seekForward() increment.
    +
    Sets a PriorityTaskManager, or null to clear a previously set priority task manager.
    -SeekParameters -getSeekParameters() +void +setSeekParameters​(SeekParameters seekParameters) -
    Returns the currently active SeekParameters of the player.
    +
    Sets the parameters that control how seek operations are performed.
    -boolean -getShuffleModeEnabled() +void +setShuffleOrder​(ShuffleOrder shuffleOrder) -
    Returns whether shuffling of windows is enabled.
    +
    Sets the shuffle order.
    -ExoPlayer.TextComponent -getTextComponent() +void +setSkipSilenceEnabled​(boolean skipSilenceEnabled) -
    Returns the component of this player for text output, or null if text is not supported.
    +
    Sets whether skipping silences in the audio stream is enabled.
    -long -getTotalBufferedDuration() +void +setThrowsWhenUsingWrongThread​(boolean throwsWhenUsingWrongThread) -
    Returns an estimate of the total buffered duration from the current position, in milliseconds.
    +
    Deprecated.
    -TrackSelector -getTrackSelector() +void +setVideoChangeFrameRateStrategy​(int videoChangeFrameRateStrategy) -
    Returns the track selector that this player uses, or null if track selection is not supported.
    +
    Sets a C.VideoChangeFrameRateStrategy that will be used by the player when provided + with a video output Surface.
    -ExoPlayer.VideoComponent -getVideoComponent() - -
    Returns the component of this player for video output, or null if video is not supported.
    - - - -VideoSize -getVideoSize() - -
    Gets the size of the video.
    - - - -float -getVolume() - -
    Returns the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    - - - void -increaseDeviceVolume() - -
    Increases the volume of the device.
    - - - -boolean -isDeviceMuted() - -
    Gets whether the device is muted or not.
    - - - -boolean -isLoading() - -
    Whether the player is currently loading the source.
    - - - -boolean -isPlayingAd() +setVideoFrameMetadataListener​(VideoFrameMetadataListener listener) -
    Returns whether the player is currently playing an ad.
    +
    Sets a listener to receive video frame metadata events.
    - + void -moveMediaItems​(int fromIndex, - int toIndex, - int newIndex) +setVideoScalingMode​(int videoScalingMode) -
    Moves the media item range to the new index.
    + - + void -prepare() +setWakeMode​(int wakeMode) -
    Deprecated. - -
    +
    Sets how the player should keep the device awake for playback when the screen is off.
    - -void -prepare​(MediaSource mediaSource) - -
    Deprecated. - -
    - - - -void -prepare​(MediaSource mediaSource, - boolean resetPosition, - boolean resetState) - -
    Deprecated. - -
    - - - -void -release() - -
    Releases the player.
    - - - -void -removeAudioOffloadListener​(ExoPlayer.AudioOffloadListener listener) - -
    Removes a listener of audio offload events.
    - - - -void -removeListener​(Player.EventListener listener) - -
    Unregister a listener registered through Player.addListener(EventListener).
    - - - -void -removeListener​(Player.Listener listener) - -
    Unregister a listener registered through Player.addListener(Listener).
    - - - -void -removeMediaItems​(int fromIndex, - int toIndex) - -
    Removes a range of media items from the playlist.
    - - - -void -retry() - -
    Deprecated. -
    Use prepare() instead.
    -
    - - - -void -seekTo​(int windowIndex, - long positionMs) - -
    Seeks to a position specified in milliseconds in the specified window.
    - - - -void -setDeviceMuted​(boolean muted) - -
    Sets the mute state of the device.
    - - - -void -setDeviceVolume​(int volume) - -
    Sets the volume of the device.
    - - - -void -setForegroundMode​(boolean foregroundMode) - -
    Sets whether the player is allowed to keep holding limited resources such as video decoders, - even when in the idle state.
    - - - -void -setMediaItems​(List<MediaItem> mediaItems, - boolean resetPosition) - -
    Clears the playlist and adds the specified MediaItems.
    - - - -void -setMediaItems​(List<MediaItem> mediaItems, - int startWindowIndex, - long startPositionMs) - -
    Clears the playlist and adds the specified MediaItems.
    - - - -void -setMediaSource​(MediaSource mediaSource) - -
    Clears the playlist, adds the specified MediaSource and resets the position to the - default position.
    - - - -void -setMediaSource​(MediaSource mediaSource, - boolean resetPosition) - -
    Clears the playlist and adds the specified MediaSource.
    - - - -void -setMediaSource​(MediaSource mediaSource, - long startPositionMs) - -
    Clears the playlist and adds the specified MediaSource.
    - - - -void -setMediaSources​(List<MediaSource> mediaSources) - -
    Clears the playlist, adds the specified MediaSources and resets the - position to the default position.
    - - - -void -setMediaSources​(List<MediaSource> mediaSources, - boolean resetPosition) - -
    Clears the playlist and adds the specified MediaSources.
    - - - -void -setMediaSources​(List<MediaSource> mediaSources, - int startWindowIndex, - long startPositionMs) - -
    Clears the playlist and adds the specified MediaSources.
    - - - -void -setPauseAtEndOfMediaItems​(boolean pauseAtEndOfMediaItems) - -
    Sets whether to pause playback at the end of each media item.
    - - - -void -setPlaybackParameters​(PlaybackParameters playbackParameters) - -
    Attempts to set the playback parameters.
    - - - -void -setPlaylistMetadata​(MediaMetadata mediaMetadata) - -
    Sets the playlist MediaMetadata.
    - - - -void -setPlayWhenReady​(boolean playWhenReady) - -
    Sets whether playback should proceed when Player.getPlaybackState() == Player.STATE_READY.
    - - - -void -setRepeatMode​(int repeatMode) - -
    Sets the Player.RepeatMode to be used for playback.
    - - - -void -setSeekParameters​(SeekParameters seekParameters) - -
    Sets the parameters that control how seek operations are performed.
    - - - -void -setShuffleModeEnabled​(boolean shuffleModeEnabled) - -
    Sets whether shuffling of windows is enabled.
    - - - -void -setShuffleOrder​(ShuffleOrder shuffleOrder) - -
    Sets the shuffle order.
    - - - -void -setVideoSurface​(Surface surface) - -
    Sets the Surface onto which video will be rendered.
    - - - -void -setVideoSurfaceHolder​(SurfaceHolder surfaceHolder) - -
    Sets the SurfaceHolder that holds the Surface onto which video will be - rendered.
    - - - -void -setVideoSurfaceView​(SurfaceView surfaceView) - -
    Sets the SurfaceView onto which video will be rendered.
    - - - -void -setVideoTextureView​(TextureView textureView) - -
    Sets the TextureView onto which video will be rendered.
    - - - -void -setVolume​(float audioVolume) - -
    Sets the audio volume, with 0 being silence and 1 being unity gain (signal unchanged).
    - - - -void -stop​(boolean reset) -  - - - - - - - - - - + + + + + + + + + +
    - + RenderersFactory getRenderersFactory() @@ -225,98 +232,105 @@

    Method Summary

    null if no factory has been explicitly set.
    - + long getSeekBackIncrementMs()
    Returns the seek back increment used by the player.
    - + long getSeekForwardIncrementMs()
    Returns the seek forward increment used by the player.
    - + DefaultTrackSelector getTrackSelector()
    Returns the track selector used by the player.
    - + boolean getUseLazyPreparation()
    Returns whether the player will use lazy preparation.
    - + TestExoPlayerBuilder setBandwidthMeter​(BandwidthMeter bandwidthMeter)
    Sets the BandwidthMeter.
    - + TestExoPlayerBuilder setClock​(Clock clock)
    Sets the Clock to be used by the player.
    - + TestExoPlayerBuilder setLoadControl​(LoadControl loadControl)
    Sets a LoadControl to be used by the player.
    - + TestExoPlayerBuilder setLooper​(Looper looper)
    Sets the Looper to be used by the player.
    - + +TestExoPlayerBuilder +setMediaSourceFactory​(MediaSourceFactory mediaSourceFactory) + +
    Sets the MediaSourceFactory to be used by the player.
    + + + TestExoPlayerBuilder setRenderers​(Renderer... renderers)
    Sets the Renderers.
    - + TestExoPlayerBuilder setRenderersFactory​(RenderersFactory renderersFactory) - + TestExoPlayerBuilder setSeekBackIncrementMs​(long seekBackIncrementMs)
    Sets the seek back increment to be used by the player.
    - + TestExoPlayerBuilder setSeekForwardIncrementMs​(long seekForwardIncrementMs)
    Sets the seek forward increment to be used by the player.
    - + TestExoPlayerBuilder setTrackSelector​(DefaultTrackSelector trackSelector) - + TestExoPlayerBuilder setUseLazyPreparation​(boolean useLazyPreparation) @@ -585,6 +599,33 @@

    getLooper

    been set yet and no default is available.
    + + + + + + + + @@ -645,10 +686,6 @@

    getSeekForwardIncrementMs

    build

    public SimpleExoPlayer build()
    Builds an SimpleExoPlayer using the provided values or their defaults.
    -
    -
    Returns:
    -
    The built ExoPlayerTestRunner.
    -
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/TestUtil.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/TestUtil.html index 0eb30f2d9b6..67441c86996 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/TestUtil.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/TestUtil.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9}; +var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -180,20 +180,28 @@

    Method Summary

    +static void +assertTimelinesSame​(List<Timeline> actualTimelines, + List<Timeline> expectedTimelines) + +
    Asserts that the actual timelines are the same to the expected timelines.
    + + + static Uri buildAssetUri​(String assetPath)
    Returns the Uri for the given asset path.
    - + static byte[] buildTestData​(int length)
    Equivalent to buildTestData(length, length).
    - + static byte[] buildTestData​(int length, int seed) @@ -201,7 +209,7 @@

    Method Summary

    Generates an array of random bytes with the specified length.
    - + static byte[] buildTestData​(int length, Random random) @@ -209,7 +217,7 @@

    Method Summary

    Generates an array of random bytes with the specified length.
    - + static String buildTestString​(int length, Random random) @@ -217,28 +225,28 @@

    Method Summary

    Generates a random string with the specified length.
    - + static byte[] createByteArray​(int... bytes)
    Converts an array of integers in the range [0, 255] into an equivalent byte array.
    - + static ImmutableList<Byte> createByteList​(int... bytes)
    Converts an array of integers in the range [0, 255] into an equivalent byte list.
    - + static MetadataInputBuffer createMetadataInputBuffer​(byte[] data)
    Create a new MetadataInputBuffer and copy data into the backing ByteBuffer.
    - + static File createTestFile​(File file, long length) @@ -246,7 +254,7 @@

    Method Summary

    Writes test data with the specified length to the file and returns it.
    - + static File createTestFile​(File directory, String name) @@ -254,7 +262,7 @@

    Method Summary

    Writes one byte long test data to the file and returns it.
    - + static File createTestFile​(File directory, String name, @@ -263,7 +271,7 @@

    Method Summary

    Writes test data with the specified length to the file and returns it.
    - + static FakeExtractorOutput extractAllSamplesFromFile​(Extractor extractor, Context context, @@ -272,7 +280,7 @@

    Method Summary

    Extracts all samples from the given file into a FakeTrackOutput.
    - + static SeekMap extractSeekMap​(Extractor extractor, FakeExtractorOutput output, @@ -283,7 +291,7 @@

    Method Summary

    EOF. - + static Bitmap getBitmap​(Context context, String fileName) @@ -291,7 +299,7 @@

    Method Summary

    Returns a Bitmap read from an asset file.
    - + static byte[] getByteArray​(Context context, String fileName) @@ -299,7 +307,7 @@

    Method Summary

    Returns the bytes of an asset file.
    - + static ExtractorInput getExtractorInputFromPosition​(DataSource dataSource, long position, @@ -308,14 +316,14 @@

    Method Summary

    Returns an ExtractorInput to read from the given input at given position.
    - + static DatabaseProvider getInMemoryDatabaseProvider()
    Returns a DatabaseProvider that provides an in-memory database.
    - + static InputStream getInputStream​(Context context, String fileName) @@ -323,7 +331,7 @@

    Method Summary

    Returns an InputStream for reading from an asset file.
    - + static String getString​(Context context, String fileName) @@ -331,7 +339,7 @@

    Method Summary

    Returns a String read from an asset file.
    - + static int seekToTimeUs​(Extractor extractor, SeekMap seekMap, @@ -594,6 +602,24 @@

    getInMemoryDatabaseProvider

    Returns a DatabaseProvider that provides an in-memory database.
    + + + +
      +
    • +

      assertTimelinesSame

      +
      public static void assertTimelinesSame​(List<Timeline> actualTimelines,
      +                                       List<Timeline> expectedTimelines)
      +
      Asserts that the actual timelines are the same to the expected timelines. This assert differs + from testing equality by not comparing period ids which may be different due to id mapping of + child source period ids.
      +
      +
      Parameters:
      +
      actualTimelines - A list of actual timelines.
      +
      expectedTimelines - A list of expected timelines.
      +
      +
    • +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/TimelineAsserts.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/TimelineAsserts.html index f54b01ef265..58767ef7756 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/TimelineAsserts.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/TimelineAsserts.html @@ -169,9 +169,9 @@

    Method Summary

    static void -assertEqualNextWindowIndices​(Timeline expectedTimeline, +assertEqualNextWindowIndices​(Timeline expectedTimeline, Timeline actualTimeline, - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Asserts that next window indices for each window of the actual timeline are equal to the @@ -180,9 +180,9 @@

    Method Summary

    static void -assertEqualPreviousWindowIndices​(Timeline expectedTimeline, +assertEqualPreviousWindowIndices​(Timeline expectedTimeline, Timeline actualTimeline, - int repeatMode, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled)
    Asserts that previous window indices for each window of the actual timeline are equal to the @@ -199,8 +199,8 @@

    Method Summary

    static void -assertNextWindowIndices​(Timeline timeline, - int repeatMode, +assertNextWindowIndices​(Timeline timeline, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled, int... expectedNextWindowIndices) @@ -235,8 +235,8 @@

    Method Summary

    static void -assertPreviousWindowIndices​(Timeline timeline, - int repeatMode, +assertPreviousWindowIndices​(Timeline timeline, + @com.google.android.exoplayer2.Player.RepeatMode int repeatMode, boolean shuffleModeEnabled, int... expectedPreviousWindowIndices) @@ -329,7 +329,7 @@

    assertWindowIsDynamic

    Asserts that window properties Timeline.Window.isDynamic are set correctly.
    - +
      @@ -337,14 +337,14 @@

      assertWindowIsDynamic

      assertPreviousWindowIndices

      public static void assertPreviousWindowIndices​(Timeline timeline,
                                                      @RepeatMode
      -                                               int repeatMode,
      +                                               @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                                      boolean shuffleModeEnabled,
                                                      int... expectedPreviousWindowIndices)
      Asserts that previous window indices for each window depending on the repeat mode and the shuffle mode are equal to the given sequence.
    - +
      @@ -352,14 +352,14 @@

      assertPreviousWindowIndices

      assertNextWindowIndices

      public static void assertNextWindowIndices​(Timeline timeline,
                                                  @RepeatMode
      -                                           int repeatMode,
      +                                           @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                                  boolean shuffleModeEnabled,
                                                  int... expectedNextWindowIndices)
      Asserts that next window indices for each window depending on the repeat mode and the shuffle mode are equal to the given sequence.
    - +
      @@ -368,13 +368,13 @@

      assertEqualPreviousWindowIndices

      public static void assertEqualPreviousWindowIndices​(Timeline expectedTimeline,
                                                           Timeline actualTimeline,
                                                           @RepeatMode
      -                                                    int repeatMode,
      +                                                    @com.google.android.exoplayer2.Player.RepeatMode int repeatMode,
                                                           boolean shuffleModeEnabled)
      Asserts that previous window indices for each window of the actual timeline are equal to the indices of the expected timeline depending on the repeat mode and the shuffle mode.
    - +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/package-summary.html index 9f805fe5249..f5167b8b35a 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/package-summary.html @@ -177,19 +177,19 @@

    Package com.google.android.exoplayer2.tes Action.AddMediaItems - + Action.ClearMediaItems - + Action.ClearVideoSurface - + @@ -201,7 +201,7 @@

    Package com.google.android.exoplayer2.tes Action.MoveMediaItem - + @@ -220,13 +220,13 @@

    Package com.google.android.exoplayer2.tes Action.RemoveMediaItem - + Action.RemoveMediaItems - + @@ -244,19 +244,19 @@

    Package com.google.android.exoplayer2.tes Action.SetAudioAttributes - + Action.SetMediaItems - + Action.SetMediaItemsResetPosition - + @@ -281,7 +281,7 @@

    Package com.google.android.exoplayer2.tes Action.SetRepeatMode - + @@ -299,7 +299,7 @@

    Package com.google.android.exoplayer2.tes Action.SetVideoSurface - + @@ -335,27 +335,27 @@

    Package com.google.android.exoplayer2.tes Action.WaitForPlaybackState -
    Waits for a specified playback state, returning either immediately or after a call to Player.Listener.onPlaybackStateChanged(int).
    +
    Waits for a specified playback state, returning either immediately or after a call to Player.Listener.onPlaybackStateChanged(int).
    Action.WaitForPlayWhenReady
    Waits for a specified playWhenReady value, returning either immediately or after a call to - Player.Listener.onPlayWhenReadyChanged(boolean, int).
    + Player.Listener.onPlayWhenReadyChanged(boolean, int).

    Action.WaitForPositionDiscontinuity -
    Waits for Player.Listener.onPositionDiscontinuity(Player.PositionInfo, + Action.WaitForTimelineChanged - + @@ -389,205 +389,217 @@

    Package com.google.android.exoplayer2.tes +AssetContentProvider + +
    A ContentProvider for reading asset data.
    + + + CacheAsserts
    Assertion methods for Cache.
    - + CacheAsserts.RequestSet
    Defines a set of data requests.
    - + CapturingAudioSink
    A ForwardingAudioSink that captures configuration, discontinuity and buffer events.
    - + CapturingRenderersFactory
    A RenderersFactory that captures interactions with the audio and video MediaCodecAdapter instances.
    - + DataSourceContractTest
    A collection of contract tests for DataSource implementations.
    - + DataSourceContractTest.FakeTransferListener
    A TransferListener that only keeps track of the transferred bytes.
    - + DataSourceContractTest.TestResource
    Information about a resource that can be used to test the DataSource instance.
    - + DataSourceContractTest.TestResource.Builder - + DecoderCountersUtil
    Assertions for DecoderCounters.
    - + DefaultRenderersFactoryAsserts
    Assertions for DefaultRenderersFactory.
    - + DownloadBuilder
    Builder for Download.
    - + DummyMainThread
    Helper class to simulate main/UI thread in tests.
    - + DumpableFormat
    Wraps a Format to allow dumping it.
    - + Dumper
    Helper utility to dump field values.
    - + DumpFileAsserts
    Helper class to enable assertions based on golden-data dump files.
    - + ExoHostedTest
    A HostActivity.HostedTest for ExoPlayer playback tests.
    - + ExoPlayerTestRunner
    Helper class to run an ExoPlayer test.
    - + ExoPlayerTestRunner.Builder -
    Builder to set-up a ExoPlayerTestRunner.
    +
    Builder to set-up an ExoPlayerTestRunner.
    - + ExtractorAsserts
    Assertion methods for Extractor.
    - + ExtractorAsserts.AssertionConfig
    A config for the assertions made (e.g.
    - + ExtractorAsserts.AssertionConfig.Builder
    Builder for ExtractorAsserts.AssertionConfig instances.
    - + ExtractorAsserts.SimulationConfig
    A config of different environments to simulate and extractor behaviours to test.
    - + FailOnCloseDataSink
    A DataSink that can simulate caching the bytes being written to it, and then failing to persist them when FailOnCloseDataSink.close() is called.
    - + FailOnCloseDataSink.Factory
    Factory to create a FailOnCloseDataSink.
    - + FakeAdaptiveDataSet
    Fake data set emulating the data of an adaptive media source.
    - + FakeAdaptiveDataSet.Factory
    Factory for FakeAdaptiveDataSets.
    - + FakeAdaptiveDataSet.Iterator
    MediaChunkIterator for the chunks defined by a fake adaptive data set.
    - + FakeAdaptiveMediaPeriod
    Fake MediaPeriod that provides tracks from the given TrackGroupArray.
    - + FakeAdaptiveMediaSource
    Fake MediaSource that provides a given timeline.
    - + FakeAudioRenderer - + FakeChunkSource
    Fake ChunkSource with adaptive media chunks of a given duration.
    - + FakeChunkSource.Factory
    Factory for a FakeChunkSource.
    - + FakeClock
    Fake Clock implementation that allows to advance the time manually to trigger pending timed messages.
    + +FakeCryptoConfig + + + + FakeDataSet @@ -691,6 +703,18 @@

    Package com.google.android.exoplayer2.tes +FakeMediaSourceFactory + +
    Fake MediaSourceFactory that creates a FakeMediaSource.
    + + + +FakeMetadataEntry + + + + + FakeRenderer
    Fake Renderer that supports any format with the matching track type.
    @@ -789,37 +813,44 @@

    Package com.google.android.exoplayer2.tes +StubPlayer + +
    An abstract Player implementation that throws UnsupportedOperationException from + every method.
    + + + TestExoPlayerBuilder
    A builder of SimpleExoPlayer instances for testing.
    - + TestUtil
    Utility methods for tests.
    - + TimelineAsserts
    Assertion methods for Timeline.
    - + WebServerDispatcher
    A Dispatcher for MockWebServer that allows per-path customisation of the static data served.
    - + WebServerDispatcher.Resource
    A resource served by WebServerDispatcher.
    - + WebServerDispatcher.Resource.Builder diff --git a/docs/doc/reference/com/google/android/exoplayer2/testutil/package-tree.html b/docs/doc/reference/com/google/android/exoplayer2/testutil/package-tree.html index 1962b15df7b..55bc854cd16 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/testutil/package-tree.html +++ b/docs/doc/reference/com/google/android/exoplayer2/testutil/package-tree.html @@ -164,9 +164,13 @@

    Class Hierarchy

  • com.google.android.exoplayer2.BasePlayer (implements com.google.android.exoplayer2.Player)
      +
    • com.google.android.exoplayer2.testutil.StubPlayer +
    • +
    +
  • com.google.android.exoplayer2.BaseRenderer (implements com.google.android.exoplayer2.Renderer, com.google.android.exoplayer2.RendererCapabilities)
    • com.google.android.exoplayer2.testutil.FakeRenderer @@ -190,6 +194,11 @@

      Class Hierarchy

  • +
  • android.content.ContentProvider (implements android.content.ComponentCallbacks2) + +
  • android.content.Context
    • android.content.ContextWrapper @@ -243,6 +252,7 @@

      Class Hierarchy

    • com.google.android.exoplayer2.testutil.FakeChunkSource.Factory
    • com.google.android.exoplayer2.testutil.FakeClock (implements com.google.android.exoplayer2.util.Clock)
    • com.google.android.exoplayer2.testutil.FakeClock.HandlerMessage (implements java.lang.Comparable<T>, com.google.android.exoplayer2.util.HandlerWrapper.Message)
    • +
    • com.google.android.exoplayer2.testutil.FakeCryptoConfig (implements com.google.android.exoplayer2.decoder.CryptoConfig)
    • com.google.android.exoplayer2.testutil.FakeDataSet
      • com.google.android.exoplayer2.testutil.FakeAdaptiveDataSet
      • @@ -258,6 +268,8 @@

        Class Hierarchy

      • com.google.android.exoplayer2.testutil.FakeExtractorInput.Builder
      • com.google.android.exoplayer2.testutil.FakeExtractorOutput (implements com.google.android.exoplayer2.testutil.Dumper.Dumpable, com.google.android.exoplayer2.extractor.ExtractorOutput)
      • com.google.android.exoplayer2.testutil.FakeMediaPeriod (implements com.google.android.exoplayer2.source.MediaPeriod)
      • +
      • com.google.android.exoplayer2.testutil.FakeMediaSourceFactory (implements com.google.android.exoplayer2.source.MediaSourceFactory)
      • +
      • com.google.android.exoplayer2.testutil.FakeMetadataEntry (implements com.google.android.exoplayer2.metadata.Metadata.Entry)
      • com.google.android.exoplayer2.testutil.FakeSampleStream (implements com.google.android.exoplayer2.source.SampleStream)
      • com.google.android.exoplayer2.testutil.FakeSampleStream.FakeSampleStreamItem
      • com.google.android.exoplayer2.testutil.FakeShuffleOrder (implements com.google.android.exoplayer2.source.ShuffleOrder)
      • diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.AnchorType.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.AnchorType.html index 6eb23858c9e..273b95a2ddb 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.AnchorType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.AnchorType.html @@ -115,6 +115,7 @@

        Annotation Type Cue.Anc
        @Documented
         @Retention(SOURCE)
        +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
         public static @interface Cue.AnchorType
        The type of anchor, which may be unset. One of Cue.TYPE_UNSET, Cue.ANCHOR_TYPE_START, Cue.ANCHOR_TYPE_MIDDLE or Cue.ANCHOR_TYPE_END.
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.Builder.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.Builder.html index 9cd6a35fdbf..3e903c8d402 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.Builder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.Builder.html @@ -214,14 +214,14 @@

        Method Summary

        -int +@com.google.android.exoplayer2.text.Cue.AnchorType int getLineAnchor() -
        Gets the cue box anchor positioned by line.
        +
        Gets the cue box anchor positioned by line.
        -int +@com.google.android.exoplayer2.text.Cue.LineType int getLineType()
        Gets the type of the value of getLine().
        @@ -231,12 +231,12 @@

        Method Summary

        float getPosition() -
        Gets the fractional position of the positionAnchor of the cue - box within the viewport in the direction orthogonal to line.
        +
        Gets the fractional position of the positionAnchor of the cue + box within the viewport in the direction orthogonal to line.
        -int +@com.google.android.exoplayer2.text.Cue.AnchorType int getPositionAnchor()
        Gets the cue box anchor positioned by position.
        @@ -272,14 +272,14 @@

        Method Summary

        -int +@com.google.android.exoplayer2.text.Cue.TextSizeType int getTextSizeType()
        Gets the default text size type for this cue's text.
        -int +@com.google.android.exoplayer2.text.Cue.VerticalType int getVerticalType()
        Gets the vertical formatting for this Cue.
        @@ -315,8 +315,8 @@

        Method Summary

        Cue.Builder -setLine​(float line, - int lineType) +setLine​(float line, + @com.google.android.exoplayer2.text.Cue.LineType int lineType)
        Sets the position of the cue box within the viewport in the direction orthogonal to the writing direction.
        @@ -324,9 +324,9 @@

        Method Summary

        Cue.Builder -setLineAnchor​(int lineAnchor) +setLineAnchor​(@com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor) -
        Sets the cue box anchor positioned by line.
        +
        Sets the cue box anchor positioned by line.
        @@ -340,13 +340,13 @@

        Method Summary

        Cue.Builder setPosition​(float position) -
        Sets the fractional position of the positionAnchor of the cue - box within the viewport in the direction orthogonal to line.
        +
        Sets the fractional position of the positionAnchor of the cue + box within the viewport in the direction orthogonal to line.
        Cue.Builder -setPositionAnchor​(int positionAnchor) +setPositionAnchor​(@com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor)
        Sets the cue box anchor positioned by position.
        @@ -382,15 +382,15 @@

        Method Summary

        Cue.Builder -setTextSize​(float textSize, - int textSizeType) +setTextSize​(float textSize, + @com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType)
        Sets the default text size and type for this cue's text.
        Cue.Builder -setVerticalType​(int verticalType) +setVerticalType​(@com.google.android.exoplayer2.text.Cue.VerticalType int verticalType)
        Sets the vertical formatting for this Cue.
        @@ -557,7 +557,7 @@

        setMultiRowAlignment

      - +
        @@ -565,7 +565,7 @@

        setMultiRowAlignment

        setLine

        public Cue.Builder setLine​(float line,
                                    @LineType
        -                           int lineType)
        + @com.google.android.exoplayer2.text.Cue.LineType int lineType)
        Sets the position of the cue box within the viewport in the direction orthogonal to the writing direction.
        @@ -599,7 +599,7 @@

        getLine

        getLineType

        @Pure
         @LineType
        -public int getLineType()
        +public @com.google.android.exoplayer2.text.Cue.LineType int getLineType()
        Gets the type of the value of getLine().
        See Also:
        @@ -607,15 +607,15 @@

        getLineType

      - +
      • setLineAnchor

        public Cue.Builder setLineAnchor​(@AnchorType
        -                                 int lineAnchor)
        -
        Sets the cue box anchor positioned by line.
        + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor) +
        Sets the cue box anchor positioned by line.
        See Also:
        Cue.lineAnchor
        @@ -630,8 +630,8 @@

        setLineAnchor

        getLineAnchor

        @Pure
         @AnchorType
        -public int getLineAnchor()
        -
        Gets the cue box anchor positioned by line.
        +public @com.google.android.exoplayer2.text.Cue.AnchorType int getLineAnchor() +
        Gets the cue box anchor positioned by line.
        See Also:
        Cue.lineAnchor
        @@ -645,8 +645,8 @@

        getLineAnchor

      • setPosition

        public Cue.Builder setPosition​(float position)
        -
        Sets the fractional position of the positionAnchor of the cue - box within the viewport in the direction orthogonal to line.
        +
        Sets the fractional position of the positionAnchor of the cue + box within the viewport in the direction orthogonal to line.
        See Also:
        Cue.position
        @@ -661,22 +661,22 @@

        setPosition

        getPosition

        @Pure
         public float getPosition()
        -
        Gets the fractional position of the positionAnchor of the cue - box within the viewport in the direction orthogonal to line.
        +
        Gets the fractional position of the positionAnchor of the cue + box within the viewport in the direction orthogonal to line.
        See Also:
        Cue.position
      - +
      • setPositionAnchor

        public Cue.Builder setPositionAnchor​(@AnchorType
        -                                     int positionAnchor)
        + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor)
        Sets the cue box anchor positioned by position.
        See Also:
        @@ -692,7 +692,7 @@

        setPositionAnchor

        getPositionAnchor

        @Pure
         @AnchorType
        -public int getPositionAnchor()
        +public @com.google.android.exoplayer2.text.Cue.AnchorType int getPositionAnchor()
        Gets the cue box anchor positioned by position.
        See Also:
        @@ -700,7 +700,7 @@

        getPositionAnchor

      - +
        @@ -708,7 +708,7 @@

        getPositionAnchor

        setTextSize

        public Cue.Builder setTextSize​(float textSize,
                                        @TextSizeType
        -                               int textSizeType)
        + @com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType)
        Sets the default text size and type for this cue's text.
        See Also:
        @@ -725,7 +725,7 @@

        setTextSize

        getTextSizeType

        @Pure
         @TextSizeType
        -public int getTextSizeType()
        +public @com.google.android.exoplayer2.text.Cue.TextSizeType int getTextSizeType()
        Gets the default text size type for this cue's text.
        See Also:
        @@ -866,14 +866,14 @@

        getWindowColor

      - +
      • setVerticalType

        public Cue.Builder setVerticalType​(@VerticalType
        -                                   int verticalType)
        + @com.google.android.exoplayer2.text.Cue.VerticalType int verticalType)
        Sets the vertical formatting for this Cue.
        See Also:
        @@ -899,7 +899,7 @@

        setShearDegrees

        getVerticalType

        @Pure
         @VerticalType
        -public int getVerticalType()
        +public @com.google.android.exoplayer2.text.Cue.VerticalType int getVerticalType()
        Gets the vertical formatting for this Cue.
        See Also:
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.LineType.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.LineType.html index 632df7691ce..ab5f914c7bf 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.LineType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.LineType.html @@ -115,6 +115,7 @@

        Annotation Type Cue.LineT
        @Documented
         @Retention(SOURCE)
        +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
         public static @interface Cue.LineType
        The type of line, which may be unset. One of Cue.TYPE_UNSET, Cue.LINE_TYPE_FRACTION or Cue.LINE_TYPE_NUMBER.
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.TextSizeType.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.TextSizeType.html index 9cd2ad0ae69..b7ea166bb5d 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.TextSizeType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.TextSizeType.html @@ -115,6 +115,7 @@

        Annotation Type Cue.T
        @Documented
         @Retention(SOURCE)
        +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
         public static @interface Cue.TextSizeType
        The type of default text size for this cue, which may be unset. One of Cue.TYPE_UNSET, Cue.TEXT_SIZE_TYPE_FRACTIONAL, Cue.TEXT_SIZE_TYPE_FRACTIONAL_IGNORE_PADDING or Cue.TEXT_SIZE_TYPE_ABSOLUTE.
        diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.VerticalType.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.VerticalType.html index 8ffed3f9992..d10ea25ec35 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.VerticalType.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.VerticalType.html @@ -115,6 +115,7 @@

        Annotation Type Cue.V
        @Documented
         @Retention(SOURCE)
        +@Target({FIELD,METHOD,PARAMETER,LOCAL_VARIABLE,TYPE_USE})
         public static @interface Cue.VerticalType
        The type of vertical layout for this cue, which may be unset (i.e. horizontal). One of Cue.TYPE_UNSET, Cue.VERTICAL_TYPE_RL or Cue.VERTICAL_TYPE_LR.

      • diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.html b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.html index 71fde140066..4f2f64667c7 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/Cue.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/Cue.html @@ -298,14 +298,14 @@

        Field Summary

        -int +@com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor
        The cue box anchor positioned by line when lineType is LINE_TYPE_FRACTION.
        -int +@com.google.android.exoplayer2.text.Cue.LineType int lineType
        The type of the line value.
        @@ -328,7 +328,7 @@

        Field Summary

        -int +@com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor
        The cue box anchor positioned by position.
        @@ -393,7 +393,7 @@

        Field Summary

        -int +@com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType
        The default text size type for this cue's text, or TYPE_UNSET if this cue has no @@ -422,7 +422,7 @@

        Field Summary

        -int +@com.google.android.exoplayer2.text.Cue.VerticalType int verticalType
        The vertical formatting of this Cue, or TYPE_UNSET if the cue has no vertical setting @@ -469,13 +469,13 @@

        Constructor Summary

        -Cue​(CharSequence text, +Cue​(CharSequence text, Layout.Alignment textAlignment, float line, - int lineType, - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size)
        Deprecated. @@ -484,16 +484,16 @@

        Constructor Summary

        -Cue​(CharSequence text, +Cue​(CharSequence text, Layout.Alignment textAlignment, float line, - int lineType, - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size, - boolean windowColorSet, - int windowColor) + @com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType, + float textSize)
        Deprecated. @@ -501,16 +501,16 @@

        Constructor Summary

        -Cue​(CharSequence text, +Cue​(CharSequence text, Layout.Alignment textAlignment, float line, - int lineType, - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size, - int textSizeType, - float textSize) + boolean windowColorSet, + int windowColor)
        Deprecated. @@ -839,7 +839,7 @@

        line

      • lineType

        @LineType
        -public final int lineType
        +public final @com.google.android.exoplayer2.text.Cue.LineType int lineType
        The type of the line value.
          @@ -867,7 +867,7 @@

          lineType

        • lineAnchor

          @AnchorType
          -public final int lineAnchor
          +public final @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor
          The cue box anchor positioned by line when lineType is LINE_TYPE_FRACTION.

          One of: @@ -911,7 +911,7 @@

          position

        • positionAnchor

          @AnchorType
          -public final int positionAnchor
          +public final @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor
          The cue box anchor positioned by position. One of ANCHOR_TYPE_START, ANCHOR_TYPE_MIDDLE, ANCHOR_TYPE_END and TYPE_UNSET.

          For the normal case of horizontal text, ANCHOR_TYPE_START, ANCHOR_TYPE_MIDDLE and ANCHOR_TYPE_END correspond to the left, middle and right of @@ -968,7 +968,7 @@

          windowColor

        • textSizeType

          @TextSizeType
          -public final int textSizeType
          +public final @com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType
          The default text size type for this cue's text, or TYPE_UNSET if this cue has no default text size.
        • @@ -991,7 +991,7 @@

          textSize

        • verticalType

          @VerticalType
          -public final int verticalType
          +public final @com.google.android.exoplayer2.text.Cue.VerticalType int verticalType
          The vertical formatting of this Cue, or TYPE_UNSET if the cue has no vertical setting (and so should be horizontal).
        • @@ -1045,7 +1045,7 @@

          Cue

        - +
          @@ -1057,12 +1057,12 @@

          Cue

          Layout.Alignment textAlignment, float line, @LineType - int lineType, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, @AnchorType - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, @AnchorType - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size)
          Deprecated. @@ -1081,7 +1081,7 @@

          Cue

        - +
          @@ -1093,15 +1093,15 @@

          Cue

          Layout.Alignment textAlignment, float line, @LineType - int lineType, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, @AnchorType - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, @AnchorType - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size, @TextSizeType - int textSizeType, + @com.google.android.exoplayer2.text.Cue.TextSizeType int textSizeType, float textSize)
          Deprecated. @@ -1122,7 +1122,7 @@

          Cue

        - +
          @@ -1134,12 +1134,12 @@

          Cue

          Layout.Alignment textAlignment, float line, @LineType - int lineType, + @com.google.android.exoplayer2.text.Cue.LineType int lineType, @AnchorType - int lineAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int lineAnchor, float position, @AnchorType - int positionAnchor, + @com.google.android.exoplayer2.text.Cue.AnchorType int positionAnchor, float size, boolean windowColorSet, int windowColor) diff --git a/docs/doc/reference/com/google/android/exoplayer2/util/IntArrayQueue.html b/docs/doc/reference/com/google/android/exoplayer2/text/CueDecoder.html similarity index 72% rename from docs/doc/reference/com/google/android/exoplayer2/util/IntArrayQueue.html rename to docs/doc/reference/com/google/android/exoplayer2/text/CueDecoder.html index adf9c490281..7a845cd7133 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/util/IntArrayQueue.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/CueDecoder.html @@ -2,7 +2,7 @@ -IntArrayQueue (ExoPlayer library) +CueDecoder (ExoPlayer library) @@ -19,13 +19,13 @@ + + + + + + + + + +
          + +
          + +
          +
          + +

          Class CueEncoder

          +
          +
          + +
          +
            +
          • +
            +
            public final class CueEncoder
            +extends Object
            +
            Encodes data that can be decoded by CueDecoder.
            +
          • +
          +
          +
          + +
          +
          +
            +
          • + +
            +
              +
            • + + +

              Constructor Detail

              + + + +
                +
              • +

                CueEncoder

                +
                public CueEncoder()
                +
              • +
              +
            • +
            +
            + +
            +
              +
            • + + +

              Method Detail

              + + + +
                +
              • +

                encode

                +
                public byte[] encode​(List<Cue> cues)
                +
                Encodes an List of Cue to a byte array that can be decoded by CueDecoder.
                +
                +
                Parameters:
                +
                cues - Cues to be encoded.
                +
                Returns:
                +
                The serialized byte array.
                +
                +
              • +
              +
            • +
            +
            +
          • +
          +
          +
          +
          + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.html b/docs/doc/reference/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.html new file mode 100644 index 00000000000..ca24d1adde1 --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.html @@ -0,0 +1,472 @@ + + + + +ExoplayerCuesDecoder (ExoPlayer library) + + + + + + + + + + + + + +
          + +
          + +
          +
          + +

          Class ExoplayerCuesDecoder

          +
          +
          +
            +
          • java.lang.Object
          • +
          • +
              +
            • com.google.android.exoplayer2.text.ExoplayerCuesDecoder
            • +
            +
          • +
          +
          + +
          +
          + +
          +
          + +
          +
          +
          + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoder.html b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoder.html index 9adf827c7cd..92be05fc3c1 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoder.html @@ -126,7 +126,7 @@

          Interface SubtitleDecoder
          All Known Implementing Classes:
          -
          Cea608Decoder, Cea708Decoder, DvbDecoder, Mp4WebvttDecoder, PgsDecoder, SimpleSubtitleDecoder, SsaDecoder, SubripDecoder, TtmlDecoder, Tx3gDecoder, WebvttDecoder
          +
          Cea608Decoder, Cea708Decoder, DvbDecoder, ExoplayerCuesDecoder, Mp4WebvttDecoder, PgsDecoder, SimpleSubtitleDecoder, SsaDecoder, SubripDecoder, TtmlDecoder, Tx3gDecoder, WebvttDecoder

          public interface SubtitleDecoder
          diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoderFactory.html b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoderFactory.html
          index 86680e3a651..0fb0e3b8281 100644
          --- a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoderFactory.html
          +++ b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleDecoderFactory.html
          @@ -222,6 +222,7 @@ 

          DEFAULT

        • Cea708 (Cea708Decoder)
        • DVB (DvbDecoder)
        • PGS (PgsDecoder) +
        • Exoplayer Cues (ExoplayerCuesDecoder)
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleExtractor.html b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleExtractor.html new file mode 100644 index 00000000000..a565d2e869a --- /dev/null +++ b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleExtractor.html @@ -0,0 +1,493 @@ + + + + +SubtitleExtractor (ExoPlayer library) + + + + + + + + + + + + + +
      + +
      + +
      +
      + +

      Class SubtitleExtractor

      +
      +
      +
        +
      • java.lang.Object
      • +
      • +
          +
        • com.google.android.exoplayer2.text.SubtitleExtractor
        • +
        +
      • +
      +
      +
        +
      • +
        +
        All Implemented Interfaces:
        +
        Extractor
        +
        +
        +
        public class SubtitleExtractor
        +extends Object
        +implements Extractor
        +
        Generic extractor for extracting subtitles from various subtitle formats.
        +
      • +
      +
      +
      + +
      +
      +
        +
      • + +
        +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            SubtitleExtractor

            +
            public SubtitleExtractor​(SubtitleDecoder subtitleDecoder,
            +                         Format format)
            +
            +
            Parameters:
            +
            subtitleDecoder - The decoder used for decoding the subtitle data. The extractor will + release the decoder in release().
            +
            format - Format that describes subtitle data.
            +
            +
          • +
          +
        • +
        +
        + +
        +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            sniff

            +
            public boolean sniff​(ExtractorInput input)
            +              throws IOException
            +
            Description copied from interface: Extractor
            +
            Returns whether this extractor can extract samples from the ExtractorInput, which must + provide data from the start of the stream. + +

            If true is returned, the input's reading position may have been modified. + Otherwise, only its peek position may have been modified.

            +
            +
            Specified by:
            +
            sniff in interface Extractor
            +
            Parameters:
            +
            input - The ExtractorInput from which data should be peeked/read.
            +
            Returns:
            +
            Whether this extractor can read the provided input.
            +
            Throws:
            +
            IOException - If an error occurred reading from the input.
            +
            +
          • +
          + + + + + + + +
            +
          • +

            read

            +
            public int read​(ExtractorInput input,
            +                PositionHolder seekPosition)
            +         throws IOException
            +
            Description copied from interface: Extractor
            +
            Extracts data read from a provided ExtractorInput. Must not be called before Extractor.init(ExtractorOutput). + +

            A single call to this method will block until some progress has been made, but will not + block for longer than this. Hence each call will consume only a small amount of input data. + +

            In the common case, Extractor.RESULT_CONTINUE is returned to indicate that the ExtractorInput passed to the next read is required to provide data continuing from the + position in the stream reached by the returning call. If the extractor requires data to be + provided from a different position, then that position is set in seekPosition and + Extractor.RESULT_SEEK is returned. If the extractor reached the end of the data provided by the + ExtractorInput, then Extractor.RESULT_END_OF_INPUT is returned. + +

            When this method throws an IOException, extraction may continue by providing an + ExtractorInput with an unchanged read position to + a subsequent call to this method.

            +
            +
            Specified by:
            +
            read in interface Extractor
            +
            Parameters:
            +
            input - The ExtractorInput from which data should be read.
            +
            seekPosition - If Extractor.RESULT_SEEK is returned, this holder is updated to hold the + position of the required data.
            +
            Returns:
            +
            One of the RESULT_ values defined in this interface.
            +
            Throws:
            +
            IOException - If an error occurred reading from or parsing the input.
            +
            +
          • +
          + + + +
            +
          • +

            seek

            +
            public void seek​(long position,
            +                 long timeUs)
            +
            Description copied from interface: Extractor
            +
            Notifies the extractor that a seek has occurred. + +

            Following a call to this method, the ExtractorInput passed to the next invocation of + Extractor.read(ExtractorInput, PositionHolder) is required to provide data starting from + position in the stream. Valid random access positions are the start of the stream and + positions that can be obtained from any SeekMap passed to the ExtractorOutput.

            +
            +
            Specified by:
            +
            seek in interface Extractor
            +
            Parameters:
            +
            position - The byte offset in the stream from which data will be provided.
            +
            timeUs - The seek time in microseconds.
            +
            +
          • +
          + + + +
            +
          • +

            release

            +
            public void release()
            +
            Releases the extractor's resources, including the SubtitleDecoder.
            +
            +
            Specified by:
            +
            release in interface Extractor
            +
            +
          • +
          +
        • +
        +
        +
      • +
      +
      +
      +
      + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleInputBuffer.html b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleInputBuffer.html index c1fc18ff012..86f34c676f0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleInputBuffer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleInputBuffer.html @@ -186,7 +186,7 @@

      Field Summary

      Fields inherited from class com.google.android.exoplayer2.decoder.DecoderInputBuffer

      -BUFFER_REPLACEMENT_MODE_DIRECT, BUFFER_REPLACEMENT_MODE_DISABLED, BUFFER_REPLACEMENT_MODE_NORMAL, cryptoInfo, data, supplementalData, timeUs, waitingForKeys
    • +BUFFER_REPLACEMENT_MODE_DIRECT, BUFFER_REPLACEMENT_MODE_DISABLED, BUFFER_REPLACEMENT_MODE_NORMAL, cryptoInfo, data, format, supplementalData, timeUs, waitingForKeys
  • diff --git a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleOutputBuffer.html b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleOutputBuffer.html index 41665a12c84..410332b356b 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleOutputBuffer.html +++ b/docs/doc/reference/com/google/android/exoplayer2/text/SubtitleOutputBuffer.html @@ -124,7 +124,7 @@

    Class SubtitleOutputBuffer<
  • com.google.android.exoplayer2.decoder.Buffer
  • @@ -270,11 +270,11 @@

    Method Summary

    + + + +
      +
    • +

      Factory

      +
      public Factory​(int minDurationForQualityIncreaseMs,
      +               int maxDurationForQualityDecreaseMs,
      +               int minDurationToRetainAfterDiscardMs,
      +               int maxWidthToDiscard,
      +               int maxHeightToDiscard,
      +               float bandwidthFraction)
      +
      Creates an adaptive track selection factory.
      +
      +
      Parameters:
      +
      minDurationForQualityIncreaseMs - The minimum duration of buffered data required for the + selected track to switch to one of higher quality.
      +
      maxDurationForQualityDecreaseMs - The maximum duration of buffered data required for the + selected track to switch to one of lower quality.
      +
      minDurationToRetainAfterDiscardMs - When switching to a video track of higher quality, + the selection may indicate that media already buffered at the lower quality can be + discarded to speed up the switch. This is the minimum duration of media that must be + retained at the lower quality. It must be at least + minDurationForQualityIncreaseMs.
      +
      maxWidthToDiscard - The maximum video width that the selector may discard from the + buffer to speed up switching to a higher quality.
      +
      maxHeightToDiscard - The maximum video height that the selector may discard from the + buffer to speed up switching to a higher quality.
      +
      bandwidthFraction - The fraction of the available bandwidth that the selection should + consider available for use. Setting to a value less than 1 is recommended to account for + inaccuracies in the bandwidth estimator.
      +
      +
    • +
    +
      +
    • +

      Factory

      +
      public Factory​(int minDurationForQualityIncreaseMs,
      +               int maxDurationForQualityDecreaseMs,
      +               int minDurationToRetainAfterDiscardMs,
      +               float bandwidthFraction,
      +               float bufferedFractionToLiveEdgeForQualityIncrease,
      +               Clock clock)
      +
      Creates an adaptive track selection factory.
      +
      +
      Parameters:
      +
      minDurationForQualityIncreaseMs - The minimum duration of buffered data required for the + selected track to switch to one of higher quality.
      +
      maxDurationForQualityDecreaseMs - The maximum duration of buffered data required for the + selected track to switch to one of lower quality.
      +
      minDurationToRetainAfterDiscardMs - When switching to a video track of higher quality, + the selection may indicate that media already buffered at the lower quality can be + discarded to speed up the switch. This is the minimum duration of media that must be + retained at the lower quality. It must be at least + minDurationForQualityIncreaseMs.
      +
      bandwidthFraction - The fraction of the available bandwidth that the selection should + consider available for use. Setting to a value less than 1 is recommended to account for + inaccuracies in the bandwidth estimator.
      +
      bufferedFractionToLiveEdgeForQualityIncrease - For live streaming, the fraction of the + duration from current playback position to the live edge that has to be buffered before + the selected track can be switched to one of higher quality. This parameter is only + applied when the playback position is closer to the live edge than + minDurationForQualityIncreaseMs, which would otherwise prevent switching to a higher + quality from happening.
      +
      clock - A Clock.
      +
      +
    • +
    + + +
    • Factory

      public Factory​(int minDurationForQualityIncreaseMs,
                      int maxDurationForQualityDecreaseMs,
                      int minDurationToRetainAfterDiscardMs,
      +               int maxWidthToDiscard,
      +               int maxHeightToDiscard,
                      float bandwidthFraction,
                      float bufferedFractionToLiveEdgeForQualityIncrease,
                      Clock clock)
      @@ -306,11 +403,15 @@

      Factory

      selected track to switch to one of higher quality.
      maxDurationForQualityDecreaseMs - The maximum duration of buffered data required for the selected track to switch to one of lower quality.
      -
      minDurationToRetainAfterDiscardMs - When switching to a track of significantly higher - quality, the selection may indicate that media already buffered at the lower quality can - be discarded to speed up the switch. This is the minimum duration of media that must be +
      minDurationToRetainAfterDiscardMs - When switching to a video track of higher quality, + the selection may indicate that media already buffered at the lower quality can be + discarded to speed up the switch. This is the minimum duration of media that must be retained at the lower quality. It must be at least minDurationForQualityIncreaseMs.
      +
      maxWidthToDiscard - The maximum video width that the selector may discard from the + buffer to speed up switching to a higher quality.
      +
      maxHeightToDiscard - The maximum video height that the selector may discard from the + buffer to speed up switching to a higher quality.
      bandwidthFraction - The fraction of the available bandwidth that the selection should consider available for use. Setting to a value less than 1 is recommended to account for inaccuracies in the bandwidth estimator.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html index 0b4f070ebb7..ddfcc6f0ea3 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html @@ -184,6 +184,13 @@

      Nested Class Summary

      Nested classes/interfaces inherited from interface com.google.android.exoplayer2.trackselection.ExoTrackSelection

      ExoTrackSelection.Definition
    +
  • @@ -218,6 +225,16 @@

    Field Summary

    static int +DEFAULT_MAX_HEIGHT_TO_DISCARD +  + + +static int +DEFAULT_MAX_WIDTH_TO_DISCARD +  + + +static int DEFAULT_MIN_DURATION_FOR_QUALITY_INCREASE_MS   @@ -260,13 +277,15 @@

    Constructor Summary

    protected -AdaptiveTrackSelection​(TrackGroup group, +AdaptiveTrackSelection​(TrackGroup group, int[] tracks, - int type, + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type, BandwidthMeter bandwidthMeter, long minDurationForQualityIncreaseMs, long maxDurationForQualityDecreaseMs, long minDurationToRetainAfterDiscardMs, + int maxWidthToDiscard, + int maxHeightToDiscard, float bandwidthFraction, float bufferedFractionToLiveEdgeForQualityIncrease, List<AdaptiveTrackSelection.AdaptationCheckpoint> adaptationCheckpoints, @@ -462,6 +481,32 @@

    DEFAULT_MIN_DURATION_TO_RETAIN_AFTER_DISCARD_MS

    + + + +
      +
    • +

      DEFAULT_MAX_WIDTH_TO_DISCARD

      +
      public static final int DEFAULT_MAX_WIDTH_TO_DISCARD
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    + + + +
      +
    • +

      DEFAULT_MAX_HEIGHT_TO_DISCARD

      +
      public static final int DEFAULT_MAX_HEIGHT_TO_DISCARD
      +
      +
      See Also:
      +
      Constant Field Values
      +
      +
    • +
    @@ -516,7 +561,7 @@

    AdaptiveTrackSelection

    - +
      @@ -524,11 +569,13 @@

      AdaptiveTrackSelection

      AdaptiveTrackSelection

      protected AdaptiveTrackSelection​(TrackGroup group,
                                        int[] tracks,
      -                                 int type,
      +                                 @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type,
                                        BandwidthMeter bandwidthMeter,
                                        long minDurationForQualityIncreaseMs,
                                        long maxDurationForQualityDecreaseMs,
                                        long minDurationToRetainAfterDiscardMs,
      +                                 int maxWidthToDiscard,
      +                                 int maxHeightToDiscard,
                                        float bandwidthFraction,
                                        float bufferedFractionToLiveEdgeForQualityIncrease,
                                        List<AdaptiveTrackSelection.AdaptationCheckpoint> adaptationCheckpoints,
      @@ -544,10 +591,14 @@ 

      AdaptiveTrackSelection

      selected track to switch to one of higher quality.
      maxDurationForQualityDecreaseMs - The maximum duration of buffered data required for the selected track to switch to one of lower quality.
      -
      minDurationToRetainAfterDiscardMs - When switching to a track of significantly higher - quality, the selection may indicate that media already buffered at the lower quality can be - discarded to speed up the switch. This is the minimum duration of media that must be - retained at the lower quality. It must be at least minDurationForQualityIncreaseMs.
      +
      minDurationToRetainAfterDiscardMs - When switching to a video track of higher quality, the + selection may indicate that media already buffered at the lower quality can be discarded to + speed up the switch. This is the minimum duration of media that must be retained at the + lower quality. It must be at least minDurationForQualityIncreaseMs.
      +
      maxWidthToDiscard - The maximum video width that the selector may discard from the buffer + to speed up switching to a higher quality.
      +
      maxHeightToDiscard - The maximum video height that the selector may discard from the + buffer to speed up switching to a higher quality.
      bandwidthFraction - The fraction of the available bandwidth that the selection should consider available for use. Setting to a value less than 1 is recommended to account for inaccuracies in the bandwidth estimator.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/BaseTrackSelection.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/BaseTrackSelection.html index cac9144a104..34cb21b1607 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/BaseTrackSelection.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/BaseTrackSelection.html @@ -161,6 +161,13 @@

      Nested Class Summary

      Nested classes/interfaces inherited from interface com.google.android.exoplayer2.trackselection.ExoTrackSelection

      ExoTrackSelection.Definition, ExoTrackSelection.Factory
    + @@ -229,9 +236,9 @@

    Constructor Summary

      -BaseTrackSelection​(TrackGroup group, +BaseTrackSelection​(TrackGroup group, int[] tracks, - int type) + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)   @@ -460,7 +467,7 @@

    BaseTrackSelection

    - +
      @@ -468,7 +475,7 @@

      BaseTrackSelection

      BaseTrackSelection

      public BaseTrackSelection​(TrackGroup group,
                                 int[] tracks,
      -                          int type)
      + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)
      Parameters:
      group - The TrackGroup. Must not be null.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html index d02f0486dae..d8557215814 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10}; +var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -135,7 +135,7 @@

      Class DefaultTra
    • All Implemented Interfaces:
      -
      Parcelable
      +
      Bundleable
      Enclosing class:
      @@ -144,7 +144,7 @@

      Class DefaultTra
      public static final class DefaultTrackSelector.Parameters
       extends TrackSelectionParameters
      -implements Parcelable
      +implements Bundleable
      Extends DefaultTrackSelector.Parameters by adding fields that are specific to DefaultTrackSelector.

    @@ -167,11 +167,11 @@

    Nested classes/interfaces inherited from class com.google.android.exopl TrackSelectionParameters.Builder @@ -233,9 +233,11 @@

    Field Summary

    -static Parcelable.Creator<DefaultTrackSelector.Parameters> +static Bundleable.Creator<DefaultTrackSelector.Parameters> CREATOR -  + +
    Object that can restore Parameters from a Bundle.
    + static DefaultTrackSelector.Parameters @@ -254,7 +256,7 @@

    Field Summary

    -int +@com.google.android.exoplayer2.C.SelectionFlags int disabledTextTrackSelectionFlags
    Bitmask of selection flags that are disabled for text track selections.
    @@ -295,14 +297,7 @@

    Field Summary

    Fields inherited from class com.google.android.exoplayer2.trackselection.TrackSelectionParameters

    -forceHighestSupportedBitrate, forceLowestBitrate, maxAudioBitrate, maxAudioChannelCount, maxVideoBitrate, maxVideoFrameRate, maxVideoHeight, maxVideoWidth, minVideoBitrate, minVideoFrameRate, minVideoHeight, minVideoWidth, preferredAudioLanguages, preferredAudioMimeTypes, preferredAudioRoleFlags, preferredTextLanguages, preferredTextRoleFlags, preferredVideoMimeTypes, selectUndeterminedTextLanguage, viewportHeight, viewportOrientationMayChange, viewportWidth - - @@ -329,30 +324,25 @@

    Method Summary

    -int -describeContents() -  - - boolean equals​(Object obj)   - + static DefaultTrackSelector.Parameters getDefaults​(Context context)
    Returns an instance configured with default values.
    - + boolean getRendererDisabled​(int rendererIndex)
    Returns whether the renderer is disabled.
    - + DefaultTrackSelector.SelectionOverride getSelectionOverride​(int rendererIndex, TrackGroupArray groups) @@ -360,12 +350,12 @@

    Method Summary

    Returns the override for the specified renderer and TrackGroupArray.
    - + int hashCode()   - + boolean hasSelectionOverride​(int rendererIndex, TrackGroupArray groups) @@ -373,11 +363,12 @@

    Method Summary

    Returns whether there is an override for the specified renderer and TrackGroupArray.
    - -void -writeToParcel​(Parcel dest, - int flags) -  + +Bundle +toBundle() + +
    Returns a Bundle representing the information stored in this object.
    +
      @@ -436,15 +427,6 @@

      DEFAULT

    - - - - @@ -452,7 +434,7 @@

    CREATOR

  • disabledTextTrackSelectionFlags

    @SelectionFlags
    -public final int disabledTextTrackSelectionFlags
    +public final @com.google.android.exoplayer2.C.SelectionFlags int disabledTextTrackSelectionFlags
    Bitmask of selection flags that are disabled for text track selections. See C.SelectionFlags. The default value is 0 (i.e. no flags).
  • @@ -564,7 +546,7 @@

    tunnelingEnabled

    -
      +
      • allowMultipleAdaptiveSelections

        public final boolean allowMultipleAdaptiveSelections
        @@ -576,6 +558,16 @@

        allowMultipleAdaptiveSelections

        other track selection parameters.
      + + + +
    @@ -690,34 +682,20 @@

    hashCode

    - - - - - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html index 168ceb60a44..dda76457eed 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html @@ -25,8 +25,8 @@ 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,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var data = {"i0":10,"i1":42,"i2":42,"i3":42,"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,"i38":10,"i39":10,"i40":10,"i41":42,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -187,7 +187,7 @@

    Constructor Summary

    Method Summary

    - + @@ -205,21 +205,27 @@

    Method Summary

    @@ -238,41 +244,48 @@

    Method Summary

    + + + + + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + @@ -361,28 +382,28 @@

    Method Summary

    Sets the maximum allowed video width and height.
    - + - + - + - + @@ -390,49 +411,49 @@

    Method Summary

    Sets the minimum allowed video width and height.
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -476,16 +497,18 @@

    Method Summary

    Sets whether the renderer at the specified index is disabled.
    - + - + - + + + + + + - + - + @@ -581,6 +611,21 @@

    ParametersBuilder

    Method Detail

    + + + + @@ -939,19 +984,19 @@

    setPreferredAudioLanguages

    - + - + - +
    • setDisabledTextTrackSelectionFlags

      public DefaultTrackSelector.ParametersBuilder setDisabledTextTrackSelectionFlags​(@SelectionFlags
      -                                                                                 int disabledTextTrackSelectionFlags)
      + @com.google.android.exoplayer2.C.SelectionFlags int disabledTextTrackSelectionFlags)
      Sets a bitmask of selection flags that are disabled for text track selections.
      Parameters:
      @@ -1278,6 +1323,45 @@

      setForceHighestSupportedBitrate

    + + + + + + + + @@ -1358,10 +1442,14 @@

    setRendererDisabled

    @@ -179,9 +179,11 @@

    Field Summary

    - + - + @@ -199,18 +201,11 @@

    Field Summary

    - +
    All Methods Instance Methods Concrete Methods All Methods Instance Methods Concrete Methods Deprecated Methods 
    Modifier and Type Method clearSelectionOverride​(int rendererIndex, TrackGroupArray groups) -
    Clears a track selection override for the specified renderer and TrackGroupArray.
    +
    DefaultTrackSelector.ParametersBuilder clearSelectionOverrides() -
    Clears all track selection overrides for all renderers.
    +
    DefaultTrackSelector.ParametersBuilder clearSelectionOverrides​(int rendererIndex) -
    Clears all track selection overrides for the specified renderer.
    +
    protected DefaultTrackSelector.ParametersBuilderset​(TrackSelectionParameters parameters) +
    Overrides the value of the builder with the value of TrackSelectionParameters.
    +
    DefaultTrackSelector.ParametersBuilder setAllowAudioMixedChannelCountAdaptiveness​(boolean allowAudioMixedChannelCountAdaptiveness)
    Sets whether to allow adaptive audio selections containing mixed channel counts.
    DefaultTrackSelector.ParametersBuilder setAllowAudioMixedMimeTypeAdaptiveness​(boolean allowAudioMixedMimeTypeAdaptiveness)
    Sets whether to allow adaptive audio selections containing mixed MIME types.
    DefaultTrackSelector.ParametersBuilder setAllowAudioMixedSampleRateAdaptiveness​(boolean allowAudioMixedSampleRateAdaptiveness)
    Sets whether to allow adaptive audio selections containing mixed sample rates.
    DefaultTrackSelector.ParametersBuilder setAllowMultipleAdaptiveSelections​(boolean allowMultipleAdaptiveSelections)
    Sets whether multiple adaptive selections with more than one track are allowed.
    DefaultTrackSelector.ParametersBuilder setAllowVideoMixedMimeTypeAdaptiveness​(boolean allowVideoMixedMimeTypeAdaptiveness)
    Sets whether to allow adaptive video selections containing mixed MIME types.
    DefaultTrackSelector.ParametersBuilder setAllowVideoNonSeamlessAdaptiveness​(boolean allowVideoNonSeamlessAdaptiveness) @@ -280,28 +293,36 @@

    Method Summary

    seamless.
    DefaultTrackSelector.ParametersBuildersetDisabledTextTrackSelectionFlags​(int disabledTextTrackSelectionFlags)setDisabledTextTrackSelectionFlags​(@com.google.android.exoplayer2.C.SelectionFlags int disabledTextTrackSelectionFlags)
    Sets a bitmask of selection flags that are disabled for text track selections.
    DefaultTrackSelector.ParametersBuildersetDisabledTrackTypes​(Set<@TrackType Integer> disabledTrackTypes) +
    Sets the disabled track types, preventing all tracks of those types from being selected for + playback.
    +
    DefaultTrackSelector.ParametersBuilder setExceedAudioConstraintsIfNecessary​(boolean exceedAudioConstraintsIfNecessary)
    Sets whether to exceed the setMaxAudioChannelCount(int) and setMaxAudioBitrate(int) constraints when no selection can be made otherwise.
    DefaultTrackSelector.ParametersBuilder setExceedRendererCapabilitiesIfNecessary​(boolean exceedRendererCapabilitiesIfNecessary)
    Sets whether to exceed renderer capabilities when no selection can be made otherwise.
    DefaultTrackSelector.ParametersBuilder setExceedVideoConstraintsIfNecessary​(boolean exceedVideoConstraintsIfNecessary) @@ -309,7 +330,7 @@

    Method Summary

    and setMaxVideoFrameRate(int) constraints when no selection can be made otherwise.
    DefaultTrackSelector.ParametersBuilder setForceHighestSupportedBitrate​(boolean forceHighestSupportedBitrate) @@ -317,7 +338,7 @@

    Method Summary

    with all other constraints.
    DefaultTrackSelector.ParametersBuilder setForceLowestBitrate​(boolean forceLowestBitrate) @@ -325,35 +346,35 @@

    Method Summary

    comply with all other constraints.
    DefaultTrackSelector.ParametersBuilder setMaxAudioBitrate​(int maxAudioBitrate)
    Sets the maximum allowed audio bitrate.
    DefaultTrackSelector.ParametersBuilder setMaxAudioChannelCount​(int maxAudioChannelCount)
    Sets the maximum allowed audio channel count.
    DefaultTrackSelector.ParametersBuilder setMaxVideoBitrate​(int maxVideoBitrate)
    Sets the maximum allowed video bitrate.
    DefaultTrackSelector.ParametersBuilder setMaxVideoFrameRate​(int maxVideoFrameRate)
    Sets the maximum allowed video frame rate.
    DefaultTrackSelector.ParametersBuilder setMaxVideoSize​(int maxVideoWidth, int maxVideoHeight)
    DefaultTrackSelector.ParametersBuilder setMaxVideoSizeSd()
    DefaultTrackSelector.ParametersBuilder setMinVideoBitrate​(int minVideoBitrate)
    Sets the minimum allowed video bitrate.
    DefaultTrackSelector.ParametersBuilder setMinVideoFrameRate​(int minVideoFrameRate)
    Sets the minimum allowed video frame rate.
    DefaultTrackSelector.ParametersBuilder setMinVideoSize​(int minVideoWidth, int minVideoHeight)
    DefaultTrackSelector.ParametersBuilder setPreferredAudioLanguage​(String preferredAudioLanguage)
    Sets the preferred language for audio and forced text tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredAudioLanguages​(String... preferredAudioLanguages)
    Sets the preferred languages for audio and forced text tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredAudioMimeType​(String mimeType)
    Sets the preferred sample MIME type for audio tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredAudioMimeTypes​(String... mimeTypes)
    Sets the preferred sample MIME types for audio tracks.
    DefaultTrackSelector.ParametersBuildersetPreferredAudioRoleFlags​(int preferredAudioRoleFlags)setPreferredAudioRoleFlags​(@com.google.android.exoplayer2.C.RoleFlags int preferredAudioRoleFlags)
    Sets the preferred C.RoleFlags for audio tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredTextLanguage​(String preferredTextLanguage)
    Sets the preferred language for text tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings​(Context context) @@ -440,35 +461,35 @@

    Method Summary

    settings of CaptioningManager.
    DefaultTrackSelector.ParametersBuilder setPreferredTextLanguages​(String... preferredTextLanguages)
    Sets the preferred languages for text tracks.
    DefaultTrackSelector.ParametersBuildersetPreferredTextRoleFlags​(int preferredTextRoleFlags)setPreferredTextRoleFlags​(@com.google.android.exoplayer2.C.RoleFlags int preferredTextRoleFlags)
    Sets the preferred C.RoleFlags for text tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredVideoMimeType​(String mimeType)
    Sets the preferred sample MIME type for video tracks.
    DefaultTrackSelector.ParametersBuilder setPreferredVideoMimeTypes​(String... mimeTypes)
    Sets the preferred sample MIME types for video tracks.
    DefaultTrackSelector.ParametersBuilder setRendererDisabled​(int rendererIndex, boolean disabled)
    DefaultTrackSelector.ParametersBuilder setSelectionOverride​(int rendererIndex, TrackGroupArray groups, DefaultTrackSelector.SelectionOverride override) -
    Overrides the track selection for the renderer at the specified index.
    +
    DefaultTrackSelector.ParametersBuilder setSelectUndeterminedTextLanguage​(boolean selectUndeterminedTextLanguage) @@ -494,14 +517,21 @@

    Method Summary

    preferred language is unset.
    DefaultTrackSelector.ParametersBuildersetTrackSelectionOverrides​(TrackSelectionOverrides trackSelectionOverrides) +
    Sets the selection overrides.
    +
    DefaultTrackSelector.ParametersBuilder setTunnelingEnabled​(boolean tunnelingEnabled)
    Sets whether to enable tunneling if possible.
    DefaultTrackSelector.ParametersBuilder setViewportSize​(int viewportWidth, int viewportHeight, @@ -511,7 +541,7 @@

    Method Summary

    for the viewport are selected.
    DefaultTrackSelector.ParametersBuilder setViewportSizeToPhysicalDisplaySize​(Context context, boolean viewportOrientationMayChange) Description
    static Parcelable.Creator<DefaultTrackSelector.SelectionOverride>static Bundleable.Creator<DefaultTrackSelector.SelectionOverride> CREATOR  +
    Object that can restore SelectionOverride from a Bundle.
    +
    int  
    int@com.google.android.exoplayer2.trackselection.TrackSelection.Type int type  
    - @@ -230,13 +225,17 @@

    Constructor Summary

    SelectionOverride​(int groupIndex, int... tracks) -  + +
    Constructs a SelectionOverride to override tracks of a group.
    + -SelectionOverride​(int groupIndex, +SelectionOverride​(int groupIndex, int[] tracks, - int type) -  + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type) + +
    Constructs a SelectionOverride of the given type to override tracks of a group.
    + @@ -264,25 +263,21 @@

    Method Summary

    -int -describeContents() -  - - boolean equals​(Object obj)   - + int hashCode()   - -void -writeToParcel​(Parcel dest, - int flags) -  + +Bundle +toBundle() + +
    Returns a Bundle representing the information stored in this object.
    + - +
      @@ -386,7 +383,8 @@

      SelectionOverride

      SelectionOverride

      public SelectionOverride​(int groupIndex,
                                int[] tracks,
      -                         int type)
      + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type) +
      Constructs a SelectionOverride of the given type to override tracks of a group.
      Parameters:
      groupIndex - The overriding track group index.
      @@ -442,30 +440,18 @@

      equals

    - - - - - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html index 1ba7376dee8..6e0eb559fce 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html @@ -25,7 +25,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":9,"i2":10,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10}; +var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":9,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10}; var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -146,7 +146,7 @@

    Class DefaultTrackSelector<
    public class DefaultTrackSelector
     extends MappingTrackSelector
    A default TrackSelector suitable for most use cases. Track selections are made according - to configurable DefaultTrackSelector.Parameters, which can be set by calling setParameters(Parameters). + to configurable DefaultTrackSelector.Parameters, which can be set by calling Player.setTrackSelectionParameters(com.google.android.exoplayer2.trackselection.TrackSelectionParameters).

    Modifying parameters

    @@ -158,25 +158,26 @@

    Modifying parameters

    
      // Build on the current parameters.
    - Parameters currentParameters = trackSelector.getParameters();
    + TrackSelectionParameters currentParameters = player.getTrackSelectionParameters();
      // Build the resulting parameters.
    - Parameters newParameters = currentParameters
    + TrackSelectionParameters newParameters = currentParameters
          .buildUpon()
          .setMaxVideoSizeSd()
          .setPreferredAudioLanguage("deu")
          .build();
      // Set the new parameters.
    - trackSelector.setParameters(newParameters);
    + player.setTrackSelectionParameters(newParameters);
      
    Convenience methods and chaining allow this to be written more concisely as:
    
    - trackSelector.setParameters(
    -     trackSelector
    -         .buildUponParameters()
    + player.setTrackSelectionParameters(
    +     player.getTrackSelectionParameters()
    +         .buildUpon()
              .setMaxVideoSizeSd()
    -         .setPreferredAudioLanguage("deu"));
    +         .setPreferredAudioLanguage("deu")
    +         .build());
      
    Selection DefaultTrackSelector.Parameters support many different options, some of which are described below. @@ -202,10 +203,11 @@

    Selecting specific tracks

    
      SelectionOverride selectionOverride = new SelectionOverride(groupIndex, trackIndices);
    - trackSelector.setParameters(
    -     trackSelector
    -         .buildUponParameters()
    -         .setSelectionOverride(rendererIndex, rendererTrackGroups, selectionOverride));
    + player.setTrackSelectionParameters(
    +     ((Parameters)player.getTrackSelectionParameters())
    +         .buildUpon()
    +         .setSelectionOverride(rendererIndex, rendererTrackGroups, selectionOverride)
    +         .build());
      

    Constraint based track selection

    @@ -217,11 +219,12 @@

    Constraint based track selection

    a simpler and more flexible approach is to specify these constraints directly:
    
    - trackSelector.setParameters(
    -     trackSelector
    -         .buildUponParameters()
    + player.setTrackSelectionParameters(
    +     player.getTrackSelectionParameters()
    +         .buildUpon()
              .setMaxVideoSizeSd()
    -         .setPreferredAudioLanguage("deu"));
    +         .setPreferredAudioLanguage("deu")
    +         .build());
      
    There are several benefits to using constraint based track selection instead of specific track @@ -415,10 +418,17 @@

    Method Summary

    DefaultTrackSelector.Parameters getParameters() -
    Gets the current selection parameters.
    +
    Returns the current parameters for track selection.
    +boolean +isSetParametersSupported() + +
    Returns if this TrackSelector supports TrackSelector.setParameters(TrackSelectionParameters).
    + + + protected static boolean isSupported​(int formatSupport, boolean allowExceedsCapabilities) @@ -427,14 +437,25 @@

    Method Summary

    C.FORMAT_EXCEEDS_CAPABILITIES.
    - + +protected @NullableType ExoTrackSelection.Definition +maybeApplyOverride​(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, + DefaultTrackSelector.Parameters params, + int rendererIndex, + @NullableType ExoTrackSelection.Definition currentDefinition) + +
    Returns the ExoTrackSelection.Definition of a renderer after applying selection + overriding and renderer disabling.
    + + + protected static String normalizeUndeterminedLanguageToNull​(String language)
    Normalizes the input string to null if it does not define a language, or returns it otherwise.
    - + protected @NullableType ExoTrackSelection.Definition[] selectAllTracks​(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, int[][][] rendererFormatSupports, @@ -446,7 +467,7 @@

    Method Summary

    applied. - + protected Pair<ExoTrackSelection.Definition,​DefaultTrackSelector.AudioTrackScore> selectAudioTrack​(TrackGroupArray groups, int[][] formatSupport, @@ -458,7 +479,7 @@

    Method Summary

    ExoTrackSelection for an audio renderer. - + protected ExoTrackSelection.Definition selectOtherTrack​(int trackType, TrackGroupArray groups, @@ -469,7 +490,7 @@

    Method Summary

    ExoTrackSelection for a renderer whose type is neither video, audio or text. - + protected Pair<ExoTrackSelection.Definition,​DefaultTrackSelector.TextTrackScore> selectTextTrack​(TrackGroupArray groups, int[][] formatSupport, @@ -480,7 +501,7 @@

    Method Summary

    ExoTrackSelection for a text renderer. - + protected Pair<@NullableType RendererConfiguration[],​@NullableType ExoTrackSelection[]> selectTracks​(MappingTrackSelector.MappedTrackInfo mappedTrackInfo, int[][][] rendererFormatSupports, @@ -491,7 +512,7 @@

    Method Summary

    Given mapped track information, returns a track selection and configuration for each renderer.
    - + protected ExoTrackSelection.Definition selectVideoTrack​(TrackGroupArray groups, int[][] formatSupport, @@ -503,18 +524,18 @@

    Method Summary

    ExoTrackSelection for a video renderer. - + void -setParameters​(DefaultTrackSelector.Parameters parameters) +setParameters​(DefaultTrackSelector.ParametersBuilder parametersBuilder)
    Atomically sets the provided parameters for track selection.
    - + void -setParameters​(DefaultTrackSelector.ParametersBuilder parametersBuilder) +setParameters​(TrackSelectionParameters parameters) -
    Atomically sets the provided parameters for track selection.
    +
    Called by the player to provide parameters for track selection.
    @@ -634,45 +655,68 @@

    DefaultTrackSelector

    Method Detail

    - + - + + + + + - +
    • -

      getParameters

      -
      public DefaultTrackSelector.Parameters getParameters()
      -
      Gets the current selection parameters.
      +

      setParameters

      +
      public void setParameters​(DefaultTrackSelector.ParametersBuilder parametersBuilder)
      +
      Atomically sets the provided parameters for track selection.
      -
      Returns:
      -
      The current selection parameters.
      +
      Parameters:
      +
      parametersBuilder - A builder from which to obtain the parameters for track selection.
    @@ -723,6 +767,20 @@

    selectTracks

    + + + + diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.Definition.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.Definition.html index 2dd1d2b8340..ababaf72cc0 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.Definition.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.Definition.html @@ -165,7 +165,7 @@

    Field Summary

    -int +@com.google.android.exoplayer2.trackselection.TrackSelection.Type int type
    The type that will be returned from TrackSelection.getType().
    @@ -194,9 +194,9 @@

    Constructor Summary

      -Definition​(TrackGroup group, +Definition​(TrackGroup group, int[] tracks, - int type) + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)   @@ -259,7 +259,7 @@

    tracks

    • type

      -
      public final int type
      +
      public final @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type
      The type that will be returned from TrackSelection.getType().
    @@ -289,7 +289,7 @@

    Definition

    - +
      @@ -297,7 +297,7 @@

      Definition

      Definition

      public Definition​(TrackGroup group,
                         int[] tracks,
      -                  int type)
      + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)
      Parameters:
      group - The TrackGroup. Must not be null.
      diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.html index 3d1c5ea47c5..10e07433b10 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/ExoTrackSelection.html @@ -168,6 +168,13 @@

      Nested Class Summary

      +
    diff --git a/docs/doc/reference/com/google/android/exoplayer2/trackselection/FixedTrackSelection.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/FixedTrackSelection.html index da40da4b813..cd0d6e34ac7 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/trackselection/FixedTrackSelection.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/FixedTrackSelection.html @@ -161,6 +161,13 @@

    Nested Class Summary

    Nested classes/interfaces inherited from interface com.google.android.exoplayer2.trackselection.ExoTrackSelection

    ExoTrackSelection.Definition, ExoTrackSelection.Factory + @@ -207,15 +214,15 @@

    Constructor Summary

      -FixedTrackSelection​(TrackGroup group, +FixedTrackSelection​(TrackGroup group, int track, - int type) + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)   -FixedTrackSelection​(TrackGroup group, +FixedTrackSelection​(TrackGroup group, int track, - int type, + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type, int reason, Object data)   @@ -323,7 +330,7 @@

    FixedTrackSelection

    - +
      @@ -331,7 +338,7 @@

      FixedTrackSelection

      FixedTrackSelection

      public FixedTrackSelection​(TrackGroup group,
                                  int track,
      -                           int type)
      + @com.google.android.exoplayer2.trackselection.TrackSelection.Type int type)
      Parameters:
      group - The TrackGroup. Must not be null.
      @@ -340,7 +347,7 @@

      FixedTrackSelection

    - + diff --git a/docs/doc/reference/com/google/android/exoplayer2/device/package-summary.html b/docs/doc/reference/com/google/android/exoplayer2/trackselection/TrackSelection.Type.html similarity index 66% rename from docs/doc/reference/com/google/android/exoplayer2/device/package-summary.html rename to docs/doc/reference/com/google/android/exoplayer2/trackselection/TrackSelection.Type.html index 4b3d17cefc6..f6817691e2f 100644 --- a/docs/doc/reference/com/google/android/exoplayer2/device/package-summary.html +++ b/docs/doc/reference/com/google/android/exoplayer2/trackselection/TrackSelection.Type.html @@ -2,7 +2,7 @@ -com.google.android.exoplayer2.device (ExoPlayer library) +TrackSelection.Type (ExoPlayer library) @@ -19,7 +19,7 @@ +
    -

    Package com.google.android.exoplayer2.device

    + +

    Annotation Type TrackSelection.Type

    +
    +
    +