Make StyledPlayerView depend on PlaybackException

PiperOrigin-RevId: 377480089
This commit is contained in:
aquilescanta 2021-06-04 11:39:09 +01:00 committed by bachinger
parent cc3cd702ff
commit 536f7c8dbe
2 changed files with 24 additions and 26 deletions

View file

@ -456,14 +456,13 @@ public class PlayerActivity extends AppCompatActivity
}
}
private class PlayerErrorMessageProvider implements ErrorMessageProvider<ExoPlaybackException> {
private class PlayerErrorMessageProvider implements ErrorMessageProvider<PlaybackException> {
@Override
@NonNull
public Pair<Integer, String> getErrorMessage(@NonNull ExoPlaybackException e) {
public Pair<Integer, String> getErrorMessage(@NonNull PlaybackException e) {
String errorString = getString(R.string.error_generic);
if (e.type == ExoPlaybackException.TYPE_RENDERER) {
Exception cause = e.getRendererException();
Throwable cause = e.getCause();
if (cause instanceof DecoderInitializationException) {
// Special case for decoder initialization failures.
DecoderInitializationException decoderInitializationException =
@ -486,7 +485,6 @@ public class PlayerActivity extends AppCompatActivity
decoderInitializationException.codecInfo.name);
}
}
}
return Pair.create(0, errorString);
}
}

View file

@ -48,8 +48,8 @@ import androidx.annotation.RequiresApi;
import androidx.core.content.ContextCompat;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ControlDispatcher;
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.Player.DiscontinuityReason;
import com.google.android.exoplayer2.Timeline;
@ -306,7 +306,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
@Nullable private Drawable defaultArtwork;
private @ShowBuffering int showBuffering;
private boolean keepContentOnPlayerReset;
@Nullable private ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider;
@Nullable private ErrorMessageProvider<? super PlaybackException> errorMessageProvider;
@Nullable private CharSequence customErrorMessage;
private int controllerShowTimeoutMs;
private boolean controllerAutoShow;
@ -760,7 +760,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
* @param errorMessageProvider The error message provider.
*/
public void setErrorMessageProvider(
@Nullable ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider) {
@Nullable ErrorMessageProvider<? super PlaybackException> errorMessageProvider) {
if (this.errorMessageProvider != errorMessageProvider) {
this.errorMessageProvider = errorMessageProvider;
updateErrorMessage();
@ -1414,7 +1414,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
errorMessageView.setVisibility(View.VISIBLE);
return;
}
@Nullable ExoPlaybackException error = player != null ? player.getPlayerError() : null;
@Nullable PlaybackException error = player != null ? player.getPlayerError() : null;
if (error != null && errorMessageProvider != null) {
CharSequence errorMessage = errorMessageProvider.getErrorMessage(error).second;
errorMessageView.setText(errorMessage);