Update dependency com.google.android.exoplayer:exoplayer to v2.15.1 #18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.11.1
->2.15.1
Release Notes
google/ExoPlayer
v2.15.1
StyledPlayerControlView
when usingForwardingPlayer
.FlagSet#equals
on API levels below 24.NullPointerException
being thrown fromCacheDataSource
whenreading a fully cached resource with
DataSpec.position
equal to theresource length.
a relative path
(#9403).
the start or after the end of the media are now handled as seeks to the
start and end respectively
(8906).
MimeTypes.AUDIO_DTS_UHD
toMimeTypes.AUDIO_DTS_X
and addrequired profile to its value
(#9429).
(#9294).
(#9087).
issue that could cause UHD Dolby Vision playbacks to fail on some
devices, including Amazon Fire TV 4K.
DefaultDrmSessionManager
to correctly eagerly release preacquiredDRM sessions when there's a shortage of DRM resources on the device.
SecurityException
to bethrown from
Requirements.isInternetConnectivityValidated
on devicesrunning Android 11
(#9002).
(#9370).
across adaptation sets.
and would not raise an error to the application
(#9390).
(#9379).
(#9346).
(#9416).
(#9428).
defStyleAttr
when obtaining styled attributes inStyledPlayerView
,PlayerView
andPlayerControlView
(#9024).
PlayerControlView
(#9111).
StyledPlayerView
andPlayerView
don't update UI whenavailable player commands change.
CastPlayer.setPlaybackParameters(PlaybackParameters)
tosupport setting the playback speed
(#6784).
v2.15.0
MediaCodecAdapter.needsReconfiguration
method.getSeekBackIncrement
,seekBack
,getSeekForwardIncrement
,seekForward
,getMaxSeekToPreviousPosition
,seekToPrevious
andseekToNext
methods toPlayer
.Player
methods:hasPrevious
tohasPreviousWindow
.previous
toseekToPreviousWindow
.hasNext
tohasNextWindow
.next
toseekToNextWindow
.Player
commands:COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM
toCOMMAND_SEEK_IN_CURRENT_WINDOW
.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
toCOMMAND_SEEK_TO_NEXT_WINDOW
.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
toCOMMAND_SEEK_TO_PREVIOUS_WINDOW
.COMMAND_SEEK_TO_MEDIA_ITEM
toCOMMAND_SEEK_TO_WINDOW
.COMMAND_GET_MEDIA_ITEMS
toCOMMAND_GET_TIMELINE
.Player.EventFlags
IntDef toPlayer.Event
.Player
depend on the newPlaybackException
class instead ofExoPlaybackException
:Player.getPlayerError
now returns aPlaybackException
.Player.Listener.onPlayerError
now receives aPlaybackException
.Player.Listener.onPlayerErrorChanged
,which is equivalent to
onPlayerError
except that it is also calledwhen the player error becomes
null
.Player
implementations likeExoPlayer
may usePlaybackException
subclasses (likeExoPlaybackException
), sousers can downcast the
PlaybackException
instance to obtainimplementation-specific fields (like
ExoPlaybackException.rendererIndex
).PlaybackException
introduces anerrorCode
which identifies the causeof the failure in order to simplify error handling
(#1611).
DefaultMediaDescriptionAdapter
for thePlayerNotificationManager
, that makes use of thePlayer
MediaMetadata
to populate the notification fields.@FallbackType
toLoadErrorHandlingPolicy
to supportcustomization of the exclusion duration for locations and tracks.
LoadErrorHandlingPolicy
to support configuring thebehavior of track and location fallback. Location fallback is currently
only supported for DASH manifests with multiple base URLs.
AudioTrack.isDirectPlaybackSupported
to TVs, to avoidlisting audio offload encodings as supported for passthrough mode on
mobile devices
(#9239).
(#9163).
rubyPosition
value from a containing<span ruby="container">
element.font-size
property(#8964).
(#5067).
setUseRewindAction
andsetUseFastForwardAction
toPlayerNotificationManager
, andsetUseFastForwardActionInCompactView
and
setUseRewindActionInCompactView
to show the actions in compactview mode.
rewind_increment
andfastforward_increment
attributes fromPlayerControlView
andStyledPlayerControlView
. These increments canbe customized by configuring the
Player
(seesetSeekBackIncrementMs
and
setSeekForwardIncrementMs
inSimpleExoPlayer.Builder
), or byusing a
ForwardingPlayer
that overridesgetSeekBackIncrement
,seekBack
,getSeekForwardIncrement
andseekForward
. The rewind andfast forward buttons can be disabled by using a
ForwardingPlayer
thatremoves
COMMAND_SEEK_BACK
andCOMMAND_SEEK_FORWARD
from theavailable commands.
DefaultControlDispatcher
getRewindIncrementMs
andgetFastForwardIncrementMs
to take the player as parameter.Apps that are using
DefaultLoadErrorHandlingPolicy
with such manifestshave base URL fallback automatically enabled
(#771,
#7654).
(#8850,
#9153).
AnalyticsListener.onDownstreamFormatChanged()
for audio-onlyplaylists, so that the
PlaybackStatsListener
can derive audioformat-related information
(#9175).
(#9182).
(#9247).
(#9254).
StreamIndex
elementName
attribute value asFormat
label(#9252).
CronetDataSource.Factory.setRequestPriority
to allow setting thepriority of requests made by
CronetDataSource
instances.version requirement from 16 to 21.
CastPlayer
specific playlist manipulation methods. UsesetMediaItems
,addMediaItems
,removeMediaItem
andmoveMediaItem
instead.
Format.create
methods. UseFormat.Builder
instead.MediaSource.getTag
. UseMediaSource.getMediaItem
andMediaItem.PlaybackProperties.tag
instead.PlaybackPreparer
. UI components that previously hadsetPlaybackPreparer
methods will now callPlayer.prepare
by default.If this behavior is sufficient, use of
PlaybackPreparer
can be removedfrom application code without replacement. For custom preparation logic,
use a
ForwardingPlayer
that implements custom preparation logic inprepare
.Player.Listener.onTimelineChanged(Timeline, Object, int)
. UsePlayer.Listener.onTimelineChanged(Timeline, int)
instead. The manifestcan be accessed using
Player.getCurrentManifest
.Player.getCurrentTag
. UsePlayer.getCurrentMediaItem
andMediaItem.PlaybackProperties.tag
instead.Player.getPlaybackError
. UsePlayer.getPlayerError
instead.PlayerNotificationManager
constructors andcreateWith
methods. Use
PlayerNotificationManager.Builder
instead.PlayerNotificationManager.setNotificationListener
. UsePlayerNotificationManager.Builder.setNotificationListener
instead.PlayerNotificationManager
setUseNavigationActions
andsetUseNavigationActionsInCompactView
. UsesetUseNextAction
,setUsePreviousAction
,setUseNextActionInCompactView
andsetUsePreviousActionInCompactView
instead.setRewindIncrementMs
andsetFastForwardIncrementMs
from UIcomponents. These increments can be customized by configuring the
Player
(seesetSeekBackIncrementMs
andsetSeekForwardIncrementMs
in
SimpleExoPlayer.Builder
), or by using aForwardingPlayer
thatoverrides
getSeekBackIncrement
,seekBack
,getSeekForwardIncrement
and
seekForward
. The rewind and fast forward buttons can be disabledby using a
ForwardingPlayer
that removesCOMMAND_SEEK_BACK
andCOMMAND_SEEK_FORWARD
from the available commands.Timeline.getWindow(int, Window, boolean)
. UseTimeline.getWindow(int, Window)
instead, which will always set tags.v2.14.2
SimpleExoPlayer
as@Deprecated
.These methods are all overrides and are already deprecated on
Player
and the respective
ExoPlayer
component classes (since 2.14.0).IncorrectContextUseViolation
strict mode warning on Android 11(#8246).
AudioTrack.isDirectPlaybackSupported
to check for encoded audiopassthrough capability from API 29 onwards, instead of using the HDMI
audio plug intent
(#6500).
trun
atom could be associated with the wrong trackin an FMP4 stream
(#9056). The fix
removes a previous workaround to handle content in which the
track_ID
is set incorrectly
(#4083). Such content
is malformed and should be re-encoded.
(#7608).
(#9158).
(#9100).
transitioning to
STATE_ENDED
when the event ends(#9067).
EXT-X-MAP
tag in a media playlist, would not be loaded whenencountered during playback
(#9004).
FRAME-RATE
value from the master playlist to renditions.(#8960).
specified by an
EXT-X-START
tag when placed in a playlist(#9037).
media ID and ad tag URI)
(#9106.
DefaultDrmSession(Manager)
.DefaultDrmSessionManager.release()
incorrectlyreleasing too many keep-alive
DefaultDrmSession
references, resultingin
DefaultDrmSession.release()
throwing anIllegalStateException
(#9193).
(#9123).
PendingIntent.FLAG_IMMUTABLE
when creating broadcast intents inPlayerNotificationManager
. This is required by abehaviour change
in Android 12.
StyledPlayerView
andStyledPlayerControlView
popup menus on API levels prior to 26
(#9061).
(#9049).
StyledPlayerView
andStyledPlayerControlView
popup menu itemsnot expanding to occupy the full width of the popup
(#9086).
AttributeSet
fromSubtitleView
constructor intoCanvasSubtitleOutput
. Just passing theContext
is enough, andensures programmatic changes to the
SubtitleView
will propagate down.for duplicated attributes.
(#9014).
(#9183).
RtspMediaSource.Factory.setTimeoutMs
.v2.14.1
exoplayerRoot
when depending on ExoPlayer locally(#8927).
MediaItem.Builder
javadoc to discourage calling setters thatwill be (currently) ignored if another setter is not also called.
(#8860).
CodecException: Error 0xffffffff
to be thrownfrom
MediaCodec.native_setSurface
in use cases that involve bothswapping the output
Surface
and a mixture of secure and non-securecontent being played
(#8776).
PRECISE
attribute inEXT-X-START
to select the default startposition.
error (#8937).
MediaCodec
instances initialized when disabling (but notresetting)
MediaCodecRenderer
. This helps re-use secure decoders inmore contexts, which avoids the 'black flash' caused by detaching a
Surface
from a secure decoder on some devices(#8842). It will also
result in DRM license refresh network requests while the player is
stopped if
Player#setForegroundMode
is true.restored into a session before being released. This call sequence is
explicitly disallowed in OEMCrypto v16.
in
Cue.text
even whenSubtitleView#setApplyEmbeddedStyles()
isfalse
.NullPointerException
inStyledPlayerView
that could occur aftercalling
StyledPlayerView.setPlayer(null)
(#8985).
(#8941).
(#8994).
RtspMediaSource.Factory
option to set the RTSP user agent.RtspMediaSource.Factory
option to force using TCP for streaming.(#8992).
v2.14.0
Player
components toExoPlayer
. For examplePlayer.VideoComponent
is nowExoPlayer.VideoComponent
.Player
's audio, video, text and metadatacomponents have been added directly to
Player
.Player.getAvailableCommands
,Player.isCommandAvailable
andListener.onAvailableCommandsChanged
to query which commandsthat can be executed on the player.
Player.Listener
interface to receive all player events.Component listeners and
EventListener
have been deprecated.Player.getMediaMetadata
, which returns a combined and structuredMediaMetadata
object. Changes to metadata are reported toListener.onMediaMetadataChanged
.Player.setPlaybackParameters
no longer accepts null, usePlaybackParameters.DEFAULT
instead.Listener.onPositionDiscontinuity
. AddDISCONTINUITY_REASON_SKIP
and
DISCONTINUITY_REASON_REMOVE
as discontinuity reasons, and renameDISCONTINUITY_REASON_PERIOD_TRANSITION
toDISCONTINUITY_REASON_AUTO_TRANSITION
. RemoveDISCONTINUITY_REASON_AD_INSERTION
, for whichDISCONTINUITY_REASON_AUTO_TRANSITION
is used instead(#6163,
#4768).
ExoPlayer.Builder
. UseSimpleExoPlayer.Builder
instead.Player.getRendererCount
andPlayer.getRendererType
toExoPlayer
.set with
MediaItem.Builder.setMediaId(String)
.MediaCodecRenderer.configureCodec()
and addMediaCodecRenderer.getMediaCodecConfiguration()
. The new method iscalled just before the
MediaCodec
is created and returns theparameters needed to create and configure the
MediaCodec
instance.Applications can override
MediaCodecRenderer.onCodecInitialized()
tobe notified after a
MediaCodec
is initialized, or they can inject acustom
MediaCodecAdapter.Factory
if they want to control how theMediaCodec
is configured.AdaptiveTrackSelection.AdaptationCheckpoint
topublic
visibility to allow Kotlin subclasses of
AdaptiveTrackSelection.Factory
(#8830).
onMediaItemTransition
by mistake.AdsLoader.AdViewProvider
andAdsLoader.OverlayInfo
have been renamedcom.google.android.exoplayer2.ui.AdViewProvider
andcom.google.android.exoplayer2.ui.AdOverlayInfo
respectively.CaptionStyleCompat
has been moved to thecom.google.android.exoplayer2.ui
package.DebugTextViewHelper
has been moved from theui
package to theutil
package.
(#55).
CacheWriter
to correctly handle cases where the requestDataSpec
extends beyond the end of the underlying resource. Caching will now
succeed in this case, with data up to the end of the resource being
cached. This behaviour is enabled by default, and so the
allowShortContent
parameter has been removed(#7326).
CacheWriter
to correctly handleDataSource.close
failures, forwhich it cannot be assumed that data was successfully written to the
cache.
(#4133).
when playing content that uses the same encryption keys for both audio &
video tracks. Previously, separate acquire and release events were
dispatched for each track in each period.
PlayerNotificationManager.Builder
, with the ability tospecify which group the notification should belong to.
setUseSensorRotation
fromPlayerView
andStyledPlayerView
.Instead, cast the view returned by
getVideoSurfaceView
toSphericalGLSurfaceView
, and then callsetUseSensorRotation
on theSphericalGLSurfaceView
directly.onAudioCodecError
andonVideoCodecError
toAnalyticsListener
.Player.getVideoSize()
to retrieve the current size of the videostream. Add
Listener.onVideoSizeChanged(VideoSize)
and deprecateListener.onVideoSizeChanged(int, int, int, float)
.AnalyticsListener.onAudioSinkError
(#6384).
not supported.
SubtitleView.VIEW_TYPE_WEB
.Style:
lines(#8435).
tts:textAlign
is correctly propagated from<p>
nodes tochild nodes.
ebutts:multiRowAlign
attributes.MediaParser.
Only supported on API 30+.
MediaParserExtractorAdapter.FACTORY
when creating aProgressiveMediaSource.Factory
.MediaParserHlsMediaChunkExtractor.FACTORY
when creating aHlsMediaSource.Factory
.DefaultDashChunkSource
that usesMediaParserChunkExtractor.FACTORY
when creating a
DashMediaSource.Factory
.onMediaItemTransition
event for all reasons exceptMEDIA_ITEM_TRANSITION_REASON_REPEAT
.exoplayer-core
, relying onlyexoplayer-common
instead. To achieve this,
TimelineQueueEditor
uses a newMediaDescriptionConverter
interface, and no longer relies onConcatenatingMediaSource
.ExoPlayerFactory
. UseSimpleExoPlayer.Builder
instead.Player.DefaultEventListener
. UsePlayer.Listener
instead.ExtractorMediaSource
. UseProgressiveMediaSource
instead.DefaultMediaSourceEventListener
. UseMediaSourceEventListener
instead.
DashManifest
constructor. Use the remaining constructor withprogramInformation
andserviceDescription
set tonull
instead.CryptoInfo.getFrameworkCryptoInfoV16
. UseCryptoInfo.getFrameworkCryptoInfo
instead.NotificationUtil.createNotificationChannel(Context, String, int, int)
. UsecreateNotificationChannel(Context, String, int, int, int)
instead.
PlayerNotificationManager.setNotificationListener
. UsePlayerNotificationManager.Builder.setNotificationListener
instead.PlayerNotificationManager.NotificationListener
onNotificationStarted(int, Notification)
andonNotificationCancelled(int)
. UseonNotificationPosted(int, Notification, boolean)
andonNotificationCancelled(int, boolean)
instead.
DownloadNotificationUtil
. UseDownloadNotificationHelper
instead.
extension-jobdispatcher
module. Use theextension-workmanager
module instead.
v2.13.3
(#8664).
BehindLiveWindowException
(#8675).
codec input size
(#8705).
StyledPlayerView
scrubber not reappearing correctly in some cases(#8646).
StyledPlayerView
andStyledPlayerControlView
whenwrap_content
is used(#8726).
StyledPlayerControlView
to stay in full mode (rather than minimalmode) when possible
(#8763).
forced_subtitle
role from DASH manifests(#8781).
SegmentTemplate.getSegmentCount()
to return incorrect values
(#8804).
EXT-X-START
when setting the live target offset(#8764).
EXT-X-MAP
tags(#8783).
EXT-X-DISCONTINUITY
tags in different media playlists occur atdifferent positions in time
(#8372).
cases where the media playlists referenced by the master playlist have
different starting
EXT-X-PROGRAM-DATE-TIME
tags.or HTTP Content-Type
(#8733).
GContainer
andGContainerItem
XMP namespace prefixesin JPEG motion photo parsing.
JpegExtractor
.Style:
lines(#8435).
period (if known). This ensures sideloaded subtitles respect the end
point of
ClippingMediaPeriod
and prevents content subtitles fromcontinuing to be displayed over mid-roll ads
(#5317,
#8456).
spec (#8704).
textEmphasis
attributes, used for Japanese boutens.shear
attributes.(#8710).
onPositionDiscontinuity
event so that it is not triggered withreason
DISCONTINUITY_REASON_PERIOD_TRANSITION
after a seek to anothermedia item and so that it is not triggered after a timeline change.
AdPlaybackState
ad group times being cleared,which can occur if the
ImaAdsLoader
is released while an ad is pendingloading (#8693).
NullPointerExceptions
withinWebView
callbacks(#8447).
during playback (#8616).
v2.13.2
DefaultControlDispatcher
,PlayerControlView
,StyledPlayerControlView
,PlayerNotificationManager
andTimelineQueueNavigator
.the case where a live stream has ended.
SimpleExoPlayer
reporting audio session ID as 0 in some cases(#8585).
item with ads, if the preroll ad had preloaded but the window position
of the seek should instead trigger playback of a midroll.
index was used when deciding whether to trigger playback of an ad after
a seek.
Style:
lines(#8435).
(#8581).
(#8581).
(#8581).
(#8581).
v2.13.1
information (#8560).
(#8537).
enabled (#8570).
user seeks away and then back to a preloaded postroll (for example).
an ad media period before the ad URI was known then an ad state update
arrived that didn't set the ad URI.
ImaAdsLoader.focusSkipButton
to allow apps to request that theskip button should receive UI focus, if shown
(#8565).
DrmSessionManager
instance when playing a playlist(if possible)
(#8523).
(#8568).
DrmSession
inDefaultDrmSessionManager#release()
if keepalive is enabled(#8576).
v2.13.0
SimpleExoPlayer
by default. Opt-out isstill possible until the next major release using
setThrowsWhenUsingWrongThread(false)
(#4463).
Player.getCurrentStaticMetadata
andEventListener.onStaticMetadataChanged
to expose static metadatabelonging to the currently playing stream
(#7266).
PlayerMessage.setLooper
and deprecatePlayerMessage.setHandler
.MergingMediaSource
to clip the durations of all sourcesto have the same length
(#8422).
Player.setVideoDecoderOutputBufferRenderer
from Player API. UsesetVideoSurfaceView
andclearVideoSurfaceView
instead.SingleSampleMediaSource.treatLoadErrorsAsEndOfStream
totrue
so that errors loading external subtitle files do not cause playback
to fail (#8430). A
warning will be logged by
SingleSampleMediaPeriod
whenever a loaderror is treated as though the end of the stream has been reached.
stuck (#4352).
platform call is stuck
(#5887).
AnalyticsListener
callbacks could arrive in the wrongorder (#8048).
transformer
module for converting media streams. Theinitially available transformations are changing the container format,
removing tracks, and slow motion flattening.
low-latency HLS extension.
LiveConfiguration
toMediaItem
to define live offset andplayback speed adjustment parameters. The same parameters can be set on
DefaultMediaSourceFactory
to apply for allMediaItems
.LivePlaybackSpeedControl
to control playback speed adjustmentsduring live playbacks. Such adjustments allow the player to stay close
to the live offset.
DefaultLivePlaybackSpeedControl
is provided as adefault implementation.
targetLiveOffsetUs
parameter toLoadControl.shouldStartPlayback
.allow decoder capability checks based on codec profile and level
(#8393).
streams to allow decoder capability checks based on codec profile and
level (#8393).
(#5405).
stsd
information andstsz
fixed sample size in MP4 extractors.(#8496).
Player.getTrackSelector
to theExoPlayer
interface.TrackSelection
into anExoTrackSelection
subclass.
(#5111).
DefaultTrackSelector
.ParametersBuilder.setTunnelingAudioSessionId
has been replaced withParametersBuilder.setTunnelingEnabled
. The player's audio session IDwill be used, and so a tunneling specific ID is no longer needed.
DefaultTrackSelector
.DefaultTrackSelector.ParametersBuilder
now includes:setPreferredVideoMimeType
,setPreferredVideoMimeTypes
,setPreferredAudioMimeType
andsetPreferredAudioMimeTypes
forspecifying preferred video and audio MIME type(s)
(#8320).
setPreferredAudioLanguages
andsetPreferredTextLanguages
forspecifying multiple preferred audio and text languages.
setPreferredAudioRoleFlags
for specifying preferred audio roleflags.
Timeline
andMediaPeriodId
toTrackSelection.Factory
.availabilityTimeOffset
andServiceDescription
tags)(#4904).
chunk load error occurs in a live streams that contains EMSG data
(#8408).
reports.
EXT-X-PART
and preload hints)(#5011).
StyledPlayerControlView
button animations.StyledPlayerControlView
in minimal mode.Widevine or Clearkey protected content in a playlist.
ExoMediaDrm.KeyRequest.getRequestType
(#7847).
DefaultDrmSession
is releasedwhile waiting for the response. This prevents harmless log messages of
the form:
IllegalStateException: sending message to a Handler on a dead thread
(#8328).
MediaItem
bypassing a
DrmSessionManagerProvider
toMediaSourceFactory
(#8466).
onEvents
callback toPlayer.EventListener
andAnalyticsListener
. When one or more player states changesimultaneously,
onEvents
is called once after all of the callbacksassociated with the individual state changes.
DecoderReuseEvaluation
toAnalyticsListener
'sonVideoInputFormatChanged
andonAudioInputFormatChanged
methods. TheDecoderReuseEvaluation
indicates whether it was possible to re-use anexisting decoder instance for the new format, and if not then the
reasons why.
to 13 (#8530).
platform does not correctly report the VP9 level supported by the
decoder in this case, so we estimate it based on the decoder's maximum
supported bitrate.
(#8190).
SimpleExoPlayer
now generates an audio session ID on construction,which can be immediately queried by calling
SimpleExoPlayer.getAudioSessionId
. The audio session ID will onlychange if application code calls
SimpleExoPlayer.setAudioSessionId
.onAudioSessionId
withonAudioSessionIdChanged
inAudioListener
andAnalyticsListener
. Note thatonAudioSessionIdChanged
is called in fewer cases thanonAudioSessionId
was called, due to the improved handling of audiosession IDs as described above.
AudioTrack
error.AudioTrack
instances using the maximumsupported channel count (instead of assuming 6 channels) from API 29.
primaryColour
style attribute(#8435).
(#1807).
(#1807).
HttpDataSource
implementations, default to using the user agent ofthe underlying network stack.
HttpDataSource.Factory.getDefaultRequestProperties
.HttpDataSource.Factory.setDefaultRequestProperties
instead.DefaultHttpDataSource.Factory
and deprecateDefaultHttpDataSourceFactory
.(#3750).
ImaAdsLoader.Builder.setEnableContinuousPlayback
for settingwhether to request ads for continuous playback.
group (#7344,
#8339).
to snap back to the cue point of the preceding ad, rather than the
requested content position.
seek to a non-zero position. Unsupported VPAID ads will still be
skipped, but only after the preload timeout rather than instantly
(#8428,
#7832).
skipped due to playback being stuck buffering waiting for the second ad
to load (#8492).
average.
OkHttpDataSource.Factory
and deprecateOkHttpDataSourceFactory
.CronetDataSource.Factory
and deprecateCronetDataSourceFactory
.CronetDataSource.Factory
andCronetEngineWrapper
.setPlaybackSpeed(float)
and disable it by default. UseMediaSessionConnector.setEnabledPlaybackActions(long)
to enable(#8229).
AdaptiveMediaSourceEventListener
. UseMediaSourceEventListener
instead.
DashMediaSource.Factory.setMinLoadableRetryCount(int)
. UseDashMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.
DefaultAnalyticsListener
. UseAnalyticsListener
instead.DefaultLoadControl
constructors. UseDefaultLoadControl.Builder
instead.
DrmInitData.get(UUID)
. UseDrmInitData.get(int)
andDrmInitData.SchemeData.matches(UUID)
instead.ExtractorsMediaSource.Factory.setMinLoadableRetryCount(int)
. UseExtractorsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.
FixedTrackSelection.Factory
. If you need to disable adaptiveselection in
DefaultTrackSelector
, enable theDefaultTrackSelector.Parameters.forceHighestSupportedBitrate
flag.HlsMediaSource.Factory.setMinLoadableRetryCount(int)
. UseHlsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.
MappedTrackInfo.getTrackFormatSupport(int, int, int)
. UseMappedTrackInfo.getTrackSupport(int, int, int)
instead.MappedTrackInfo.getTrackTypeRendererSupport(int)
. UseMappedTrackInfo.getTypeSupport(int)
instead.MappedTrackInfo.getUnassociatedTrackGroups()
. UseMappedTrackInfo.getUnmappedTrackGroups()
instead.MappedTrackInfo.length
. UseMappedTrackInfo.getRendererCount()
instead.
Player.DefaultEventListener.onTimelineChanged(Timeline, Object)
.Use
Player.EventListener.onTimelineChanged(Timeline, int)
instead.Player.setAudioAttributes(AudioAttributes)
. UsePlayer.AudioComponent.setAudioAttributes(AudioAttributes, boolean)
instead.
PlayerView.setDefaultArtwork(Bitmap)
. UsePlayerView.setDefaultArtwork(Drawable)
instead.PlayerView.setShowBuffering(boolean)
. UsePlayerView.setShowBuffering(int)
instead.SimpleExoPlayer.clearMetadataOutput(MetadataOutput)
. UseSimpleExoPlayer.removeMetadataOutput(MetadataOutput)
instead.SimpleExoPlayer.clearTextOutput(TextOutput)
. UseSimpleExoPlayer.removeTextOutput(TextOutput)
instead.SimpleExoPlayer.clearVideoListener()
. UseSimpleExoPlayer.removeVideoListener(VideoListener)
instead.SimpleExoPlayer.getAudioStreamType()
. UseSimpleExoPlayer.getAudioAttributes()
instead.SimpleExoPlayer.setAudioDebugListener(AudioRendererEventListener)
.Use
SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)
instead.SimpleExoPlayer.setAudioStreamType(int)
. UseSimpleExoPlayer.setAudioAttributes(AudioAttributes)
instead.SimpleExoPlayer.setMetadataOutput(MetadataOutput)
. UseSimpleExoPlayer.addMetadataOutput(MetadataOutput)
instead. If yourapplication is calling
SimpleExoPlayer.setMetadataOutput(null)
, makesure to replace this call with a call to
SimpleExoPlayer.removeMetadataOutput(MetadataOutput)
.SimpleExoPlayer.setPlaybackParams(PlaybackParams)
. UseSimpleExoPlayer.setPlaybackParameters(PlaybackParameters)
instead.SimpleExoPlayer.setTextOutput(TextOutput)
. UseSimpleExoPlayer.addTextOutput(TextOutput)
instead. If yourapplication is calling
SimpleExoPlayer.setTextOutput(null)
, make sureto replace this call with a call to
SimpleExoPlayer.removeTextOutput(TextOutput)
.SimpleExoPlayer.setVideoDebugListener(VideoRendererEventListener)
.Use
SimpleExoPlayer.addAnalyticsListener(AnalyticsListener)
instead.SimpleExoPlayer.setVideoListener(VideoListener)
. UseSimpleExoPlayer.addVideoListener(VideoListener)
instead. If yourapplication is calling
SimpleExoPlayer.setVideoListener(null)
, makesure to replace this call with a call to
SimpleExoPlayer.removeVideoListener(VideoListener)
.SimpleExoPlayer.VideoListener
. Usecom.google.android.exoplayer2.video.VideoListener
instead.SingleSampleMediaSource.EventListener
and constructors. UseMediaSourceEventListener
andSingleSampleMediaSource.Factory
instead.
SimpleExoPlayer.addVideoDebugListener
,SimpleExoPlayer.removeVideoDebugListener
,SimpleExoPlayer.addAudioDebugListener
andSimpleExoPlayer.removeAudioDebugListener
. UseSimpleExoPlayer.addAnalyticsListener
andSimpleExoPlayer.removeAnalyticsListener
instead.SingleSampleMediaSource.Factory.setMinLoadableRetryCount(int)
. UseSingleSampleMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.
SsMediaSource.Factory.setMinLoadableRetryCount(int)
. UseSsMediaSource.Factory.setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy)
instead.
v2.12.3
MediaCodecRenderer
issue where empty streams would fail to play inbypass mode (#8374).
(#8349).
LoadErrorHandlingPolicy
fromDefaultMediaSourceFactory
intoSingleSampleMediaSource.Factory
whencreating 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 stoppeddownload with the same ID as a download currently being removed
(#8419).
containers.
(#1807).
(#8205).
with an ad playing but without ad media info
(#8290).
fix a deadlock while creating PlaybackStateCompat internally.
(#8011).
v2.12.2
receiver (#8087,
#8106).
(#8103).
extension audio renderers are being used
(#8203).
StyledPlayerControlView
fast forward and rewind buttons, when used together with the
com.google.android.material
library(#7898).
dispatchPrepare(Player)
toControlDispatcher
and implement it inDefaultControlDispatcher
. DeprecatePlaybackPreparer
andsetPlaybackPreparer
inStyledPlayerView
,StyledPlayerControlView
,PlayerView
,PlayerControlView
,PlayerNotificationManager
andLeanbackPlayerAdapter
and useControlDispatcher
for dispatchingprepare instead
(#7882).
StyledPlayerControlView
.StyledPlayerControlView
menu items to behave correctly forright-to-left languages.
PlayerNotificationManager
.AudioManager
crashes when callinggetStreamVolume
(#8191).
16-bit big endian integer PCM
(#8142).
(#8257).
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.