pull/605/head
jhengazuki 4 months ago
parent 63249734a3
commit 53afe40419
  1. 7
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  2. 4
      app/src/main/java/com/fongmi/android/tv/player/exo/TrackUtil.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java

@ -205,7 +205,6 @@ public class Players implements Player.Listener, ParseCallback {
public void reset() {
removeTimeoutCheck();
initTrack = false;
retry = 0;
}
@ -486,6 +485,7 @@ public class Players implements Player.Listener, ParseCallback {
App.post(runnable, timeout);
PlayerEvent.prepare(tag);
session.setActive(true);
initTrack = false;
prepare();
}
@ -509,9 +509,7 @@ public class Players implements Player.Listener, ParseCallback {
}
public void setTrack(List<Track> tracks) {
if (initTrack) return;
if (exoPlayer != null && !tracks.isEmpty()) TrackUtil.setTrackSelection(exoPlayer, tracks);
initTrack = true;
}
private void setPlaybackState(int state) {
@ -658,9 +656,10 @@ public class Players implements Player.Listener, ParseCallback {
@Override
public void onTracksChanged(@NonNull Tracks tracks) {
if (tracks.isEmpty()) return;
if (tracks.isEmpty() || initTrack) return;
setTrack(Track.find(getKey()));
PlayerEvent.track(tag);
initTrack = true;
}
@Override

@ -1,5 +1,6 @@
package com.fongmi.android.tv.player.exo;
import androidx.media3.common.Format;
import androidx.media3.common.TrackGroup;
import androidx.media3.common.TrackSelectionOverride;
import androidx.media3.common.TrackSelectionParameters;
@ -30,7 +31,8 @@ public class TrackUtil {
for (Tracks.Group trackGroup : currentTracks.getGroups()) {
if (trackGroup.getType() != track.getType()) continue;
for (int i = 0; i < trackGroup.length; i++) {
if (track.getFormat().equals(trackGroup.getTrackFormat(i).id)) {
Format format = trackGroup.getTrackFormat(i);
if (track.getFormat().equals(format.id + format.sampleMimeType)) {
return new TrackInfo(trackGroup, i);
}
}

@ -118,7 +118,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
for (int j = 0; j < trackGroup.length; j++) {
Format format = trackGroup.getTrackFormat(j);
String name = provider.getTrackName(format);
Track item = new Track(type, name, format.id);
Track item = new Track(type, name, format.id + format.sampleMimeType);
item.setSelected(trackGroup.isTrackSelected(j));
items.add(item);
}

Loading…
Cancel
Save