ExoPlayer 2.10 — What’s new
ExoPlayer 2.10 contains many new features, improvements and bug fixes. This post highlights some of the most significant changes. Take a look at the full release notes for a more comprehensive list, and our new and improved developer site for more information about using ExoPlayer.
Better support for downloading media
Support for downloading media has been revamped in ExoPlayer 2.10. Some of the major improvements are:
DownloadManager
now tracks all downloaded content, rather than just the downloads that are currently in progress. This removes the need for apps to do their own tracking of downloaded content.- A new
DownloadHelper
class makes it easier to select which tracks should be downloaded for adaptive (i.e. DASH, HLS and SmoothStreaming) content.DownloadHelper
usesDefaultTrackSelector
to select suitable tracks automatically based on device capabilities and parameters provided by the application. It also provides methods for adding and replacing tracks in the selection. DownloadManager
andDownloadService
now support starting and stopping individual downloads.- Downloading and removing content is significantly faster, due to improvements to ExoPlayer’s caching layer.
For more information about downloading media, please see the new page on our developer site.
Improved decoder reuse
ExoPlayer uses audio and video decoders provided by the underlying Android platform. Instantiating these decoders can be expensive, and doing so accounts for a significant fraction of total playback startup latency. In ExoPlayer 2.10, we’ve improved the way decoders are reused. By reusing decoder instances in more cases, these improvements can reduce the time required to switch from playing one piece of media to another. Read our blog post on improved decoder reuse for more details.
Support for new formats
ExoPlayer 2.10 adds support for some new media formats, on devices that include the required platform decoders. We’ve added support for Dolby Vision video (profiles 4, 5, 8 and 9) and Dolby AC-4 audio in DASH and progressive fMP4/MP4 containers. On Android Q you can also use ExoPlayer to play AV1 video streams using the platform’s new AV1 software decoder.
Shoutcast ICY metadata
We’ve added support for ICY metadata in ExoPlayer 2.10. As with ID3 metadata, ICY metadata in the HTTP response headers is included in the track’s Format.metadata
, while in-stream metadata can be received by calling Player.addMetadataOutput()
to register a MetadataOutput
on the player.
And much more
ExoPlayer 2.10 contains many improvements beyond the ones highlighted above, including:
- Parsing of DASH Role and Accessibility descriptors into a new
Format.roleFlags
field. HLS EXT-X-MEDIA CHARACTERISTICS attributes are also parsed into this field. - Improvements to
DefaultTrackSelector
, including new options for controlling audio track selections and better selection logic for forced text tracks. - Multiple UI improvements, such as avoiding big jumps in the
DefaultTimeBar
scrubber by updating its position more frequently for shorter duration content.
See the full release notes for a more comprehensive list.
As always, please feel free to get in touch via our issue tracker if you have any questions or encounter problems. Thanks for reading!