From 2b22f116cdb2a53c26aec9108e9810ed5e9a6bc7 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 22 Feb 2020 00:10:20 +0100 Subject: Added ExoPlayer error messages --- .../core/service/playback/ExoPlayerWrapper.java | 3 +- .../core/util/playback/MediaPlayerError.java | 47 ++++++++++++---------- core/src/main/res/values/strings.xml | 1 + 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java index 8f7e84561..19ef3d36f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java @@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit; public class ExoPlayerWrapper implements IPlayer { private static final String TAG = "ExoPlayerWrapper"; + public static final int ERROR_CODE_OFFSET = 1000; private final Context mContext; private final Disposable bufferingUpdateDisposable; private SimpleExoPlayer mExoPlayer; @@ -109,7 +110,7 @@ public class ExoPlayerWrapper implements IPlayer { @Override public void onPlayerError(ExoPlaybackException error) { if (audioErrorListener != null) { - audioErrorListener.onError(null, 0, 0); + audioErrorListener.onError(null, error.type + ERROR_CODE_OFFSET, 0); } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/MediaPlayerError.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/MediaPlayerError.java index 32d37a67e..8ca8bbf6c 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/MediaPlayerError.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/MediaPlayerError.java @@ -2,30 +2,35 @@ package de.danoeh.antennapod.core.util.playback; import android.content.Context; import android.media.MediaPlayer; - +import com.google.android.exoplayer2.ExoPlaybackException; import de.danoeh.antennapod.core.R; +import de.danoeh.antennapod.core.service.playback.ExoPlayerWrapper; /** Utility class for MediaPlayer errors. */ public class MediaPlayerError { - private MediaPlayerError(){} + private MediaPlayerError(){} - /** Get a human-readable string for a specific error code. */ - public static String getErrorString(Context context, int code) { - int resId; - switch(code) { - case MediaPlayer.MEDIA_ERROR_SERVER_DIED: - resId = R.string.playback_error_server_died; - break; - case MediaPlayer.MEDIA_ERROR_UNSUPPORTED: - resId = R.string.playback_error_unsupported; - break; - case MediaPlayer.MEDIA_ERROR_TIMED_OUT: - resId = R.string.playback_error_timeout; - break; - default: - resId = R.string.playback_error_unknown; - break; - } - return context.getString(resId) + " (" + code + ")"; - } + /** Get a human-readable string for a specific error code. */ + public static String getErrorString(Context context, int code) { + int resId; + switch (code) { + case MediaPlayer.MEDIA_ERROR_SERVER_DIED: + resId = R.string.playback_error_server_died; + break; + case MediaPlayer.MEDIA_ERROR_UNSUPPORTED: // fall-through + case ExoPlayerWrapper.ERROR_CODE_OFFSET + ExoPlaybackException.TYPE_RENDERER: + resId = R.string.playback_error_unsupported; + break; + case MediaPlayer.MEDIA_ERROR_TIMED_OUT: + resId = R.string.playback_error_timeout; + break; + case ExoPlayerWrapper.ERROR_CODE_OFFSET + ExoPlaybackException.TYPE_SOURCE: + resId = R.string.playback_error_source; + break; + default: + resId = R.string.playback_error_unknown; + break; + } + return context.getString(resId) + " (" + code + ")"; + } } diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 8cb9f7b84..72388725c 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -283,6 +283,7 @@ Server died Unsupported media type Operation timed out + Unable to access media file Unknown Error No media playing 00:00:00 -- cgit v1.2.3