Bot releases are hidden (Show)
DefaultControlDispatcher
, PlayerControlView
, StyledPlayerControlView
, PlayerNotificationManager
and TimelineQueueNavigator
.SimpleExoPlayer
reporting audio session ID as 0 in some cases (#8585).Style:
lines (#8435).ImaAdsLoader.focusSkipButton
to allow apps to request that the skip button should receive UI focus, if shown (#8565).Published by ojw28 over 3 years ago
SimpleExoPlayer
by default. Opt-out is still possible until the next major release using setThrowsWhenUsingWrongThread(false)
(#4463).Player.getCurrentStaticMetadata
and EventListener.onStaticMetadataChanged
to expose static metadata belonging to the currently playing stream (#7266).PlayerMessage.setLooper
and deprecate PlayerMessage.setHandler
.MergingMediaSource
to clip the durations of all sources to have the same length (#8422).Player.setVideoDecoderOutputBufferRenderer
from Player API. Use setVideoSurfaceView
and clearVideoSurfaceView
instead.SingleSampleMediaSource.treatLoadErrorsAsEndOfStream
to true
so that errors loading external subtitle files do not cause playback to fail (#8430). A warning will be logged by SingleSampleMediaPeriod
whenever a load error is treated as though the end of the stream has been reached.AnalyticsListener
callbacks could arrive in the wrong order (#8048).transformer
module for converting media streams. The initially available transformations are changing the container format, removing tracks, and slow motion flattening.LiveConfiguration
to MediaItem
to define live offset and playback speed adjustment parameters. The same parameters can be set on DefaultMediaSourceFactory
to apply for all MediaItems
.LivePlaybackSpeedControl
to control playback speed adjustments during live playbacks. Such adjustments allow the player to stay close to the live offset. DefaultLivePlaybackSpeedControl
is provided as a default implementation.targetLiveOffsetUs
parameter to LoadControl.shouldStartPlayback
.stsd
information and stsz
fixed sample size in MP4 extractors.Player.getTrackSelector
to the ExoPlayer
interface.TrackSelection
into an ExoTrackSelection
subclass.DefaultTrackSelector
. ParametersBuilder.setTunnelingAudioSessionId
has been replaced with ParametersBuilder.setTunnelingEnabled
. The player's audio session ID will be used, and so a tunneling specific ID is no longer needed.DefaultTrackSelector
. DefaultTrackSelector.ParametersBuilder
now includes:
setPreferredVideoMimeType
, setPreferredVideoMimeTypes
, setPreferredAudioMimeType
and setPreferredAudioMimeTypes
for specifying preferred video and audio MIME type(s) (#8320).setPreferredAudioLanguages
and setPreferredTextLanguages
for specifying multiple preferred audio and text languages.setPreferredAudioRoleFlags
for specifying preferred audio role flags.Timeline
and MediaPeriodId
to TrackSelection.Factory
.EXT-X-PART
and preload hints) (#5011).StyledPlayerControlView
button animations.StyledPlayerControlView
in minimal mode.ExoMediaDrm.KeyRequest.getRequestType
(#7847).DefaultDrmSession
is released while waiting for the response. This prevents harmless log messages of the form: IllegalStateException: sending message to a Handler on a dead thread
(#8328).MediaItem
by passing a DrmSessionManagerProvider
to MediaSourceFactory
(#8466).onEvents
callback to Player.EventListener
and AnalyticsListener
. When one or more player states change simultaneously, onEvents
is called once after all of the callbacks associated with the individual state changes.DecoderReuseEvaluation
to AnalyticsListener
's onVideoInputFormatChanged
and onAudioInputFormatChanged
methods. The DecoderReuseEvaluation
indicates whether it was possible to re-use an existing decoder instance for the new format, and if not then the reasons why.SimpleExoPlayer
now generates an audio session ID on construction, which can be immediately queried by calling SimpleExoPlayer.getAudioSessionId
. The audio session ID will only change if application code calls SimpleExoPlayer.setAudioSessionId
.onAudioSessionId
with onAudioSessionIdChanged
in AudioListener
and AnalyticsListener
. Note that onAudioSessionIdChanged
is called in fewer cases than onAudioSessionId
was called, due to the improved handling of audio session IDs as described above.AudioTrack
error.AudioTrack
instances using the maximum supported channel count (instead of assuming 6 channels) from API 29.HttpDataSource
implementations, default to using the user agent of the underlying network stack.HttpDataSource.Factory.getDefaultRequestProperties
. HttpDataSource.Factory.setDefaultRequestProperties
instead.DefaultHttpDataSource.Factory
and deprecate DefaultHttpDataSourceFactory
.ImaAdsLoader.Builder.setEnableContinuousPlayback
for setting whether to request ads for continuous playback.OkHttpDataSource.Factory
and deprecate OkHttpDataSourceFactory
.CronetDataSource.Factory
and deprecate CronetDataSourceFactory
.CronetDataSource.Factory
and CronetEngineWrapper
.setPlaybackSpeed(float)
and disable it by default. Use MediaSessionConnector.setEnabledPlaybackActions(long)
to enable (#8229).AdaptiveMediaSourceEventListener
. Use MediaSourceEventListener
instead.DashMediaSource.Factory.setMinLoadableRetryCount(int)
. Use DashMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.DefaultAnalyticsListener
. Use AnalyticsListener
instead.DefaultLoadControl
constructors. Use DefaultLoadControl.Builder
instead.DrmInitData.get(UUID)
. Use DrmInitData.get(int)
and DrmInitData.SchemeData.matches(UUID)
instead.ExtractorsMediaSource.Factory.setMinLoadableRetryCount(int)
. Use ExtractorsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.FixedTrackSelection.Factory
. If you need to disable adaptive selection in DefaultTrackSelector
, enable the DefaultTrackSelector.Parameters.forceHighestSupportedBitrate
flag.HlsMediaSource.Factory.setMinLoadableRetryCount(int)
. Use HlsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.MappedTrackInfo.getTrackFormatSupport(int, int, int)
. Use MappedTrackInfo.getTrackSupport(int, int, int)
instead.MappedTrackInfo.getTrackTypeRendererSupport(int)
. Use MappedTrackInfo.getTypeSupport(int)
instead.MappedTrackInfo.getUnassociatedTrackGroups()
. Use MappedTrackInfo.getUnmappedTrackGroups()
instead.MappedTrackInfo.length
. Use MappedTrackInfo.getRendererCount()
instead.Player.DefaultEventListener.onTimelineChanged(Timeline, Object)
. Use Player.EventListener.onTimelineChanged(Timeline, int)
instead.Player.setAudioAttributes(AudioAttributes)
. Use Player.AudioComponent.setAudioAttributes(AudioAttributes, boolean)
instead.PlayerView.setDefaultArtwork(Bitmap)
. Use PlayerView.setDefaultArtwork(Drawable)
instead.PlayerView.setShowBuffering(boolean)
. Use PlayerView.setShowBuffering(int)
instead.SimpleExoPlayer.clearMetadataOutput(MetadataOutput)
. Use SimpleExoPlayer.removeMetadataOutput(MetadataOutput)
instead.SimpleExoPlayer.clearTextOutput(TextOutput)
. Use SimpleExoPlayer.removeTextOutput(TextOutput)
instead.SimpleExoPlayer.clearVideoListener()
. Use SimpleExoPlayer.removeVideoListener(VideoListener)
instead.SimpleExoPlayer.getAudioStreamType()
. Use SimpleExoPlayer.getAudioAttributes()
instead.SimpleExoPlayer.setAudioDebugListener(AudioRendererEventListener)
. Use SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)
instead.SimpleExoPlayer.setAudioStreamType(int)
. Use SimpleExoPlayer.setAudioAttributes(AudioAttributes)
instead.SimpleExoPlayer.setMetadataOutput(MetadataOutput)
. Use SimpleExoPlayer.addMetadataOutput(MetadataOutput)
instead. If your application is calling SimpleExoPlayer.setMetadataOutput(null)
, make sure to replace this call with a call to SimpleExoPlayer.removeMetadataOutput(MetadataOutput)
.SimpleExoPlayer.setPlaybackParams(PlaybackParams)
. Use SimpleExoPlayer.setPlaybackParameters(PlaybackParameters)
instead.SimpleExoPlayer.setTextOutput(TextOutput)
. Use SimpleExoPlayer.addTextOutput(TextOutput)
instead. If your application is calling SimpleExoPlayer.setTextOutput(null)
, make sure to replace this call with a call to SimpleExoPlayer.removeTextOutput(TextOutput)
.SimpleExoPlayer.setVideoDebugListener(VideoRendererEventListener)
. Use SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)
instead.SimpleExoPlayer.setVideoListener(VideoListener)
. Use SimpleExoPlayer.addVideoListener(VideoListener)
instead. If your application is calling SimpleExoPlayer.setVideoListener(null)
, make sure to replace this call with a call to SimpleExoPlayer.removeVideoListener(VideoListener)
.SimpleExoPlayer.VideoListener
. Use com.google.android.exoplayer2.video.VideoListener
instead.SingleSampleMediaSource.EventListener
and constructors. Use MediaSourceEventListener
and SingleSampleMediaSource.Factory
instead.SimpleExoPlayer.addVideoDebugListener
, SimpleExoPlayer.removeVideoDebugListener
, SimpleExoPlayer.addAudioDebugListener
and SimpleExoPlayer.removeAudioDebugListener
. Use SimpleExoPlayer.addAnalyticsListener
and SimpleExoPlayer.removeAnalyticsListener
instead.SingleSampleMediaSource.Factory.setMinLoadableRetryCount(int)
. Use SingleSampleMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.SsMediaSource.Factory.setMinLoadableRetryCount(int)
. Use SsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.MediaCodecRenderer
issue where empty streams would fail to play in bypass mode (#8374).LoadErrorHandlingPolicy
from DefaultMediaSourceFactory
into SingleSampleMediaSource.Factory
when creating subtitle media sources from MediaItem.playbackProperties.subtitles
(#8430).StyledPlayerControlView
would not be dismissed when tapping outside of the menu area or pressing the back button, on API level 22 and earlier (#8272).DownloadManager
that could occur when adding a stopped download with the same ID as a download currently being removed (#8419).StyledPlayerControlView
fast forward and rewind buttons, when used together with the com.google.android.material
library (#7898).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).StyledPlayerControlView
.StyledPlayerControlView
menu items to behave correctly for right-to-left languages.PlayerNotificationManager
.AudioTrack
error.AudioManager
crashes when calling getStreamVolume
(#8191).AdsLoader
(#7344).ImaAdsLoader
builder.styl
boxes with start and/or end offsets that lie outside the length of the cue text.Published by ojw28 almost 4 years ago
Published by ojw28 about 4 years ago
Published by ojw28 about 4 years ago