From 34fa7a66c53149a03cd1f8982b0bafb1e269dd17 Mon Sep 17 00:00:00 2001
From: TadejZupancic <19649651+TadejZupancic@users.noreply.github.com>
Date: Mon, 1 Feb 2021 20:03:04 +0100
Subject: [PATCH 01/53] Add option to add playback speed button and audio track
selection button via xml. So far only settings button existed that opened a
submenu with the playback speed button and audio track selection button.
---
.../ui/StyledPlayerControlView.java | 19 +++++++++++++++++++
.../exoplayer2/ui/StyledPlayerView.java | 2 ++
library/ui/src/main/res/values/ids.xml | 3 +++
library/ui/src/main/res/values/styles.xml | 10 ++++++++++
4 files changed, 34 insertions(+)
diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
index ea9f4508a3..44711a76a5 100644
--- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
+++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
@@ -455,6 +455,9 @@ public class StyledPlayerControlView extends FrameLayout {
@Nullable private ImageView fullScreenButton;
@Nullable private ImageView minimalFullScreenButton;
@Nullable private View settingsButton;
+ @Nullable private View playbackSpeedButton;
+ @Nullable private View audioTrackButton;
+
public StyledPlayerControlView(Context context) {
this(context, /* attrs= */ null);
@@ -573,6 +576,16 @@ public class StyledPlayerControlView extends FrameLayout {
settingsButton.setOnClickListener(componentListener);
}
+ playbackSpeedButton = findViewById(R.id.exo_playback_speed);
+ if (playbackSpeedButton != null) {
+ playbackSpeedButton.setOnClickListener(componentListener);
+ }
+
+ audioTrackButton = findViewById(R.id.exo_audio_track);
+ if (audioTrackButton != null) {
+ audioTrackButton.setOnClickListener(componentListener);
+ }
+
TimeBar customTimeBar = findViewById(R.id.exo_progress);
View timeBarPlaceholder = findViewById(R.id.exo_progress_placeholder);
if (customTimeBar != null) {
@@ -1871,6 +1884,12 @@ public class StyledPlayerControlView extends FrameLayout {
} else if (settingsButton == view) {
controlViewLayoutManager.removeHideCallbacks();
displaySettingsWindow(settingsAdapter);
+ } else if (playbackSpeedButton == view) {
+ controlViewLayoutManager.removeHideCallbacks();
+ onSettingViewClicked(SETTINGS_PLAYBACK_SPEED_POSITION);
+ } else if (audioTrackButton == view) {
+ controlViewLayoutManager.removeHideCallbacks();
+ onSettingViewClicked(SETTINGS_AUDIO_TRACK_SELECTION_POSITION);
} else if (subtitleButton == view) {
controlViewLayoutManager.removeHideCallbacks();
displaySettingsWindow(textTrackSelectionAdapter);
diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
index 36e4a2ed62..593d7a7f84 100644
--- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
+++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
@@ -65,6 +65,7 @@ import com.google.android.exoplayer2.ui.spherical.SingleTapListener;
import com.google.android.exoplayer2.ui.spherical.SphericalGLSurfaceView;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.ErrorMessageProvider;
+import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.RepeatModeUtil;
import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.VideoDecoderGLSurfaceView;
@@ -594,6 +595,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro
subtitleView.setCues(null);
}
this.player = player;
+ Log.d("test track", this.player.getTrackSelector().toString());
if (useController()) {
controller.setPlayer(player);
}
diff --git a/library/ui/src/main/res/values/ids.xml b/library/ui/src/main/res/values/ids.xml
index 2b3e80beb8..2afc6ad47e 100644
--- a/library/ui/src/main/res/values/ids.xml
+++ b/library/ui/src/main/res/values/ids.xml
@@ -41,4 +41,7 @@
+
+
+
diff --git a/library/ui/src/main/res/values/styles.xml b/library/ui/src/main/res/values/styles.xml
index a7d44ec59b..84f2db543d 100644
--- a/library/ui/src/main/res/values/styles.xml
+++ b/library/ui/src/main/res/values/styles.xml
@@ -192,6 +192,16 @@
- @string/exo_controls_settings_description
+
+
+
+