summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2019-11-18 16:26:25 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-11-18 16:26:25 -0800
commit73aa04b4639688674712d18b65b3121a7f49e20a (patch)
tree0e94120d86edc047b734b6ef2ece78cbb569202c
parentff85df5bebc600f844d162fcefc01713141c28ec (diff)
parent287097108b913837ba76565ab07cbcb7ceb6ea1c (diff)
downloadUniversalMediaPlayer-73aa04b4639688674712d18b65b3121a7f49e20a.tar.gz
Updating VideoPlayer as per androidx.media library changes am: 08320e11d6android-r-preview-4android-r-preview-3android-r-preview-2
am: 287097108b Change-Id: Ie3139884815b51f5c45f504ded4358e91fb44d5e
-rw-r--r--Android.bp1
-rw-r--r--build.gradle3
-rw-r--r--java/com/android/pump/activity/AudioPlayerActivity.java23
-rw-r--r--java/com/android/pump/activity/VideoPlayerActivity.java69
4 files changed, 56 insertions, 40 deletions
diff --git a/Android.bp b/Android.bp
index 3c7f1e2..b12b53c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -25,6 +25,7 @@ android_app {
static_libs: [
"androidx-constraintlayout_constraintlayout",
"androidx.media2_media2-widget",
+ "androidx.media2_media2-player",
"com.google.android.material_material"
],
optimize: {
diff --git a/build.gradle b/build.gradle
index cf219d4..2f87314 100644
--- a/build.gradle
+++ b/build.gradle
@@ -63,6 +63,7 @@ repositories {
dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation 'androidx.media2:media2-widget:1.0.0-alpha07'
+ implementation 'androidx.media2:media2-widget:+'
+ implementation 'androidx.media2:media2-player:+'
implementation 'com.google.android.material:material:1.0.0'
}
diff --git a/java/com/android/pump/activity/AudioPlayerActivity.java b/java/com/android/pump/activity/AudioPlayerActivity.java
index d55d286..cfdb651 100644
--- a/java/com/android/pump/activity/AudioPlayerActivity.java
+++ b/java/com/android/pump/activity/AudioPlayerActivity.java
@@ -27,7 +27,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.media.AudioAttributesCompat;
import androidx.media2.common.UriMediaItem;
+import androidx.media2.player.MediaPlayer;
import androidx.media2.widget.VideoView;
import com.android.pump.R;
@@ -44,6 +46,7 @@ public class AudioPlayerActivity extends AppCompatActivity {
private static final String TAG = Clog.tag(AudioPlayerActivity.class);
private VideoView mVideoView;
+ private MediaPlayer mMediaPlayer;
public static void start(@NonNull Context context, @NonNull Audio audio) {
// TODO(b/123702587) Find a better URI (audio.getUri()?)
@@ -118,6 +121,14 @@ public class AudioPlayerActivity extends AppCompatActivity {
setContentView(R.layout.activity_audio_player);
mVideoView = findViewById(R.id.video_view);
+ mMediaPlayer = new MediaPlayer(AudioPlayerActivity.this);
+ AudioAttributesCompat audioAttributes = new AudioAttributesCompat.Builder()
+ .setUsage(AudioAttributesCompat.USAGE_MEDIA)
+ .setContentType(AudioAttributesCompat.CONTENT_TYPE_MOVIE).build();
+
+ mMediaPlayer.setAudioAttributes(audioAttributes);
+ mVideoView.setPlayer(mMediaPlayer);
+
handleIntent();
}
@@ -138,6 +149,16 @@ public class AudioPlayerActivity extends AppCompatActivity {
return;
}
UriMediaItem mediaItem = new UriMediaItem.Builder(uri).build();
- mVideoView.setMediaItem(mediaItem);
+ mMediaPlayer.setMediaItem(mediaItem);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ try {
+ if (mMediaPlayer != null) {
+ mMediaPlayer.close();
+ }
+ } catch (Exception e) { }
}
}
diff --git a/java/com/android/pump/activity/VideoPlayerActivity.java b/java/com/android/pump/activity/VideoPlayerActivity.java
index 1e75c40..1ef7709 100644
--- a/java/com/android/pump/activity/VideoPlayerActivity.java
+++ b/java/com/android/pump/activity/VideoPlayerActivity.java
@@ -27,15 +27,14 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.media2.common.MediaItem;
+import androidx.core.content.ContextCompat;
+import androidx.media.AudioAttributesCompat;
import androidx.media2.common.SessionPlayer;
import androidx.media2.common.UriMediaItem;
-import androidx.media2.session.MediaController;
-import androidx.media2.session.SessionToken;
+import androidx.media2.player.MediaPlayer;
import androidx.media2.widget.VideoView;
import com.android.pump.R;
-import com.android.pump.concurrent.Executors;
import com.android.pump.db.Video;
import com.android.pump.util.Clog;
import com.android.pump.util.IntentUtils;
@@ -46,7 +45,7 @@ public class VideoPlayerActivity extends AppCompatActivity {
private static final String SAVED_POSITION_KEY = "SavedPosition";
private VideoView mVideoView;
- private MediaController mMediaController;
+ private MediaPlayer mMediaPlayer;
private long mSavedPosition = SessionPlayer.UNKNOWN_TIME;
public static void start(@NonNull Context context, @NonNull Video video) {
@@ -70,38 +69,24 @@ public class VideoPlayerActivity extends AppCompatActivity {
SessionPlayer.UNKNOWN_TIME);
}
+ mMediaPlayer = new MediaPlayer(VideoPlayerActivity.this);
+ AudioAttributesCompat audioAttributes = new AudioAttributesCompat.Builder()
+ .setUsage(AudioAttributesCompat.USAGE_MEDIA)
+ .setContentType(AudioAttributesCompat.CONTENT_TYPE_MOVIE).build();
+
+ mMediaPlayer.setAudioAttributes(audioAttributes);
+ mVideoView.setPlayer(mMediaPlayer);
+
handleIntent();
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
- if (mMediaController != null) {
- outState.putLong(SAVED_POSITION_KEY, mMediaController.getCurrentPosition());
- }
-
+ outState.putLong(SAVED_POSITION_KEY, mMediaPlayer.getCurrentPosition());
super.onSaveInstanceState(outState);
}
@Override
- public void onAttachedToWindow() {
- if (mMediaController == null) {
- SessionToken token = mVideoView.getSessionToken();
- mMediaController = new MediaController.Builder(this)
- .setSessionToken(token)
- .setControllerCallback(Executors.uiThreadExecutor(), new ControllerCallback())
- .build();
- }
- }
-
- @Override
- public void onDetachedFromWindow() {
- if (mMediaController != null) {
- mMediaController.close();
- mMediaController = null;
- }
- }
-
- @Override
protected void onNewIntent(@Nullable Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
@@ -118,18 +103,26 @@ public class VideoPlayerActivity extends AppCompatActivity {
return;
}
UriMediaItem mediaItem = new UriMediaItem.Builder(uri).build();
- mVideoView.setMediaItem(mediaItem);
+ mMediaPlayer.setMediaItem(mediaItem)
+ .addListener(new Runnable() {
+ @Override
+ public void run() {
+ if (mSavedPosition != SessionPlayer.UNKNOWN_TIME) {
+ mMediaPlayer.seekTo(mSavedPosition);
+ mSavedPosition = SessionPlayer.UNKNOWN_TIME;
+ }
+ mMediaPlayer.play();
+ }
+ }, ContextCompat.getMainExecutor(this));
}
- private class ControllerCallback extends MediaController.ControllerCallback {
- @Override
- public void onCurrentMediaItemChanged(@NonNull MediaController controller,
- @Nullable MediaItem item) {
- if (mSavedPosition != SessionPlayer.UNKNOWN_TIME) {
- controller.seekTo(mSavedPosition);
- mSavedPosition = SessionPlayer.UNKNOWN_TIME;
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ try {
+ if (mMediaPlayer != null) {
+ mMediaPlayer.close();
}
- controller.play();
- }
+ } catch (Exception e) { }
}
}