summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2018-04-19 22:11:29 +0200
committerByteHamster <info@bytehamster.com>2018-04-19 22:11:29 +0200
commit06dab67b03a2a6a26963028aeacdecbba076009a (patch)
tree8b6ad85fe4d5f016fc2db7f256db3198e4eba359
parent7e61de3f65e4ec18c045a36cde44e661b07a1a5c (diff)
downloadAntennaPod-06dab67b03a2a6a26963028aeacdecbba076009a.zip
Fixed some warnings
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayer.java114
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java3
2 files changed, 81 insertions, 36 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayer.java
index e6d9e399b..8b4678cb2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayer.java
@@ -4,44 +4,97 @@ import android.content.Context;
import android.net.Uri;
import android.view.SurfaceHolder;
import com.google.android.exoplayer2.DefaultLoadControl;
+import com.google.android.exoplayer2.DefaultRenderersFactory;
+import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.SimpleExoPlayer;
-import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
-import com.google.android.exoplayer2.extractor.ExtractorsFactory;
+import com.google.android.exoplayer2.Timeline;
+import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.source.MediaSource;
+import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
+import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
import de.danoeh.antennapod.core.util.playback.IPlayer;
import org.antennapod.audio.MediaPlayer;
-import java.io.File;
-import java.io.IOException;
-/**
- * @author Hans-Peter Lehmann
- * @version 1.0
- */
public class ExoPlayer implements IPlayer {
private final Context mContext;
private SimpleExoPlayer mExoPlayer;
private MediaSource mediaSource;
private MediaPlayer.OnSeekCompleteListener audioSeekCompleteListener;
+ private MediaPlayer.OnCompletionListener audioCompletionListener;
+ private MediaPlayer.OnErrorListener audioErrorListener;
- public ExoPlayer(Context context) {
+ ExoPlayer(Context context) {
mContext = context;
mExoPlayer = createPlayer();
}
private SimpleExoPlayer createPlayer() {
- SimpleExoPlayer p = ExoPlayerFactory.newSimpleInstance(
- mContext, new DefaultTrackSelector(), new DefaultLoadControl());
+ SimpleExoPlayer p = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(mContext),
+ new DefaultTrackSelector(), new DefaultLoadControl());
p.setSeekParameters(SeekParameters.PREVIOUS_SYNC);
+ p.addListener(new Player.EventListener() {
+ @Override
+ public void onTimelineChanged(Timeline timeline, Object manifest, int reason) {
+
+ }
+
+ @Override
+ public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
+
+ }
+
+ @Override
+ public void onLoadingChanged(boolean isLoading) {
+
+ }
+
+ @Override
+ public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
+ if (playbackState == Player.STATE_ENDED) {
+ audioCompletionListener.onCompletion(null);
+ }
+ }
+
+ @Override
+ public void onRepeatModeChanged(int repeatMode) {
+
+ }
+
+ @Override
+ public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
+
+ }
+
+ @Override
+ public void onPlayerError(ExoPlaybackException error) {
+ audioErrorListener.onError(null, 0, 0);
+ }
+
+ @Override
+ public void onPositionDiscontinuity(int reason) {
+
+ }
+
+ @Override
+ public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
+
+ }
+
+ @Override
+ public void onSeekProcessed() {
+
+ }
+ });
return p;
}
@@ -136,7 +189,12 @@ public class ExoPlayer implements IPlayer {
@Override
public void setAudioStreamType(int i) {
- mExoPlayer.setAudioStreamType(i);
+ AudioAttributes a = mExoPlayer.getAudioAttributes();
+ AudioAttributes.Builder b = new AudioAttributes.Builder();
+ b.setContentType(i);
+ b.setFlags(a.flags);
+ b.setUsage(a.usage);
+ mExoPlayer.setAudioAttributes(b.build());
}
@Override
@@ -145,14 +203,11 @@ public class ExoPlayer implements IPlayer {
}
@Override
- public void setDataSource(String s) throws IllegalArgumentException, IllegalStateException, IOException {
+ public void setDataSource(String s) throws IllegalArgumentException, IllegalStateException {
DataSource.Factory dataSourceFactory =
- new DefaultDataSourceFactory(
- mContext, Util.getUserAgent(mContext, "uamp"), null);
- // Produces Extractor instances for parsing the media data.
- ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
- mediaSource = new ExtractorMediaSource(
- Uri.parse(s), dataSourceFactory, extractorsFactory, null, null);
+ new DefaultDataSourceFactory(mContext, Util.getUserAgent(mContext, mContext.getPackageName()), null);
+ ExtractorMediaSource.Factory f = new ExtractorMediaSource.Factory(dataSourceFactory);
+ mediaSource = f.createMediaSource(Uri.parse(s));
}
@Override
@@ -217,33 +272,26 @@ public class ExoPlayer implements IPlayer {
mExoPlayer.setVideoScalingMode(mode);
}
- public void setOnCompletionListener(MediaPlayer.OnCompletionListener audioCompletionListener) {
+ void setOnCompletionListener(MediaPlayer.OnCompletionListener audioCompletionListener) {
+ this.audioCompletionListener = audioCompletionListener;
}
- public void setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener audioSeekCompleteListener) {
+ void setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener audioSeekCompleteListener) {
this.audioSeekCompleteListener = audioSeekCompleteListener;
}
- public void setOnErrorListener(MediaPlayer.OnErrorListener audioErrorListener) {
- }
-
- public void setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener audioBufferingUpdateListener) {
- }
-
- public void setOnInfoListener(MediaPlayer.OnInfoListener audioInfoListener) {
- }
-
- public void setOnSpeedAdjustmentAvailableChangedListener(MediaPlayer.OnSpeedAdjustmentAvailableChangedListener audioSetSpeedAbilityListener) {
+ void setOnErrorListener(MediaPlayer.OnErrorListener audioErrorListener) {
+ this.audioErrorListener = audioErrorListener;
}
- public int getVideoWidth() {
+ int getVideoWidth() {
if (mExoPlayer.getVideoFormat() == null) {
return 0;
}
return mExoPlayer.getVideoFormat().width;
}
- public int getVideoHeight() {
+ int getVideoHeight() {
if (mExoPlayer.getVideoFormat() == null) {
return 0;
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
index 0218bde14..ce8993cbd 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
@@ -881,9 +881,6 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
ap.setOnCompletionListener(audioCompletionListener);
ap.setOnSeekCompleteListener(audioSeekCompleteListener);
ap.setOnErrorListener(audioErrorListener);
- ap.setOnBufferingUpdateListener(audioBufferingUpdateListener);
- ap.setOnInfoListener(audioInfoListener);
- ap.setOnSpeedAdjustmentAvailableChangedListener(audioSetSpeedAbilityListener);
} else {
Log.w(TAG, "Unknown media player: " + mp);
}