diff options
Diffstat (limited to 'core/src/main')
4 files changed, 42 insertions, 24 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/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index bf59b0ffd..0ec325e85 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -643,7 +643,18 @@ public class PlaybackService extends MediaBrowserServiceCompat { private void startPlayingFromPreferences() { Playable playable = Playable.PlayableUtils.createInstanceFromPreferences(getApplicationContext()); if (playable != null) { - mediaPlayer.playMediaObject(playable, false, true, true); + if (PlaybackPreferences.getCurrentEpisodeIsStream() && !NetworkUtils.isStreamingAllowed()) { + displayStreamingNotAllowedNotification( + new PlaybackServiceStarter(this, playable) + .prepareImmediately(true) + .startWhenPrepared(true) + .shouldStream(true) + .getIntent()); + PlaybackPreferences.writeNoMediaPlaying(); + stateManager.stopService(); + return; + } + mediaPlayer.playMediaObject(playable, PlaybackPreferences.getCurrentEpisodeIsStream(), true, true); stateManager.validStartCommandWasReceived(); PlaybackService.this.updateMediaSessionMetadata(playable); } else { 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 a97ce1339..1be8029d7 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -283,6 +283,7 @@ <string name="playback_error_server_died">Server died</string> <string name="playback_error_unsupported">Unsupported media type</string> <string name="playback_error_timeout">Operation timed out</string> + <string name="playback_error_source">Unable to access media file</string> <string name="playback_error_unknown">Unknown Error</string> <string name="no_media_playing_label">No media playing</string> <string name="position_default_label" translate="false">00:00:00</string> @@ -486,7 +487,7 @@ <string name="pref_smart_mark_as_played_disabled">Disabled</string> <string name="pref_image_cache_size_title">Image Cache Size</string> <string name="pref_image_cache_size_sum">Size of the disk cache for images.</string> - <string name="view_mailing_list">View mailing list</string> + <string name="visit_user_forum">Visit user forum</string> <string name="bug_report_title">Report bug</string> <string name="open_bug_tracker">Open bug tracker</string> <string name="export_logs">Export logs</string> |