Clean up release notes for 2.12: UI, downloads, DRM

PiperOrigin-RevId: 326427225
This commit is contained in:
olly 2020-08-13 13:24:44 +01:00 committed by kim-vde
parent 039af76b0e
commit 339e3f899d

View File

@ -40,6 +40,7 @@
* Add `Player.EventListener.onMediaItemTransition` with reasons. * Add `Player.EventListener.onMediaItemTransition` with reasons.
* Add `Player.setAudioSessionId` to set the session ID attached to the * Add `Player.setAudioSessionId` to set the session ID attached to the
`AudioTrack`. `AudioTrack`.
* Add `Player.getTrackSelector`.
* Deprecate and rename `getPlaybackError` to `getPlayerError` for * Deprecate and rename `getPlaybackError` to `getPlayerError` for
consistency. consistency.
* Deprecate and rename `onLoadingChanged` to `onIsLoadingChanged` for * Deprecate and rename `onLoadingChanged` to `onIsLoadingChanged` for
@ -81,6 +82,9 @@
* Add media item based playlist API to `Player`. * Add media item based playlist API to `Player`.
* Add `getCurrentMediaItem` to `Player`. * Add `getCurrentMediaItem` to `Player`.
* Remove deprecated members in `DefaultTrackSelector`. * Remove deprecated members in `DefaultTrackSelector`.
* Add `DefaultTrackSelector` constraints for minimum video resolution,
bitrate and frame rate
([#4511](https://github.com/google/ExoPlayer/issues/4511)).
* Add `Player.DeviceComponent` and implement it for `SimpleExoPlayer` so * Add `Player.DeviceComponent` and implement it for `SimpleExoPlayer` so
that the device volume can be controlled by player. that the device volume can be controlled by player.
* Parse track titles from Matroska files * Parse track titles from Matroska files
@ -104,6 +108,9 @@
`AnalyticsListener.onPlayerError`. `AnalyticsListener.onPlayerError`.
* Remove onMediaPeriodCreated/Released/ReadingStarted from * Remove onMediaPeriodCreated/Released/ReadingStarted from
`MediaSourceEventListener` and `AnalyticsListener`. `MediaSourceEventListener` and `AnalyticsListener`.
* Dispatch previous, next, fast forward and rewind actions through
`ControlDispatcher`
([#6926](https://github.com/google/ExoPlayer/issues/6926)).
* Add Guava dependency. * Add Guava dependency.
* Video: Pass frame rate hint to `Surface.setFrameRate` on Android R devices. * Video: Pass frame rate hint to `Surface.setFrameRate` on Android R devices.
* Audio: * Audio:
@ -210,55 +217,52 @@
failing playback failing playback
([#7675](https://github.com/google/ExoPlayer/issues/7675)). ([#7675](https://github.com/google/ExoPlayer/issues/7675)).
* UI * UI
* Add `StyledPlayerView` and `StyledPlayerControlView`. * Add `StyledPlayerView` and `StyledPlayerControlView`, which provide a
* Remove `SimpleExoPlayerView` and `PlaybackControlView`. more polished user experience than `PlayerView` and `PlayerControlView`
* Remove deperecated `exo_simple_player_view.xml` and at the cost of decreased customizability.
`exo_playback_control_view.xml` from resource. * Remove the previously deprecated `SimpleExoPlayerView` and
`PlaybackControlView` classes, along with the corresponding
`exo_simple_player_view.xml` and `exo_playback_control_view.xml` layout
resources. Use the equivalent `PlayerView`, `PlayerControlView`,
`exo_player_view.xml` and `exo_player_control_view.xml` instead.
* Add setter methods to `PlayerView` and `PlayerControlView` to set * Add setter methods to `PlayerView` and `PlayerControlView` to set
whether the rewind, fast forward, previous and next buttons are shown whether the rewind, fast forward, previous and next buttons are shown
([#7410](https://github.com/google/ExoPlayer/issues/7410)). ([#7410](https://github.com/google/ExoPlayer/issues/7410)).
* Move logic of prev, next, fast forward and rewind to ControlDispatcher * Update `TrackSelectionDialogBuilder` to use the AndroidX app compat
([#6926](https://github.com/google/ExoPlayer/issues/6926)). `AlertDialog` rather than the platform version, if available
* Update `TrackSelectionDialogBuilder` to use AndroidX Compat Dialog
([#7357](https://github.com/google/ExoPlayer/issues/7357)). ([#7357](https://github.com/google/ExoPlayer/issues/7357)).
* Track selection:
* Add `Player.getTrackSelector`.
* Remove deprecated members in `DefaultTrackSelector`.
* Add `DefaultTrackSelector` constraints for minimum video resolution,
bitrate and frame rate
([#4511](https://github.com/google/ExoPlayer/issues/4511)).
* Downloads and caching: * Downloads and caching:
* Add support for offline DRM playbacks. * Add `DownloadRequest.Builder`.
* Add builder in `DownloadRequest`. * Add `DownloadRequest.keySetId` to make it easier to store an offline
license keyset identifier alongside the other information that's
persisted in `DownloadIndex`.
* Support passing an `Executor` to `DefaultDownloaderFactory` on which * Support passing an `Executor` to `DefaultDownloaderFactory` on which
data downloads are performed. data downloads are performed.
* Parallelize and merge downloads in `SegmentDownloader` to improve * Parallelize and merge downloads in `SegmentDownloader` to improve
overall download speed download speeds
([#5978](https://github.com/google/ExoPlayer/issues/5978)). ([#5978](https://github.com/google/ExoPlayer/issues/5978)).
* Support multiple non-overlapping write locks for the same key in
`SimpleCache`.
* Replace `CacheDataSinkFactory` and `CacheDataSourceFactory` with * Replace `CacheDataSinkFactory` and `CacheDataSourceFactory` with
`CacheDataSink.Factory` and `CacheDataSource.Factory` respectively. `CacheDataSink.Factory` and `CacheDataSource.Factory` respectively.
* Remove `DownloadConstructorHelper` and use `CacheDataSource.Factory` * Remove `DownloadConstructorHelper` and instead use
directly instead. `CacheDataSource.Factory` directly.
* Update `CachedContentIndex` to use `SecureRandom` for generating the
initialization vector used to encrypt the cache contents.
* Add `Requirements.DEVICE_STORAGE_NOT_LOW`, which can be specified as a * Add `Requirements.DEVICE_STORAGE_NOT_LOW`, which can be specified as a
requirement to a `DownloadManager` for it to proceed with downloading. requirement to a `DownloadManager` for it to proceed with downloading.
* For failed downloads, propagate the `Exception` that caused the failure * For failed downloads, propagate the `Exception` that caused the failure
to `DownloadManager.Listener.onDownloadChanged`. to `DownloadManager.Listener.onDownloadChanged`.
* Support multiple non-overlapping write locks for the same key in
`SimpleCache`.
* DRM: * DRM:
* Remove `DrmSessionManager` references from all renderers. * Remove previously deprecated APIs to inject `DrmSessionManager` into
`DrmSessionManager` must be injected into the MediaSources using the `Renderer` instances. `DrmSessionManager` must now be injected into
MediaSources factories. `MediaSource` instances via the `MediaSource` factories.
* Add option to inject a custom `DefaultDrmSessionManager` into * Add the ability to inject a custom `DefaultDrmSessionManager` into
`OfflineLicenseHelper` `OfflineLicenseHelper`
([#7078](https://github.com/google/ExoPlayer/issues/7078)). ([#7078](https://github.com/google/ExoPlayer/issues/7078)).
* Remove generics from DRM components.
* Keep DRM sessions alive for a short time before fully releasing them * Keep DRM sessions alive for a short time before fully releasing them
([#7011](https://github.com/google/ExoPlayer/issues/7011), ([#7011](https://github.com/google/ExoPlayer/issues/7011),
[#6725](https://github.com/google/ExoPlayer/issues/6725), [#6725](https://github.com/google/ExoPlayer/issues/6725),
[#7066](https://github.com/google/ExoPlayer/issues/7066)). [#7066](https://github.com/google/ExoPlayer/issues/7066)).
* Remove generic types from DRM components.
* Test utils: Add `TestExoPlayer`, a utility class with APIs to create * Test utils: Add `TestExoPlayer`, a utility class with APIs to create
`SimpleExoPlayer` instances with fake components for testing. `SimpleExoPlayer` instances with fake components for testing.
* Media2 extension: This is a new extension that makes it easy to use * Media2 extension: This is a new extension that makes it easy to use
@ -289,6 +293,7 @@
to clear audio and video tracks. to clear audio and video tracks.
* Add `clip_start_position_ms` and `clip_end_position_ms` to allow * Add `clip_start_position_ms` and `clip_end_position_ms` to allow
clipped samples. clipped samples.
* Use `StyledPlayerControlView` rather than `PlayerView`.
* Remove support for media tunneling, random ABR and playback of * Remove support for media tunneling, random ABR and playback of
spherical video. Developers wishing to experiment with these features spherical video. Developers wishing to experiment with these features
can enable them by modifying the demo app source code. can enable them by modifying the demo app source code.