diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java index 69f9f0ac4f..419e168b5c 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java @@ -239,6 +239,11 @@ public final class MediaMetricsListener @Override public void onDownstreamFormatChanged(EventTime eventTime, MediaLoadData mediaLoadData) { + if (eventTime.mediaPeriodId == null) { + // This event arrived after the media has been removed from the playlist or a custom + // MediaSource forgot to set the right id. Ignore the track change in these cases. + return; + } PendingFormatUpdate update = new PendingFormatUpdate( checkNotNull(mediaLoadData.trackFormat),