pull/137/head
FongMi 3 years ago
parent 43606d3155
commit a0abd72c0e
  1. 34
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/player/Players.java

@ -83,15 +83,15 @@ public class ExoUtil {
return count > 0;
}
public static void selectTrack(ExoPlayer player, int type, int group, int track) {
public static void selectTrack(ExoPlayer player, int group, int track) {
List<Integer> trackIndices = new ArrayList<>();
selectTrack(player, type, track, trackIndices);
selectTrack(player, group, track, trackIndices);
setTrackParameters(player, group, trackIndices);
}
public static void deselectTrack(ExoPlayer player, int type, int group, int track) {
public static void deselectTrack(ExoPlayer player, int group, int track) {
List<Integer> trackIndices = new ArrayList<>();
deselectTrack(player, type, track, trackIndices);
deselectTrack(player, group, track, trackIndices);
setTrackParameters(player, group, trackIndices);
}
@ -124,27 +124,17 @@ public class ExoUtil {
return items;
}
private static void selectTrack(ExoPlayer player, int type, int track, List<Integer> trackIndices) {
List<Tracks.Group> groups = player.getCurrentTracks().getGroups();
for (int i = 0; i < groups.size(); i++) {
Tracks.Group trackGroup = groups.get(i);
if (trackGroup.getType() != type) continue;
for (int j = 0; j < trackGroup.length; j++) {
if (trackIndices.contains(j)) continue;
if (j == track || trackGroup.isTrackSelected(j)) trackIndices.add(j);
}
private static void selectTrack(ExoPlayer player, int group, int track, List<Integer> trackIndices) {
Tracks.Group trackGroup = player.getCurrentTracks().getGroups().get(group);
for (int i = 0; i < trackGroup.length; i++) {
if (i == track || trackGroup.isTrackSelected(i)) trackIndices.add(i);
}
}
private static void deselectTrack(ExoPlayer player, int type, int track, List<Integer> trackIndices) {
List<Tracks.Group> groups = player.getCurrentTracks().getGroups();
for (int i = 0; i < groups.size(); i++) {
Tracks.Group trackGroup = groups.get(i);
if (trackGroup.getType() != type) continue;
for (int j = 0; j < trackGroup.length; j++) {
if (trackIndices.contains(j)) continue;
if (j != track && trackGroup.isTrackSelected(j)) trackIndices.add(j);
}
private static void deselectTrack(ExoPlayer player, int group, int track, List<Integer> trackIndices) {
Tracks.Group trackGroup = player.getCurrentTracks().getGroups().get(group);
for (int i = 0; i < trackGroup.length; i++) {
if (i != track && trackGroup.isTrackSelected(i)) trackIndices.add(i);
}
}

@ -364,9 +364,9 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
private void setTrackExo(Track item) {
if (item.isSelected()) {
ExoUtil.selectTrack(exoPlayer, item.getType(), item.getGroup(), item.getTrack());
ExoUtil.selectTrack(exoPlayer, item.getGroup(), item.getTrack());
} else {
ExoUtil.deselectTrack(exoPlayer, item.getType(), item.getGroup(), item.getTrack());
ExoUtil.deselectTrack(exoPlayer, item.getGroup(), item.getTrack());
}
}

Loading…
Cancel
Save