Skip to content

1.1.0-beta01

Pre-release
Pre-release
Compare
Choose a tag to compare
@tof-tof tof-tof released this 07 Jun 09:38
· 3463 commits to release since this release
  • Common Library:
    • Add Player.replaceMediaItem(s) as a shortcut to adding and removing items at the same position (#8046).
  • ExoPlayer:
    • Add FilteringMediaSource that allows to filter available track types from a MediaSource.
    • Allow ExoPlayer to have control of device volume methods only if
      explicitly opted in. Use
      ExoPlayer.Builder.setDeviceVolumeControlEnabled to have access to:
      • getDeviceVolume()
      • isDeviceMuted()
      • setDeviceVolume(int) and setDeviceVolume(int, int)
      • increaseDeviceVolume(int) and increaseDeviceVolume(int, int)
      • decreaseDeviceVolume(int) and decreaseDeviceVolume(int, int)
  • Extractors:
    • Ogg: Fix bug when seeking in files with a long duration (#391).
  • Audio:
    • Add direct playback support for DTS Express and DTS:X (#335).
  • Video:
    • Make MediaCodecVideoRenderer report a VideoSize with a width and height of 0 when the renderer is disabled. Player.Listener.onVideoSizeChanged is called accordingly when Player.getVideoSize() changes. With this change, ExoPlayer's video size with MediaCodecVideoRenderer has a width and height of 0 when Player.getCurrentTracks does not support video, or the size of the supported video track is not yet determined.
  • IMA extension:
    • Enable multi-period live DASH streams for DAI. Please note that the current implementation does not yet support seeking in live streams (#10912).
  • Session:
    • Add androidx.media3.session.MediaButtonReceiver to enable apps to implement playback resumption with media button events sent by, for example, a Bluetooth headset (#167).
  • RTSP Extension:
    • Use base Uri for relative path resolution from the RTSP session if present in DESCRIBE response header (#11160).
  • Remove deprecated symbols:
    • Remove two deprecated SimpleCache constructors, use a non-deprecated constructor that takes a DatabaseProvider instead for better performance.
    • Remove DefaultBandwidthMeter constructor, use DefaultBandwidthMeter.Builder instead.
    • Remove DefaultDrmSessionManager constructors, use DefaultDrmSessionManager.Builder instead.
    • Remove two deprecated HttpDataSource.InvalidResponseCodeException constructors, use a non-deprecated constructor that accepts additional fields(cause, responseBody) to enhance error logging.
    • Remove DownloadHelper.forProgressive, DownloadHelper.forHls, DownloadHelper.forDash, and DownloadHelper.forSmoothStreaming, use DownloadHelper.forMediaItem instead.
    • Remove deprecated DownloadService constructor, use a non deprecated constructor that includes the option to provide a channelDescriptionResourceId parameter.
    • Remove deprecated String constants for Charsets (ASCII_NAME, UTF8_NAME, ISO88591_NAME, UTF16_NAME and UTF16LE_NAME), use Kotlin Charsets from the kotlin.text package, the java.nio.charset.StandardCharsets or the com.google.common.base.Charsets instead.
    • Remove deprecated WorkManagerScheduler constructor, use a non deprecated constructor that includes the option to provide a Context parameter instead.
    • Remove the deprecated methods createVideoSampleFormat, createAudioSampleFormat, createContainerFormat, and createSampleFormat, which were used to instantiate the Format class. Instead use Format.Builder for creating instances of Format.
    • Remove the deprecated methods copyWithMaxInputSize, copyWithSubsampleOffsetUs, copyWithLabel, copyWithManifestFormatInfo, copyWithGaplessInfo, copyWithFrameRate, copyWithDrmInitData, copyWithMetadata, copyWithBitrate and copyWithVideoSize, use Format.buildUpon() and setter methods instead.
    • Remove deprecated ExoPlayer.retry(), use prepare() instead.
    • Remove deprecated zero-arg DefaultTrackSelector constructor, use DefaultTrackSelector(Context) instead.
    • Remove deprecated OfflineLicenseHelper constructor, use OfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher) instead.
    • Remove deprecated DownloadManager constructor, use the constructor that takes an Executor instead.
    • Remove deprecated Cue constructors, use Cue.Builder instead.
    • Remove deprecated OfflineLicenseHelper constructor, use OfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher) instead.
    • Remove four deprecated AnalyticsListener methods:
      • onDecoderEnabled, use onAudioEnabled and/or onVideoEnabled instead.
      • onDecoderInitialized, use onAudioDecoderInitialized and/or onVideoDecoderInitialized instead.
      • onDecoderInputFormatChanged, use onAudioInputFormatChanged and/or onVideoInputFormatChanged instead.
      • onDecoderDisabled, use onAudioDisabled and/or onVideoDisabled instead.
    • Remove the deprecated Player.Listener.onSeekProcessed and AnalyticsListener.onSeekProcessed, use onPositionDiscontinuity with DISCONTINUITY_REASON_SEEK instead.
    • Remove ExoPlayer.setHandleWakeLock(boolean), use setWakeMode(int) instead.
    • Remove deprecated DefaultLoadControl.Builder.createDefaultLoadControl(), use build() instead.