Add getSeekBackIncrement, seekBack, getSeekForwardIncrement, seekForward, getMaxSeekToPreviousPosition, seekToPrevious and seekToNext methods to Player.
Rename Player methods:
hasPrevious to hasPreviousWindow.
previous to seekToPreviousWindow.
hasNext to hasNextWindow.
next to seekToNextWindow.
Rename Player commands:
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM to COMMAND_SEEK_IN_CURRENT_WINDOW.
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM to COMMAND_SEEK_TO_NEXT_WINDOW.
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 ExoPlaybackException:
Player.getPlayerError now returns a PlaybackException.
Player.Listener.onPlayerError now receives a PlaybackException.
Add a new listener method Player.Listener.onPlayerErrorChanged, which is equivalent to onPlayerError except that it is also called when the player error becomes null.
Player implementations like ExoPlayer may use PlaybackException subclasses (like ExoPlaybackException), so users can downcast the PlaybackException instance to obtain implementation-specific fields (like ExoPlaybackException.rendererIndex).
PlaybackException introduces an errorCode which identifies the cause of the failure in order to simplify error handling (#1611).
Add a DefaultMediaDescriptionAdapter for the PlayerNotificationManager, that makes use of the PlayerMediaMetadata to populate the notification fields.
Add @FallbackType to LoadErrorHandlingPolicy to support customization of the exclusion duration for locations and tracks.
Change interface of LoadErrorHandlingPolicy to support configuring the behavior of track and location fallback. Location fallback is currently only supported for DASH manifests with multiple base URLs.
Restrict use of AudioTrack.isDirectPlaybackSupported to TVs, to avoid listing audio offload encodings as supported for passthrough mode on mobile devices (#9239).
TTML: Inherit the rubyPosition value from a containing <span ruby="container"> element.
WebVTT: Add support for CSS font-size property (#8964).
Ad playback:
Support changing ad break positions in the player logic (#5067).
Support resuming content with an offset after an ad group.
UI:
Add setUseRewindAction and setUseFastForwardAction to PlayerNotificationManager, and setUseFastForwardActionInCompactView and setUseRewindActionInCompactView to show the actions in compact view mode.
Remove rewind_increment and fastforward_increment attributes from PlayerControlView and StyledPlayerControlView. 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.
Update DefaultControlDispatchergetRewindIncrementMs and getFastForwardIncrementMs to take the player as parameter.
DASH:
Add support for multiple base URLs and DVB attributes in the manifest. Apps that are using DefaultLoadErrorHandlingPolicy with such manifests have base URL fallback automatically enabled (#771, #7654).
HLS:
Fix issue that could cause some playbacks to be stuck buffering (#8850, #9153).
Report audio track type in AnalyticsListener.onDownstreamFormatChanged() for audio-only playlists, so that the PlaybackStatsListener can derive audio format-related information (#9175).
Add getSeekBackIncrement, seekBack, getSeekForwardIncrement,
seekForward, getMaxSeekToPreviousPosition, seekToPrevious and
seekToNext methods to Player.
Rename Player methods:
hasPrevious to hasPreviousWindow.
previous to seekToPreviousWindow.
hasNext to hasNextWindow.
next to seekToNextWindow.
Rename Player commands:
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM to
COMMAND_SEEK_IN_CURRENT_WINDOW.
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM to COMMAND_SEEK_TO_NEXT_WINDOW.
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
ExoPlaybackException:
Player.getPlayerError now returns a PlaybackException.
Player.Listener.onPlayerError now receives a PlaybackException.
Add a new listener method Player.Listener.onPlayerErrorChanged,
which is equivalent to onPlayerError except that it is also called
when the player error becomes null.
Player implementations like ExoPlayer may use
PlaybackException subclasses (like ExoPlaybackException), so
users can downcast the PlaybackException instance to obtain
implementation-specific fields (like
ExoPlaybackException.rendererIndex).
PlaybackException introduces an errorCode which identifies the cause
of the failure in order to simplify error handling
(#1611).
Add a DefaultMediaDescriptionAdapter for the
PlayerNotificationManager, that makes use of the PlayerMediaMetadata to populate the notification fields.
Add @FallbackType to LoadErrorHandlingPolicy to support
customization of the exclusion duration for locations and tracks.
Change interface of LoadErrorHandlingPolicy to support configuring the
behavior of track and location fallback. Location fallback is currently
only supported for DASH manifests with multiple base URLs.
Restrict use of AudioTrack.isDirectPlaybackSupported to TVs, to avoid
listing audio offload encodings as supported for passthrough mode on
mobile devices
(#9239).
Extractors:
Add support for DTS-UHD in MP4
... (truncated)
Commits
02f7aaf Merge pull request #9279 from google/dev-v2-r2.15.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
⚠️ Dependabot is rebasing this PR ⚠️
Rebasing might not happen immediately, so don't worry if this takes some time.
Note: if you make any changes to this PR yourself, they will take precedence over the rebase.
Bumps exoplayer from 2.14.2 to 2.15.0.
Release notes
Sourced from exoplayer's releases.
... (truncated)
Changelog
Sourced from exoplayer's changelog.
... (truncated)
Commits
02f7aaf
Merge pull request #9279 from google/dev-v2-r2.15.0d56b6a5
Move DASH multiple base URL release notef344461
Bump version to 2.15.0 and tidy release notes067fcdb
Update javadoc for 2.15.0bf462ac
Fix bug in Timeline.getRemovedAdGroupCount()8fb1e5c
Set StreamIndex Name as format.label in SS6ca0b30
Handle RTSP session id properly.17723c0
Simplify network-related error codesf23ab8e
Merge pull request #9247 from colinbarr:dev-v2-rtsp-fmtp-trailing-semicolonba3f868
Tweak use of TimestampAdjuster for seekingDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)