mirror of
https://github.com/androidx/media.git
synced 2025-05-15 19:49:50 +08:00
Bump version to 2.15.0 and tidy release notes
PiperOrigin-RevId: 389871495
This commit is contained in:
parent
067fcdb89d
commit
f34446123d
211
RELEASENOTES.md
211
RELEASENOTES.md
@ -1,22 +1,46 @@
|
|||||||
# Release notes
|
# Release notes
|
||||||
|
|
||||||
### dev-v2 (not yet released)
|
### dev-v2 (not yet released)
|
||||||
|
* Core Library:
|
||||||
|
* Move `com.google.android.exoplayer2.device.DeviceInfo` to
|
||||||
|
`com.google.android.exoplayer2.DeviceInfo`.
|
||||||
|
* Android 12 compatibility:
|
||||||
|
* 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`.
|
||||||
|
* GVR extension:
|
||||||
|
* Remove `GvrAudioProcessor`, which has been deprecated since 2.11.0.
|
||||||
|
* 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.
|
||||||
|
|
||||||
|
### 2.15.0 (2021-08-10)
|
||||||
|
|
||||||
* Core Library:
|
* Core Library:
|
||||||
* Add `needsReconfiguration` API to the `MediaCodecAdapter` interface.
|
* Add `MediaCodecAdapter.needsReconfiguration` method.
|
||||||
* Add `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement` and
|
* Add `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement`,
|
||||||
`seekForward` methods to `Player`.
|
`seekForward`, `getMaxSeekToPreviousPosition`, `seekToPrevious` and
|
||||||
* Add `getMaxSeekToPreviousPosition`, `seekToPrevious` and `seekToNext`
|
`seekToNext` methods to `Player`.
|
||||||
methods to `Player`.
|
* Rename `Player` methods:
|
||||||
* Rename `Player` methods `hasPrevious`, `previous`, `hasNext` and `next`
|
* `hasPrevious` to `hasPreviousWindow`.
|
||||||
to `hasPreviousWindow`, `seekToPreviousWindow`, `hasNextWindow` and
|
* `previous` to `seekToPreviousWindow`.
|
||||||
`seekToNextWindow`, respectively.
|
* `hasNext` to `hasNextWindow`.
|
||||||
* Rename `Player` commands `COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`,
|
* `next` to `seekToNextWindow`.
|
||||||
`COMMAND_SEEK_TO_NEXT_MEDIA_ITEM`,
|
* Rename `Player` commands:
|
||||||
`COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM`, `COMMAND_SEEK_TO_MEDIA_ITEM` and
|
* `COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM` to
|
||||||
`COMMAND_GET_MEDIA_ITEMS` to `COMMAND_SEEK_IN_CURRENT_WINDOW`,
|
`COMMAND_SEEK_IN_CURRENT_WINDOW`.
|
||||||
`COMMAND_SEEK_TO_NEXT_WINDOW`, `COMMAND_SEEK_TO_PREVIOUS_WINDOW`,
|
* `COMMAND_SEEK_TO_NEXT_MEDIA_ITEM` to `COMMAND_SEEK_TO_NEXT_WINDOW`.
|
||||||
`COMMAND_SEEK_TO_WINDOW` and `COMMAND_GET_TIMELINE`, respectively.
|
* `COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM` to
|
||||||
|
`COMMAND_SEEK_TO_PREVIOUS_WINDOW`.
|
||||||
|
* `COMMAND_SEEK_TO_MEDIA_ITEM` to `COMMAND_SEEK_TO_WINDOW`.
|
||||||
|
* `COMMAND_GET_MEDIA_ITEMS` to `COMMAND_GET_TIMELINE`.
|
||||||
|
* Rename `Player.EventFlags` IntDef to `Player.Event`.
|
||||||
* Make `Player` depend on the new `PlaybackException` class instead of
|
* Make `Player` depend on the new `PlaybackException` class instead of
|
||||||
`ExoPlaybackException`:
|
`ExoPlaybackException`:
|
||||||
* `Player.getPlayerError` now returns a `PlaybackException`.
|
* `Player.getPlayerError` now returns a `PlaybackException`.
|
||||||
@ -29,69 +53,33 @@
|
|||||||
users can downcast the `PlaybackException` instance to obtain
|
users can downcast the `PlaybackException` instance to obtain
|
||||||
implementation-specific fields (like
|
implementation-specific fields (like
|
||||||
`ExoPlaybackException.rendererIndex`).
|
`ExoPlaybackException.rendererIndex`).
|
||||||
* `PlaybackException` introduces an `errorCode` which identifies the
|
* `PlaybackException` introduces an `errorCode` which identifies the cause
|
||||||
cause of the failure in order to simplify error handling
|
of the failure in order to simplify error handling
|
||||||
([#1611](https://github.com/google/ExoPlayer/issues/1611)).
|
([#1611](https://github.com/google/ExoPlayer/issues/1611)).
|
||||||
* Add `@FallbackType` to `LoadErrorHandlingPolicy` to support
|
|
||||||
customization of the exclusion duration for locations and tracks.
|
|
||||||
* Rename `Player.EventFlags` IntDef to `Player.Event`.
|
|
||||||
* Add a `DefaultMediaDescriptionAdapter` for the
|
* Add a `DefaultMediaDescriptionAdapter` for the
|
||||||
`PlayerNotificationManager`, that makes use of the `Player`
|
`PlayerNotificationManager`, that makes use of the `Player`
|
||||||
`MediaMetadata` to populate the notification fields.
|
`MediaMetadata` to populate the notification fields.
|
||||||
* Deprecate `Player.getCurrentStaticMetadata`,
|
* Add `@FallbackType` to `LoadErrorHandlingPolicy` to support
|
||||||
`Player.Listener.onStaticMetadataChanged` and
|
customization of the exclusion duration for locations and tracks.
|
||||||
`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()`.
|
|
||||||
* Deprecate `ControlDispatcher` and `DefaultControlDispatcher`. Use a
|
|
||||||
`ForwardingPlayer` or configure the player to customize operations.
|
|
||||||
* Change interface of `LoadErrorHandlingPolicy` to support configuring the
|
* Change interface of `LoadErrorHandlingPolicy` to support configuring the
|
||||||
behavior of track and location fallback. Location fallback is currently
|
behavior of track and location fallback. Location fallback is currently
|
||||||
only supported for DASH manifests with multiple base URLs.
|
only supported for DASH manifests with multiple base URLs.
|
||||||
* Disable platform transcoding when playing content URIs on Android 12.
|
|
||||||
* Restrict use of `AudioTrack.isDirectPlaybackSupported` to TVs, to avoid
|
* Restrict use of `AudioTrack.isDirectPlaybackSupported` to TVs, to avoid
|
||||||
listing audio offload encodings as supported for passthrough mode on
|
listing audio offload encodings as supported for passthrough mode on
|
||||||
mobile devices
|
mobile devices
|
||||||
([#9239](https://github.com/google/ExoPlayer/issues/9239)).
|
([#9239](https://github.com/google/ExoPlayer/issues/9239)).
|
||||||
* Remove deprecated symbols:
|
* Extractors:
|
||||||
* Remove `Player.getPlaybackError`. Use `Player.getPlayerError` instead.
|
* Add support for DTS-UHD in MP4
|
||||||
* Remove `Player.getCurrentTag`. Use `Player.getCurrentMediaItem` and
|
([#9163](https://github.com/google/ExoPlayer/issues/9163)).
|
||||||
`MediaItem.PlaybackProperties.tag` instead.
|
* Text:
|
||||||
* Remove `Player.Listener.onTimelineChanged(Timeline, Object, int)`. Use
|
* TTML: Inherit the `rubyPosition` value from a containing `<span
|
||||||
`Player.Listener.onTimelineChanged(Timeline, int)` instead. The manifest
|
ruby="container">` element.
|
||||||
can be accessed using `Player.getCurrentManifest`.
|
* WebVTT: Add support for CSS `font-size` property
|
||||||
* Remove `PlaybackPreparer`. UI components that previously had
|
([#8964](https://github.com/google/ExoPlayer/issues/8964)).
|
||||||
`setPlaybackPreparer` methods will now call `Player.prepare` by default.
|
* Ad playback:
|
||||||
If this behavior is sufficient, use of `PlaybackPreparer` can be removed
|
* Support changing ad break positions in the player logic
|
||||||
from application code without replacement. For custom preparation logic,
|
([#5067](https://github.com/google/ExoPlayer/issues/5067)).
|
||||||
use a `ForwardingPlayer` that implements custom preparation logic in
|
* Support resuming content with an offset after an ad group.
|
||||||
`prepare`.
|
|
||||||
* Remove `setRewindIncrementMs` and `setFastForwardIncrementMs` from UI
|
|
||||||
components. These increments can be customized by configuring the
|
|
||||||
`Player` (see `setSeekBackIncrementMs` and `setSeekForwardIncrementMs`
|
|
||||||
in `SimpleExoPlayer.Builder`), or by using a `ForwardingPlayer` that
|
|
||||||
overrides `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement`
|
|
||||||
and `seekForward`. The rewind and fast forward buttons can be disabled
|
|
||||||
by using a `ForwardingPlayer` that removes `COMMAND_SEEK_BACK` and
|
|
||||||
`COMMAND_SEEK_FORWARD` from the available commands.
|
|
||||||
* Remove `PlayerNotificationManager` constructors and `createWith`
|
|
||||||
methods. Use `PlayerNotificationManager.Builder` instead.
|
|
||||||
* Remove `PlayerNotificationManager.setNotificationListener`. Use
|
|
||||||
`PlayerNotificationManager.Builder.setNotificationListener` instead.
|
|
||||||
* Remove `PlayerNotificationManager` `setUseNavigationActions` and
|
|
||||||
`setUseNavigationActionsInCompactView`. Use `setUseNextAction`,
|
|
||||||
`setUsePreviousAction`, `setUseNextActionInCompactView` and
|
|
||||||
`setUsePreviousActionInCompactView` instead.
|
|
||||||
* Remove `Format.create` methods. Use `Format.Builder` instead.
|
|
||||||
* Remove `Timeline.getWindow(int, Window, boolean)`. Use
|
|
||||||
`Timeline.getWindow(int, Window)` instead, which will always set tags.
|
|
||||||
* Remove `MediaSource.getTag`. Use `MediaSource.getMediaItem` and
|
|
||||||
`MediaItem.PlaybackProperties.tag` instead.
|
|
||||||
* Remove `CastPlayer` specific playlist manipulation methods. Use
|
|
||||||
`setMediaItems`, `addMediaItems`, `removeMediaItem` and `moveMediaItem`
|
|
||||||
instead.
|
|
||||||
* UI:
|
* UI:
|
||||||
* Add `setUseRewindAction` and `setUseFastForwardAction` to
|
* Add `setUseRewindAction` and `setUseFastForwardAction` to
|
||||||
`PlayerNotificationManager`, and `setUseFastForwardActionInCompactView`
|
`PlayerNotificationManager`, and `setUseFastForwardActionInCompactView`
|
||||||
@ -108,35 +96,15 @@
|
|||||||
available commands.
|
available commands.
|
||||||
* Update `DefaultControlDispatcher` `getRewindIncrementMs` and
|
* Update `DefaultControlDispatcher` `getRewindIncrementMs` and
|
||||||
`getFastForwardIncrementMs` to take the player as parameter.
|
`getFastForwardIncrementMs` to take the player as parameter.
|
||||||
* Deprecate `setControlDispatcher` in `PlayerView`, `StyledPlayerView`,
|
|
||||||
`PlayerControlView`, `StyledPlayerControlView` and
|
|
||||||
`PlayerNotificationManager`.
|
|
||||||
* HLS:
|
* HLS:
|
||||||
* Fix issue that could cause some playbacks to be stuck buffering
|
* Fix issue that could cause some playbacks to be stuck buffering
|
||||||
([#8850](https://github.com/google/ExoPlayer/issues/8850),
|
([#8850](https://github.com/google/ExoPlayer/issues/8850),
|
||||||
[#9153](https://github.com/google/ExoPlayer/issues/9153)).
|
[#9153](https://github.com/google/ExoPlayer/issues/9153)).
|
||||||
* Extractors:
|
* Report audio track type in
|
||||||
* Add support for DTS-UHD in MP4
|
`AnalyticsListener.onDownstreamFormatChanged()` for audio-only
|
||||||
([#9163](https://github.com/google/ExoPlayer/issues/9163)).
|
playlists, so that the `PlaybackStatsListener` can derive audio
|
||||||
* Text:
|
format-related information
|
||||||
* TTML: Inherit the `rubyPosition` value from a containing `<span
|
([#9175](https://github.com/google/ExoPlayer/issues/9175)).
|
||||||
ruby="container">` element.
|
|
||||||
* WebVTT: Add support for CSS `font-size` property
|
|
||||||
([#8964](https://github.com/google/ExoPlayer/issues/8964)).
|
|
||||||
* Ad playback:
|
|
||||||
* Support changing ad break positions in the player logic
|
|
||||||
([#5067](https://github.com/google/ExoPlayer/issues/5067).
|
|
||||||
* Support resuming content with an offset after an ad group.
|
|
||||||
* OkHttp extension:
|
|
||||||
* Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
|
|
||||||
version requirement from 16 to 21.
|
|
||||||
* Cronet extension:
|
|
||||||
* Add `CronetDataSource.Factory.setRequestPriority` to allow setting the
|
|
||||||
priority of requests made by `CronetDataSource` instances.
|
|
||||||
* Leanback extension:
|
|
||||||
* Deprecate `setControlDispatcher` in `LeanbackPlayerAdapter`.
|
|
||||||
* Media2 extension:
|
|
||||||
* Deprecate `setControlDispatcher` in `SessionPlayerConnector`.
|
|
||||||
* RTSP:
|
* RTSP:
|
||||||
* Use standard RTSP header names
|
* Use standard RTSP header names
|
||||||
([#9182](https://github.com/google/ExoPlayer/issues/9182)).
|
([#9182](https://github.com/google/ExoPlayer/issues/9182)).
|
||||||
@ -144,19 +112,52 @@
|
|||||||
([#9247](https://github.com/google/ExoPlayer/pull/9247)).
|
([#9247](https://github.com/google/ExoPlayer/pull/9247)).
|
||||||
* Fix handling of special characters in the RTSP session ID
|
* Fix handling of special characters in the RTSP session ID
|
||||||
([#9254](https://github.com/google/ExoPlayer/issues/9254)).
|
([#9254](https://github.com/google/ExoPlayer/issues/9254)).
|
||||||
* MediaSession extension:
|
* SmoothStreaming:
|
||||||
* Deprecate `setControlDispatcher` in `MediaSessionConnector`. The
|
* Propagate `StreamIndex` element `Name` attribute value as `Format` label
|
||||||
`ControlDispatcher` parameter has also been deprecated in all
|
([#9252](https://github.com/google/ExoPlayer/issues/9252)).
|
||||||
`MediaSessionConnector` listener methods.
|
* Cronet extension:
|
||||||
* HLS:
|
* Add `CronetDataSource.Factory.setRequestPriority` to allow setting the
|
||||||
* Report audio track type in
|
priority of requests made by `CronetDataSource` instances.
|
||||||
`AnalyticsListener.onDownstreamFormatChanged()` for audio-only
|
* OkHttp extension:
|
||||||
playlists, so that the `PlaybackStatsListener` can derive audio
|
* Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
|
||||||
format-related information.
|
version requirement from 16 to 21.
|
||||||
([#9175](https://github.com/google/ExoPlayer/issues/9175)).
|
* Remove deprecated symbols:
|
||||||
* SS:
|
* Remove `CastPlayer` specific playlist manipulation methods. Use
|
||||||
* Propagate `StreamIndex` element `Name` attribute value as `Format`
|
`setMediaItems`, `addMediaItems`, `removeMediaItem` and `moveMediaItem`
|
||||||
label ([#9252](https://github.com/google/ExoPlayer/issues/9252)).
|
instead.
|
||||||
|
* Remove `Format.create` methods. Use `Format.Builder` instead.
|
||||||
|
* Remove `MediaSource.getTag`. Use `MediaSource.getMediaItem` and
|
||||||
|
`MediaItem.PlaybackProperties.tag` instead.
|
||||||
|
* Remove `PlaybackPreparer`. UI components that previously had
|
||||||
|
`setPlaybackPreparer` methods will now call `Player.prepare` by default.
|
||||||
|
If this behavior is sufficient, use of `PlaybackPreparer` can be removed
|
||||||
|
from application code without replacement. For custom preparation logic,
|
||||||
|
use a `ForwardingPlayer` that implements custom preparation logic in
|
||||||
|
`prepare`.
|
||||||
|
* Remove `Player.Listener.onTimelineChanged(Timeline, Object, int)`. Use
|
||||||
|
`Player.Listener.onTimelineChanged(Timeline, int)` instead. The manifest
|
||||||
|
can be accessed using `Player.getCurrentManifest`.
|
||||||
|
* Remove `Player.getCurrentTag`. Use `Player.getCurrentMediaItem` and
|
||||||
|
`MediaItem.PlaybackProperties.tag` instead.
|
||||||
|
* Remove `Player.getPlaybackError`. Use `Player.getPlayerError` instead.
|
||||||
|
* Remove `PlayerNotificationManager` constructors and `createWith`
|
||||||
|
methods. Use `PlayerNotificationManager.Builder` instead.
|
||||||
|
* Remove `PlayerNotificationManager.setNotificationListener`. Use
|
||||||
|
`PlayerNotificationManager.Builder.setNotificationListener` instead.
|
||||||
|
* Remove `PlayerNotificationManager` `setUseNavigationActions` and
|
||||||
|
`setUseNavigationActionsInCompactView`. Use `setUseNextAction`,
|
||||||
|
`setUsePreviousAction`, `setUseNextActionInCompactView` and
|
||||||
|
`setUsePreviousActionInCompactView` instead.
|
||||||
|
* Remove `setRewindIncrementMs` and `setFastForwardIncrementMs` from UI
|
||||||
|
components. These increments can be customized by configuring the
|
||||||
|
`Player` (see `setSeekBackIncrementMs` and `setSeekForwardIncrementMs`
|
||||||
|
in `SimpleExoPlayer.Builder`), or by using a `ForwardingPlayer` that
|
||||||
|
overrides `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement`
|
||||||
|
and `seekForward`. The rewind and fast forward buttons can be disabled
|
||||||
|
by using a `ForwardingPlayer` that removes `COMMAND_SEEK_BACK` and
|
||||||
|
`COMMAND_SEEK_FORWARD` from the available commands.
|
||||||
|
* Remove `Timeline.getWindow(int, Window, boolean)`. Use
|
||||||
|
`Timeline.getWindow(int, Window)` instead, which will always set tags.
|
||||||
|
|
||||||
### 2.14.2 (2021-07-20)
|
### 2.14.2 (2021-07-20)
|
||||||
|
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
project.ext {
|
project.ext {
|
||||||
// ExoPlayer version and version code.
|
// ExoPlayer version and version code.
|
||||||
releaseVersion = '2.14.2'
|
releaseVersion = '2.15.0'
|
||||||
releaseVersionCode = 2014002
|
releaseVersionCode = 2015000
|
||||||
minSdkVersion = 16
|
minSdkVersion = 16
|
||||||
appTargetSdkVersion = 29
|
appTargetSdkVersion = 29
|
||||||
targetSdkVersion = 30
|
targetSdkVersion = 30
|
||||||
|
@ -26,11 +26,11 @@ public final class ExoPlayerLibraryInfo {
|
|||||||
|
|
||||||
/** The version of the library expressed as a string, for example "1.2.3". */
|
/** The version of the library expressed as a string, for example "1.2.3". */
|
||||||
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa.
|
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa.
|
||||||
public static final String VERSION = "2.14.2";
|
public static final String VERSION = "2.15.0";
|
||||||
|
|
||||||
/** The version of the library expressed as {@code "ExoPlayerLib/" + VERSION}. */
|
/** The version of the library expressed as {@code "ExoPlayerLib/" + VERSION}. */
|
||||||
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
|
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
|
||||||
public static final String VERSION_SLASHY = "ExoPlayerLib/2.14.2";
|
public static final String VERSION_SLASHY = "ExoPlayerLib/2.15.0";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The version of the library expressed as an integer, for example 1002003.
|
* The version of the library expressed as an integer, for example 1002003.
|
||||||
@ -40,7 +40,7 @@ public final class ExoPlayerLibraryInfo {
|
|||||||
* integer version 123045006 (123-045-006).
|
* integer version 123045006 (123-045-006).
|
||||||
*/
|
*/
|
||||||
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
|
// Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa.
|
||||||
public static final int VERSION_INT = 2014002;
|
public static final int VERSION_INT = 2015000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The default user agent for requests made by the library.
|
* The default user agent for requests made by the library.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user