mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Remove Player.Listener inheritance of MetadataOutput
PiperOrigin-RevId: 390137267
This commit is contained in:
parent
2fa54e0df3
commit
f7a511af2d
7 changed files with 19 additions and 80 deletions
|
|
@ -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;
|
||||||
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 {
|
||||||
*
|
*
|
||||||
* <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 {
|
||||||
@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;
|
||||||
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 {
|
||||||
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 {
|
||||||
@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();
|
||||||
|
|
|
||||||
|
|
@ -291,12 +291,6 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public MetadataComponent getMetadataComponent() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public DeviceComponent getDeviceComponent() {
|
public DeviceComponent getDeviceComponent() {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
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
|
||||||
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(
|
||||||
|
|
@ -634,12 +631,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Nullable
|
|
||||||
public MetadataComponent getMetadataComponent() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public DeviceComponent getDeviceComponent() {
|
public DeviceComponent getDeviceComponent() {
|
||||||
|
|
@ -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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
@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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,11 +65,6 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public MetadataComponent getMetadataComponent() {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DeviceComponent getDeviceComponent() {
|
public DeviceComponent getDeviceComponent() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue