Change Transformer to use Player.Listener.
AnalyticsListener should not be used for non-analytical actions. PiperOrigin-RevId: 406355758
This commit is contained in:
parent
a3b71d5400
commit
51aee84d13
@ -49,7 +49,6 @@ import androidx.media3.exoplayer.DefaultLoadControl;
|
|||||||
import androidx.media3.exoplayer.ExoPlayer;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
import androidx.media3.exoplayer.Renderer;
|
import androidx.media3.exoplayer.Renderer;
|
||||||
import androidx.media3.exoplayer.RenderersFactory;
|
import androidx.media3.exoplayer.RenderersFactory;
|
||||||
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
|
||||||
import androidx.media3.exoplayer.audio.AudioRendererEventListener;
|
import androidx.media3.exoplayer.audio.AudioRendererEventListener;
|
||||||
import androidx.media3.exoplayer.metadata.MetadataOutput;
|
import androidx.media3.exoplayer.metadata.MetadataOutput;
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
||||||
@ -575,8 +574,7 @@ public final class TranscodingTransformer {
|
|||||||
.setClock(clock)
|
.setClock(clock)
|
||||||
.build();
|
.build();
|
||||||
player.setMediaItem(mediaItem);
|
player.setMediaItem(mediaItem);
|
||||||
player.addAnalyticsListener(
|
player.addListener(new TranscodingTransformerPlayerListener(mediaItem, muxerWrapper));
|
||||||
new TranscodingTransformerAnalyticsListener(mediaItem, muxerWrapper));
|
|
||||||
player.prepare();
|
player.prepare();
|
||||||
|
|
||||||
progressState = PROGRESS_STATE_WAITING_FOR_AVAILABILITY;
|
progressState = PROGRESS_STATE_WAITING_FOR_AVAILABILITY;
|
||||||
@ -690,30 +688,30 @@ public final class TranscodingTransformer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class TranscodingTransformerAnalyticsListener implements AnalyticsListener {
|
private final class TranscodingTransformerPlayerListener implements Player.Listener {
|
||||||
|
|
||||||
private final MediaItem mediaItem;
|
private final MediaItem mediaItem;
|
||||||
private final MuxerWrapper muxerWrapper;
|
private final MuxerWrapper muxerWrapper;
|
||||||
|
|
||||||
public TranscodingTransformerAnalyticsListener(MediaItem mediaItem, MuxerWrapper muxerWrapper) {
|
public TranscodingTransformerPlayerListener(MediaItem mediaItem, MuxerWrapper muxerWrapper) {
|
||||||
this.mediaItem = mediaItem;
|
this.mediaItem = mediaItem;
|
||||||
this.muxerWrapper = muxerWrapper;
|
this.muxerWrapper = muxerWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlaybackStateChanged(EventTime eventTime, int state) {
|
public void onPlaybackStateChanged(int state) {
|
||||||
if (state == Player.STATE_ENDED) {
|
if (state == Player.STATE_ENDED) {
|
||||||
handleTransformationEnded(/* exception= */ null);
|
handleTransformationEnded(/* exception= */ null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTimelineChanged(EventTime eventTime, int reason) {
|
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||||
if (progressState != PROGRESS_STATE_WAITING_FOR_AVAILABILITY) {
|
if (progressState != PROGRESS_STATE_WAITING_FOR_AVAILABILITY) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Timeline.Window window = new Timeline.Window();
|
Timeline.Window window = new Timeline.Window();
|
||||||
eventTime.timeline.getWindow(/* windowIndex= */ 0, window);
|
timeline.getWindow(/* windowIndex= */ 0, window);
|
||||||
if (!window.isPlaceholder) {
|
if (!window.isPlaceholder) {
|
||||||
long durationUs = window.durationUs;
|
long durationUs = window.durationUs;
|
||||||
// Make progress permanently unavailable if the duration is unknown, so that it doesn't jump
|
// Make progress permanently unavailable if the duration is unknown, so that it doesn't jump
|
||||||
@ -728,7 +726,7 @@ public final class TranscodingTransformer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTracksInfoChanged(EventTime eventTime, TracksInfo tracksInfo) {
|
public void onTracksInfoChanged(TracksInfo tracksInfo) {
|
||||||
if (muxerWrapper.getTrackCount() == 0) {
|
if (muxerWrapper.getTrackCount() == 0) {
|
||||||
handleTransformationEnded(
|
handleTransformationEnded(
|
||||||
new IllegalStateException(
|
new IllegalStateException(
|
||||||
@ -738,7 +736,7 @@ public final class TranscodingTransformer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerError(EventTime eventTime, PlaybackException error) {
|
public void onPlayerError(PlaybackException error) {
|
||||||
handleTransformationEnded(error);
|
handleTransformationEnded(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,6 @@ import androidx.media3.exoplayer.DefaultLoadControl;
|
|||||||
import androidx.media3.exoplayer.ExoPlayer;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
import androidx.media3.exoplayer.Renderer;
|
import androidx.media3.exoplayer.Renderer;
|
||||||
import androidx.media3.exoplayer.RenderersFactory;
|
import androidx.media3.exoplayer.RenderersFactory;
|
||||||
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
|
||||||
import androidx.media3.exoplayer.audio.AudioRendererEventListener;
|
import androidx.media3.exoplayer.audio.AudioRendererEventListener;
|
||||||
import androidx.media3.exoplayer.metadata.MetadataOutput;
|
import androidx.media3.exoplayer.metadata.MetadataOutput;
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
||||||
@ -498,7 +497,7 @@ public final class Transformer {
|
|||||||
.setClock(clock)
|
.setClock(clock)
|
||||||
.build();
|
.build();
|
||||||
player.setMediaItem(mediaItem);
|
player.setMediaItem(mediaItem);
|
||||||
player.addAnalyticsListener(new TransformerAnalyticsListener(mediaItem, muxerWrapper));
|
player.addListener(new TransformerPlayerListener(mediaItem, muxerWrapper));
|
||||||
player.prepare();
|
player.prepare();
|
||||||
|
|
||||||
progressState = PROGRESS_STATE_WAITING_FOR_AVAILABILITY;
|
progressState = PROGRESS_STATE_WAITING_FOR_AVAILABILITY;
|
||||||
@ -608,30 +607,30 @@ public final class Transformer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class TransformerAnalyticsListener implements AnalyticsListener {
|
private final class TransformerPlayerListener implements Player.Listener {
|
||||||
|
|
||||||
private final MediaItem mediaItem;
|
private final MediaItem mediaItem;
|
||||||
private final MuxerWrapper muxerWrapper;
|
private final MuxerWrapper muxerWrapper;
|
||||||
|
|
||||||
public TransformerAnalyticsListener(MediaItem mediaItem, MuxerWrapper muxerWrapper) {
|
public TransformerPlayerListener(MediaItem mediaItem, MuxerWrapper muxerWrapper) {
|
||||||
this.mediaItem = mediaItem;
|
this.mediaItem = mediaItem;
|
||||||
this.muxerWrapper = muxerWrapper;
|
this.muxerWrapper = muxerWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlaybackStateChanged(EventTime eventTime, int state) {
|
public void onPlaybackStateChanged(int state) {
|
||||||
if (state == Player.STATE_ENDED) {
|
if (state == Player.STATE_ENDED) {
|
||||||
handleTransformationEnded(/* exception= */ null);
|
handleTransformationEnded(/* exception= */ null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTimelineChanged(EventTime eventTime, int reason) {
|
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||||
if (progressState != PROGRESS_STATE_WAITING_FOR_AVAILABILITY) {
|
if (progressState != PROGRESS_STATE_WAITING_FOR_AVAILABILITY) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Timeline.Window window = new Timeline.Window();
|
Timeline.Window window = new Timeline.Window();
|
||||||
eventTime.timeline.getWindow(/* windowIndex= */ 0, window);
|
timeline.getWindow(/* windowIndex= */ 0, window);
|
||||||
if (!window.isPlaceholder) {
|
if (!window.isPlaceholder) {
|
||||||
long durationUs = window.durationUs;
|
long durationUs = window.durationUs;
|
||||||
// Make progress permanently unavailable if the duration is unknown, so that it doesn't jump
|
// Make progress permanently unavailable if the duration is unknown, so that it doesn't jump
|
||||||
@ -646,7 +645,7 @@ public final class Transformer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTracksInfoChanged(EventTime eventTime, TracksInfo tracksInfo) {
|
public void onTracksInfoChanged(TracksInfo tracksInfo) {
|
||||||
if (muxerWrapper.getTrackCount() == 0) {
|
if (muxerWrapper.getTrackCount() == 0) {
|
||||||
handleTransformationEnded(
|
handleTransformationEnded(
|
||||||
new IllegalStateException(
|
new IllegalStateException(
|
||||||
@ -656,7 +655,7 @@ public final class Transformer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerError(EventTime eventTime, PlaybackException error) {
|
public void onPlayerError(PlaybackException error) {
|
||||||
handleTransformationEnded(error);
|
handleTransformationEnded(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user