Commit f7a511af by olly Committed by Oliver Woodman

Remove Player.Listener inheritance of MetadataOutput

PiperOrigin-RevId: 390137267
parent 2fa54e0d
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
* Remove `CacheDataSourceFactory`. Use `CacheDataSource.Factory` instead. * Remove `CacheDataSourceFactory`. Use `CacheDataSource.Factory` instead.
* Remove `CacheDataSinkFactory`. Use `CacheDataSink.Factory` instead. * Remove `CacheDataSinkFactory`. Use `CacheDataSink.Factory` instead.
* Remove `FileDataSourceFactory`. Use `FileDataSource.Factory` instead. * Remove `FileDataSourceFactory`. Use `FileDataSource.Factory` instead.
* Remove `SimpleExoPlayer.addMetadataOutput` and `removeMetadataOutput`.
Use `Player.addListener` and `Player.Listener` instead.
### 2.15.0 (2021-08-10) ### 2.15.0 (2021-08-10)
......
...@@ -26,7 +26,6 @@ import androidx.annotation.Nullable; ...@@ -26,7 +26,6 @@ import androidx.annotation.Nullable;
import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.audio.AudioAttributes;
import com.google.android.exoplayer2.audio.AudioListener; import com.google.android.exoplayer2.audio.AudioListener;
import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.text.Cue;
import com.google.android.exoplayer2.text.TextOutput; import com.google.android.exoplayer2.text.TextOutput;
...@@ -871,8 +870,7 @@ public interface Player { ...@@ -871,8 +870,7 @@ public interface Player {
* *
* <p>All methods have no-op default implementations to allow selective overrides. * <p>All methods have no-op default implementations to allow selective overrides.
*/ */
interface Listener interface Listener extends VideoListener, AudioListener, TextOutput, EventListener {
extends VideoListener, AudioListener, TextOutput, MetadataOutput, EventListener {
@Override @Override
default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {} default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {}
...@@ -963,7 +961,11 @@ public interface Player { ...@@ -963,7 +961,11 @@ public interface Player {
@Override @Override
default void onCues(List<Cue> cues) {} default void onCues(List<Cue> cues) {}
@Override /**
* Called when there is metadata associated with the current playback time.
*
* @param metadata The metadata.
*/
default void onMetadata(Metadata metadata) {} default void onMetadata(Metadata metadata) {}
@Override @Override
......
...@@ -36,7 +36,6 @@ import com.google.android.exoplayer2.audio.DefaultAudioSink; ...@@ -36,7 +36,6 @@ import com.google.android.exoplayer2.audio.DefaultAudioSink;
import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer; import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory; import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.ExtractorsFactory; import com.google.android.exoplayer2.extractor.ExtractorsFactory;
import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.metadata.MetadataRenderer; import com.google.android.exoplayer2.metadata.MetadataRenderer;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
...@@ -447,28 +446,6 @@ public interface ExoPlayer extends Player { ...@@ -447,28 +446,6 @@ public interface ExoPlayer extends Player {
List<Cue> getCurrentCues(); List<Cue> getCurrentCues();
} }
/** The metadata component of an {@link ExoPlayer}. */
interface MetadataComponent {
/**
* Adds a {@link MetadataOutput} to receive metadata.
*
* @param output The output to register.
* @deprecated Use {@link #addListener(Listener)}.
*/
@Deprecated
void addMetadataOutput(MetadataOutput output);
/**
* Removes a {@link MetadataOutput}.
*
* @param output The output to remove.
* @deprecated Use {@link #removeListener(Listener)}.
*/
@Deprecated
void removeMetadataOutput(MetadataOutput output);
}
/** The device component of an {@link ExoPlayer}. */ /** The device component of an {@link ExoPlayer}. */
interface DeviceComponent { interface DeviceComponent {
...@@ -1034,12 +1011,6 @@ public interface ExoPlayer extends Player { ...@@ -1034,12 +1011,6 @@ public interface ExoPlayer extends Player {
@Nullable @Nullable
TextComponent getTextComponent(); TextComponent getTextComponent();
/**
* Returns the component of this player for metadata output, or null if metadata is not supported.
*/
@Nullable
MetadataComponent getMetadataComponent();
/** Returns the component of this player for playback device, or null if it's not supported. */ /** Returns the component of this player for playback device, or null if it's not supported. */
@Nullable @Nullable
DeviceComponent getDeviceComponent(); DeviceComponent getDeviceComponent();
......
...@@ -293,12 +293,6 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -293,12 +293,6 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Override @Override
@Nullable @Nullable
public MetadataComponent getMetadataComponent() {
return null;
}
@Override
@Nullable
public DeviceComponent getDeviceComponent() { public DeviceComponent getDeviceComponent() {
return null; return null;
} }
......
...@@ -97,7 +97,6 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -97,7 +97,6 @@ public class SimpleExoPlayer extends BasePlayer
ExoPlayer.AudioComponent, ExoPlayer.AudioComponent,
ExoPlayer.VideoComponent, ExoPlayer.VideoComponent,
ExoPlayer.TextComponent, ExoPlayer.TextComponent,
ExoPlayer.MetadataComponent,
ExoPlayer.DeviceComponent { ExoPlayer.DeviceComponent {
/** @deprecated Use {@link ExoPlayer.Builder} instead. */ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
...@@ -430,8 +429,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -430,8 +429,7 @@ public class SimpleExoPlayer extends BasePlayer
private final CopyOnWriteArraySet<VideoListener> videoListeners; private final CopyOnWriteArraySet<VideoListener> videoListeners;
private final CopyOnWriteArraySet<AudioListener> audioListeners; private final CopyOnWriteArraySet<AudioListener> audioListeners;
private final CopyOnWriteArraySet<TextOutput> textOutputs; private final CopyOnWriteArraySet<TextOutput> textOutputs;
private final CopyOnWriteArraySet<MetadataOutput> metadataOutputs; private final CopyOnWriteArraySet<Listener> listeners;
private final CopyOnWriteArraySet<Listener> deviceListeners;
private final AnalyticsCollector analyticsCollector; private final AnalyticsCollector analyticsCollector;
private final AudioBecomingNoisyManager audioBecomingNoisyManager; private final AudioBecomingNoisyManager audioBecomingNoisyManager;
private final AudioFocusManager audioFocusManager; private final AudioFocusManager audioFocusManager;
...@@ -514,8 +512,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -514,8 +512,7 @@ public class SimpleExoPlayer extends BasePlayer
videoListeners = new CopyOnWriteArraySet<>(); videoListeners = new CopyOnWriteArraySet<>();
audioListeners = new CopyOnWriteArraySet<>(); audioListeners = new CopyOnWriteArraySet<>();
textOutputs = new CopyOnWriteArraySet<>(); textOutputs = new CopyOnWriteArraySet<>();
metadataOutputs = new CopyOnWriteArraySet<>(); listeners = new CopyOnWriteArraySet<>();
deviceListeners = new CopyOnWriteArraySet<>();
Handler eventHandler = new Handler(builder.looper); Handler eventHandler = new Handler(builder.looper);
renderers = renderers =
builder.renderersFactory.createRenderers( builder.renderersFactory.createRenderers(
...@@ -636,12 +633,6 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -636,12 +633,6 @@ public class SimpleExoPlayer extends BasePlayer
@Override @Override
@Nullable @Nullable
public MetadataComponent getMetadataComponent() {
return this;
}
@Override
@Nullable
public DeviceComponent getDeviceComponent() { public DeviceComponent getDeviceComponent() {
return this; return this;
} }
...@@ -1109,21 +1100,6 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1109,21 +1100,6 @@ public class SimpleExoPlayer extends BasePlayer
return currentCues; return currentCues;
} }
@Deprecated
@Override
public void addMetadataOutput(MetadataOutput output) {
// Don't verify application thread. We allow calls to this method from any thread.
Assertions.checkNotNull(output);
metadataOutputs.add(output);
}
@Deprecated
@Override
public void removeMetadataOutput(MetadataOutput output) {
// Don't verify application thread. We allow calls to this method from any thread.
metadataOutputs.remove(output);
}
// ExoPlayer implementation // ExoPlayer implementation
@Override @Override
...@@ -1147,8 +1123,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1147,8 +1123,7 @@ public class SimpleExoPlayer extends BasePlayer
addAudioListener(listener); addAudioListener(listener);
addVideoListener(listener); addVideoListener(listener);
addTextOutput(listener); addTextOutput(listener);
addMetadataOutput(listener); listeners.add(listener);
deviceListeners.add(listener);
EventListener eventListener = listener; EventListener eventListener = listener;
addListener(eventListener); addListener(eventListener);
} }
...@@ -1167,8 +1142,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1167,8 +1142,7 @@ public class SimpleExoPlayer extends BasePlayer
removeAudioListener(listener); removeAudioListener(listener);
removeVideoListener(listener); removeVideoListener(listener);
removeTextOutput(listener); removeTextOutput(listener);
removeMetadataOutput(listener); listeners.remove(listener);
deviceListeners.remove(listener);
EventListener eventListener = listener; EventListener eventListener = listener;
removeListener(eventListener); removeListener(eventListener);
} }
...@@ -2132,8 +2106,9 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -2132,8 +2106,9 @@ public class SimpleExoPlayer extends BasePlayer
public void onMetadata(Metadata metadata) { public void onMetadata(Metadata metadata) {
analyticsCollector.onMetadata(metadata); analyticsCollector.onMetadata(metadata);
player.onMetadata(metadata); player.onMetadata(metadata);
for (MetadataOutput metadataOutput : metadataOutputs) { // TODO(internal b/187152483): Events should be dispatched via ListenerSet
metadataOutput.onMetadata(metadata); for (Listener listener : listeners) {
listener.onMetadata(metadata);
} }
} }
...@@ -2228,8 +2203,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -2228,8 +2203,8 @@ public class SimpleExoPlayer extends BasePlayer
if (!deviceInfo.equals(SimpleExoPlayer.this.deviceInfo)) { if (!deviceInfo.equals(SimpleExoPlayer.this.deviceInfo)) {
SimpleExoPlayer.this.deviceInfo = deviceInfo; SimpleExoPlayer.this.deviceInfo = deviceInfo;
// TODO(internal b/187152483): Events should be dispatched via ListenerSet // TODO(internal b/187152483): Events should be dispatched via ListenerSet
for (Listener deviceListener : deviceListeners) { for (Listener listener : listeners) {
deviceListener.onDeviceInfoChanged(deviceInfo); listener.onDeviceInfoChanged(deviceInfo);
} }
} }
} }
...@@ -2237,8 +2212,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -2237,8 +2212,8 @@ public class SimpleExoPlayer extends BasePlayer
@Override @Override
public void onStreamVolumeChanged(int streamVolume, boolean streamMuted) { public void onStreamVolumeChanged(int streamVolume, boolean streamMuted) {
// TODO(internal b/187152483): Events should be dispatched via ListenerSet // TODO(internal b/187152483): Events should be dispatched via ListenerSet
for (Listener deviceListener : deviceListeners) { for (Listener listener : listeners) {
deviceListener.onDeviceVolumeChanged(streamVolume, streamMuted); listener.onDeviceVolumeChanged(streamVolume, streamMuted);
} }
} }
......
...@@ -66,11 +66,6 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer { ...@@ -66,11 +66,6 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer {
} }
@Override @Override
public MetadataComponent getMetadataComponent() {
throw new UnsupportedOperationException();
}
@Override
public DeviceComponent getDeviceComponent() { public DeviceComponent getDeviceComponent() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment