diff --git a/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java b/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java index fc1552684b..598d9ac24d 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java @@ -178,7 +178,7 @@ public class ForwardingPlayer implements Player { @Nullable @Override - public ExoPlaybackException getPlayerError() { + public PlaybackException getPlayerError() { return player.getPlayerError(); } diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Player.java b/library/common/src/main/java/com/google/android/exoplayer2/Player.java index b4ff733896..05ab6c04dd 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Player.java @@ -1472,7 +1472,7 @@ public interface Player { * @see Listener#onPlayerError(ExoPlaybackException) */ @Nullable - ExoPlaybackException getPlayerError(); + PlaybackException getPlayerError(); /** * Resumes playback as soon as {@link #getPlaybackState()} == {@link #STATE_READY}. Equivalent to diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java index eb91430977..72274d31c4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java @@ -834,6 +834,13 @@ public interface ExoPlayer extends Player { } } + /** + * Equivalent to {@link Player#getPlayerError()}, except the exception is guaranteed to be an + * {@link ExoPlaybackException}. + */ + @Override + ExoPlaybackException getPlayerError(); + /** Returns the component of this player for audio output, or null if audio is not supported. */ @Nullable AudioComponent getAudioComponent(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java index 2ca886a5e6..afed2c7711 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java @@ -22,8 +22,8 @@ import android.os.SystemClock; import android.util.Pair; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.Format; +import com.google.android.exoplayer2.PlaybackException; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline.Period; @@ -489,7 +489,7 @@ public final class PlaybackStatsListener int droppedFrameCount, boolean hasAudioUnderun, boolean startedLoading, - @Nullable ExoPlaybackException fatalError, + @Nullable PlaybackException fatalError, @Nullable Exception nonFatalException, long bandwidthTimeMs, long bandwidthBytes, diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index d0cfe1eaee..e83d2a2a1a 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -195,7 +195,9 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { } } if (events.contains(EVENT_PLAYER_ERROR)) { - playerError = checkNotNull(player.getPlayerError()); + // The exception is guaranteed to be an ExoPlaybackException because the underlying player is + // an ExoPlayer instance. + playerError = (ExoPlaybackException) checkNotNull(player.getPlayerError()); onPlayerErrorInternal(playerError); } if (events.contains(EVENT_PLAYBACK_STATE_CHANGED)) {