Exoplayer v12.2 Release Notes

Release Date: 2020-12-01 // almost 4 years ago
    • Core library:
      • Suppress exceptions from registering/unregistering the stream volume receiver (#8087, #8106).
      • Suppress ProGuard warnings caused by Guava's compile-only dependencies (#8103).
      • Fix issue that could cause playback to freeze when selecting tracks, if extension audio renderers are being used (#8203).
    • 💻 UI:
      • Fix incorrect color and text alignment of the StyledPlayerControlView fast forward and rewind buttons, when used together with the com.google.android.material library (#7898).
      • Add dispatchPrepare(Player) to ControlDispatcher and implement it in DefaultControlDispatcher. Deprecate PlaybackPreparer and setPlaybackPreparer in StyledPlayerView, StyledPlayerControlView, PlayerView, PlayerControlView, PlayerNotificationManager and LeanbackPlayerAdapter and use ControlDispatcher for dispatching prepare instead (#7882).
      • Increase seekbar's touch target height in StyledPlayerControlView.
      • Update StyledPlayerControlView menu items to behave correctly for right-to-left languages.
      • Support enabling the previous and next actions individually in PlayerNotificationManager.
    • Audio:
      • Retry playback after some types of AudioTrack error.
      • Work around AudioManager crashes when calling getStreamVolume (#8191).
    • Extractors:
      • Matroska: Add support for 32-bit floating point PCM, and 8-bit and 16-bit big endian integer PCM (#8142).
      • MP4: Add support for mpeg1 video box (#8257).
    • IMA extension:
      • Upgrade IMA SDK dependency to 3.21.0, and release the AdsLoader (#7344).
      • Improve handling of ad tags with unsupported VPAID ads (#7832).
      • Fix a bug that caused multiple ads in an ad pod to be skipped when one ad in the ad pod was skipped.
      • Fix a bug that caused ad progress not to be updated if the player resumed after buffering during an ad (#8239).
      • Fix passing an ads response to the ImaAdsLoader builder.
      • Set the overlay language based on the device locale by default.
    • Cronet extension:
      • Fix handling of HTTP status code 200 when making unbounded length range requests (#8090).
    • Text
      • Allow tx3g subtitles with styl boxes with start and/or end offsets that lie outside the length of the cue text.
    • Media2 extension:
      • Notify onBufferingEnded when the state of origin player becomes STATE_IDLE or STATE_ENDED.
      • Allow to remove all playlist items that makes the player reset.

Previous changes from v12.1