- ExoPlayer:
- Add
ExoPlayer.isReleased()to check whetherExoplayer.release()has been called. - Add
ExoPlayer.Builder.setMaxSeekToPreviousPositionMsto configure the maximum position for whichseekToPrevious()seeks to the previous item (#1425).
- Add
- Transformer:
- Remove
ExportResult.processedInputsfield. If you use this field for codec details, then useDefaultDecoderFactory.listenerinstead. In case of a codec exception, codec details will be available in theExportException.codecInfo.
- Remove
- Extractors:
- Fix PCM audio format extraction in AVI containers.
- Image:
- Allow
nullas parameter forExoPlayer.setImageOutputto clear a previously setImageOutput.
- Allow
- Effect:
- Remove unused
OverlaySettings.useHdrsince dynamic range of overlay - Add HDR support for
TextOverlay. Luminance of the text overlay can be adjusted withOverlaySettings.setHdrLuminanceMultiplier.
- Remove unused
- Session:
- Add
MediaSession.Callback.onPlayerInteractionFinishedto inform sessions when a series of player interactions from a specific controller finished. - Add
SessionErrorand use it inSessionResultandLibraryResultinstead of the error code to provide more information about the error and how to resolve the error if possible. - Publish the code for the media3 controller test app that can be used to test interactions with apps publishing a media session.
- Propagate extras passed to media3's
MediaSession[Builder].setSessionExtras()to a media1 controller'sPlaybackStateCompat.getExtras(). - Map fatal and non-fatal errors to and from the platform session. A
PlaybackExceptionis mapped to a fatal error state of thePlaybackStateCompat. ASessionErrorsent to the media notification controller withMediaSession.sendError(ControllerInfo, SessionError)is mapped to a non-fatal error inPlaybackStateCompatwhich means that error code and message are set but the state of the platform session remains different toSTATE_ERROR.
- Add
- UI:
- HLS Extension:
- Fix a bug where non-primary playing playlists are not refreshed during live playback (#1240).
- Remove deprecated symbols:
- Remove
Bundleableinterface. This includes removing allBundleable.Creator<Foo> CREATORconstant fields. Callers should use theBundle toBundle()andstatic Foo fromBundle(Bundle)methods on each type instead.
- Remove