mirror of
https://github.com/samsonjs/media.git
synced 2026-04-16 13:05:46 +00:00
Migrate leaf listeners of Player to new onCues override
PiperOrigin-RevId: 449587030
This commit is contained in:
parent
97331a612a
commit
75dc0e26c5
6 changed files with 27 additions and 14 deletions
|
|
@ -23,6 +23,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|||
import com.google.android.exoplayer2.MediaItem.SubtitleConfiguration;
|
||||
import com.google.android.exoplayer2.source.ClippingMediaSource;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.CueGroup;
|
||||
import com.google.android.exoplayer2.util.ConditionVariable;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
|
@ -132,8 +133,8 @@ public final class ClippedPlaybackTest {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
this.cues.add(cues);
|
||||
public void onCues(CueGroup cueGroup) {
|
||||
this.cues.add(cueGroup.cues);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public interface TextOutput {
|
|||
* @deprecated Use {@link #onCues(CueGroup)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
void onCues(List<Cue> cues);
|
||||
default void onCues(List<Cue> cues) {}
|
||||
|
||||
/**
|
||||
* Called when there is a change in the {@link CueGroup}.
|
||||
|
|
@ -37,5 +37,5 @@ public interface TextOutput {
|
|||
* <p>Both {@link #onCues(List)} and {@link #onCues(CueGroup)} are called when there is a change
|
||||
* in the cues You should only implement one or the other.
|
||||
*/
|
||||
default void onCues(CueGroup cueGroup) {}
|
||||
void onCues(CueGroup cueGroup);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ import com.google.android.exoplayer2.Player.DiscontinuityReason;
|
|||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.Timeline.Period;
|
||||
import com.google.android.exoplayer2.Tracks;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.CueGroup;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout.ResizeMode;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.ErrorMessageProvider;
|
||||
|
|
@ -1455,9 +1455,9 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
|
|||
// Player.Listener implementation
|
||||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
public void onCues(CueGroup cueGroup) {
|
||||
if (subtitleView != null) {
|
||||
subtitleView.setCues(cues);
|
||||
subtitleView.setCues(cueGroup.cues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ import com.google.android.exoplayer2.Player.DiscontinuityReason;
|
|||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.Timeline.Period;
|
||||
import com.google.android.exoplayer2.Tracks;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.CueGroup;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout.ResizeMode;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.ErrorMessageProvider;
|
||||
|
|
@ -1487,9 +1487,9 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
|
|||
// Player.Listener implementation
|
||||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
public void onCues(CueGroup cueGroup) {
|
||||
if (subtitleView != null) {
|
||||
subtitleView.setCues(cues);
|
||||
subtitleView.setCues(cueGroup.cues);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import com.google.android.exoplayer2.metadata.vorbis.VorbisComment;
|
|||
import com.google.android.exoplayer2.testutil.CapturingRenderersFactory;
|
||||
import com.google.android.exoplayer2.testutil.Dumper;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.CueGroup;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.nio.ByteBuffer;
|
||||
|
|
@ -54,12 +55,14 @@ public final class PlaybackOutput implements Dumper.Dumpable {
|
|||
|
||||
private final List<Metadata> metadatas;
|
||||
private final List<List<Cue>> subtitles;
|
||||
private final List<List<Cue>> subtitlesFromDeprecatedTextOutput;
|
||||
|
||||
private PlaybackOutput(ExoPlayer player, CapturingRenderersFactory capturingRenderersFactory) {
|
||||
this.capturingRenderersFactory = capturingRenderersFactory;
|
||||
|
||||
metadatas = Collections.synchronizedList(new ArrayList<>());
|
||||
subtitles = Collections.synchronizedList(new ArrayList<>());
|
||||
subtitlesFromDeprecatedTextOutput = Collections.synchronizedList(new ArrayList<>());
|
||||
// TODO: Consider passing playback position into MetadataOutput and TextOutput. Calling
|
||||
// player.getCurrentPosition() inside onMetadata/Cues will likely be non-deterministic
|
||||
// because renderer-thread != playback-thread.
|
||||
|
|
@ -72,7 +75,12 @@ public final class PlaybackOutput implements Dumper.Dumpable {
|
|||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
subtitles.add(cues);
|
||||
subtitlesFromDeprecatedTextOutput.add(cues);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCues(CueGroup cueGroup) {
|
||||
subtitles.add(cueGroup.cues);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -144,6 +152,11 @@ public final class PlaybackOutput implements Dumper.Dumpable {
|
|||
}
|
||||
|
||||
private void dumpSubtitles(Dumper dumper) {
|
||||
if (!subtitles.equals(subtitlesFromDeprecatedTextOutput)) {
|
||||
throw new IllegalStateException(
|
||||
"Expected subtitles to be equal from both implementations of onCues method.");
|
||||
}
|
||||
|
||||
if (subtitles.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@ import com.google.android.exoplayer2.DefaultRenderersFactory;
|
|||
import com.google.android.exoplayer2.Renderer;
|
||||
import com.google.android.exoplayer2.audio.AudioRendererEventListener;
|
||||
import com.google.android.exoplayer2.metadata.Metadata;
|
||||
import com.google.android.exoplayer2.text.Cue;
|
||||
import com.google.android.exoplayer2.text.CueGroup;
|
||||
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
||||
import java.util.List;
|
||||
|
||||
/** Assertions for {@link DefaultRenderersFactory}. */
|
||||
public final class DefaultRenderersFactoryAsserts {
|
||||
|
|
@ -94,7 +93,7 @@ public final class DefaultRenderersFactoryAsserts {
|
|||
new Handler(Looper.getMainLooper()),
|
||||
new VideoRendererEventListener() {},
|
||||
new AudioRendererEventListener() {},
|
||||
(List<Cue> cues) -> {},
|
||||
(CueGroup cueGroup) -> {},
|
||||
(Metadata metadata) -> {});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue