mirror of
https://github.com/androidx/media.git
synced 2025-05-08 08:00:49 +08:00
Remove Player.Listener inheritance of VideoListener
NO_EXTERNAL PiperOrigin-RevId: 390614839
This commit is contained in:
parent
a44878482c
commit
743b33e821
@ -31,6 +31,8 @@
|
|||||||
Use `Player.addListener` and `Player.Listener` instead.
|
Use `Player.addListener` and `Player.Listener` instead.
|
||||||
* Remove `SimpleExoPlayer.addAudioListener`, `removeAudioListener` and
|
* Remove `SimpleExoPlayer.addAudioListener`, `removeAudioListener` and
|
||||||
`AudioListener`. Use `Player.addListener` and `Player.Listener` instead.
|
`AudioListener`. Use `Player.addListener` and `Player.Listener` instead.
|
||||||
|
* Remove `SimpleExoPlayer.addVideoListener`, `removeVideoListener` and
|
||||||
|
`VideoListener`. Use `Player.addListener` and `Player.Listener` instead.
|
||||||
|
|
||||||
### 2.15.0 (2021-08-10)
|
### 2.15.0 (2021-08-10)
|
||||||
|
|
||||||
|
@ -802,20 +802,11 @@ public class ForwardingPlayer implements Player {
|
|||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
// VideoListener methods.
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVideoSizeChanged(VideoSize videoSize) {
|
public void onVideoSizeChanged(VideoSize videoSize) {
|
||||||
listener.onVideoSizeChanged(videoSize);
|
listener.onVideoSizeChanged(videoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@SuppressWarnings("deprecation") // Forwarding to deprecated method.
|
|
||||||
public void onVideoSizeChanged(
|
|
||||||
int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {
|
|
||||||
listener.onVideoSizeChanged(width, height, unappliedRotationDegrees, pixelWidthHeightRatio);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSurfaceSizeChanged(int width, int height) {
|
public void onSurfaceSizeChanged(int width, int height) {
|
||||||
listener.onSurfaceSizeChanged(width, height);
|
listener.onSurfaceSizeChanged(width, height);
|
||||||
@ -826,8 +817,6 @@ public class ForwardingPlayer implements Player {
|
|||||||
listener.onRenderedFirstFrame();
|
listener.onRenderedFirstFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
// AudioListener methods
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAudioSessionIdChanged(int audioSessionId) {
|
public void onAudioSessionIdChanged(int audioSessionId) {
|
||||||
listener.onAudioSessionIdChanged(audioSessionId);
|
listener.onAudioSessionIdChanged(audioSessionId);
|
||||||
@ -848,22 +837,16 @@ public class ForwardingPlayer implements Player {
|
|||||||
listener.onSkipSilenceEnabledChanged(skipSilenceEnabled);
|
listener.onSkipSilenceEnabledChanged(skipSilenceEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TextOutput methods.
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCues(List<Cue> cues) {
|
public void onCues(List<Cue> cues) {
|
||||||
listener.onCues(cues);
|
listener.onCues(cues);
|
||||||
}
|
}
|
||||||
|
|
||||||
// MetadataOutput methods.
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMetadata(Metadata metadata) {
|
public void onMetadata(Metadata metadata) {
|
||||||
listener.onMetadata(metadata);
|
listener.onMetadata(metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeviceListener callbacks
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDeviceInfoChanged(DeviceInfo deviceInfo) {
|
public void onDeviceInfoChanged(DeviceInfo deviceInfo) {
|
||||||
listener.onDeviceInfoChanged(deviceInfo);
|
listener.onDeviceInfoChanged(deviceInfo);
|
||||||
|
@ -32,7 +32,6 @@ import com.google.android.exoplayer2.trackselection.TrackSelection;
|
|||||||
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||||
import com.google.android.exoplayer2.util.FlagSet;
|
import com.google.android.exoplayer2.util.FlagSet;
|
||||||
import com.google.android.exoplayer2.util.Util;
|
import com.google.android.exoplayer2.util.Util;
|
||||||
import com.google.android.exoplayer2.video.VideoListener;
|
|
||||||
import com.google.android.exoplayer2.video.VideoSize;
|
import com.google.android.exoplayer2.video.VideoSize;
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
@ -869,7 +868,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 extends VideoListener, TextOutput, EventListener {
|
interface Listener extends TextOutput, EventListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {}
|
default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {}
|
||||||
@ -964,13 +963,28 @@ public interface Player {
|
|||||||
@Override
|
@Override
|
||||||
default void onEvents(Player player, Events events) {}
|
default void onEvents(Player player, Events events) {}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
|
* Called each time there's a change in the size of the video being rendered.
|
||||||
|
*
|
||||||
|
* @param videoSize The new size of the video.
|
||||||
|
*/
|
||||||
default void onVideoSizeChanged(VideoSize videoSize) {}
|
default void onVideoSizeChanged(VideoSize videoSize) {}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
|
* Called each time there's a change in the size of the surface onto which the video is being
|
||||||
|
* rendered.
|
||||||
|
*
|
||||||
|
* @param width The surface width in pixels. May be {@link C#LENGTH_UNSET} if unknown, or 0 if
|
||||||
|
* the video is not rendered onto a surface.
|
||||||
|
* @param height The surface height in pixels. May be {@link C#LENGTH_UNSET} if unknown, or 0 if
|
||||||
|
* the video is not rendered onto a surface.
|
||||||
|
*/
|
||||||
default void onSurfaceSizeChanged(int width, int height) {}
|
default void onSurfaceSizeChanged(int width, int height) {}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
|
* Called when a frame is rendered for the first time since setting the surface, or since the
|
||||||
|
* renderer was reset, or since the stream being rendered was changed.
|
||||||
|
*/
|
||||||
default void onRenderedFirstFrame() {}
|
default void onRenderedFirstFrame() {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package com.google.android.exoplayer2.video;
|
|
||||||
|
|
||||||
import com.google.android.exoplayer2.C;
|
|
||||||
import com.google.android.exoplayer2.Player;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A listener for metadata corresponding to video being rendered.
|
|
||||||
*
|
|
||||||
* @deprecated Use {@link Player.Listener}.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public interface VideoListener {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called each time there's a change in the size of the video being rendered.
|
|
||||||
*
|
|
||||||
* @param videoSize The new size of the video.
|
|
||||||
*/
|
|
||||||
default void onVideoSizeChanged(VideoSize videoSize) {}
|
|
||||||
|
|
||||||
/** @deprecated Use {@link #onVideoSizeChanged(VideoSize videoSize)}. */
|
|
||||||
@Deprecated
|
|
||||||
default void onVideoSizeChanged(
|
|
||||||
int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called each time there's a change in the size of the surface onto which the video is being
|
|
||||||
* rendered.
|
|
||||||
*
|
|
||||||
* @param width The surface width in pixels. May be {@link C#LENGTH_UNSET} if unknown, or 0 if the
|
|
||||||
* video is not rendered onto a surface.
|
|
||||||
* @param height The surface height in pixels. May be {@link C#LENGTH_UNSET} if unknown, or 0 if
|
|
||||||
* the video is not rendered onto a surface.
|
|
||||||
*/
|
|
||||||
default void onSurfaceSizeChanged(int width, int height) {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when a frame is rendered for the first time since setting the surface, or since the
|
|
||||||
* renderer was reset, or since the stream being rendered was changed.
|
|
||||||
*/
|
|
||||||
default void onRenderedFirstFrame() {}
|
|
||||||
}
|
|
@ -53,7 +53,6 @@ import com.google.android.exoplayer2.util.PriorityTaskManager;
|
|||||||
import com.google.android.exoplayer2.util.Util;
|
import com.google.android.exoplayer2.util.Util;
|
||||||
import com.google.android.exoplayer2.video.MediaCodecVideoRenderer;
|
import com.google.android.exoplayer2.video.MediaCodecVideoRenderer;
|
||||||
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
|
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
|
||||||
import com.google.android.exoplayer2.video.VideoListener;
|
|
||||||
import com.google.android.exoplayer2.video.VideoSize;
|
import com.google.android.exoplayer2.video.VideoSize;
|
||||||
import com.google.android.exoplayer2.video.spherical.CameraMotionListener;
|
import com.google.android.exoplayer2.video.spherical.CameraMotionListener;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -253,24 +252,6 @@ public interface ExoPlayer extends Player {
|
|||||||
@C.VideoChangeFrameRateStrategy
|
@C.VideoChangeFrameRateStrategy
|
||||||
int getVideoChangeFrameRateStrategy();
|
int getVideoChangeFrameRateStrategy();
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a listener to receive video events.
|
|
||||||
*
|
|
||||||
* @param listener The listener to register.
|
|
||||||
* @deprecated Use {@link #addListener(Listener)}.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void addVideoListener(VideoListener listener);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes a listener of video events.
|
|
||||||
*
|
|
||||||
* @param listener The listener to unregister.
|
|
||||||
* @deprecated Use {@link #removeListener(Listener)}.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
void removeVideoListener(VideoListener listener);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a listener to receive video frame metadata events.
|
* Sets a listener to receive video frame metadata events.
|
||||||
*
|
*
|
||||||
@ -397,7 +378,7 @@ public interface ExoPlayer extends Player {
|
|||||||
* <p>The width and height of size could be 0 if there is no video or the size has not been
|
* <p>The width and height of size could be 0 if there is no video or the size has not been
|
||||||
* determined yet.
|
* determined yet.
|
||||||
*
|
*
|
||||||
* @see Listener#onVideoSizeChanged(int, int, int, float)
|
* @see Listener#onVideoSizeChanged(VideoSize)
|
||||||
*/
|
*/
|
||||||
VideoSize getVideoSize();
|
VideoSize getVideoSize();
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,6 @@ import com.google.android.exoplayer2.util.PriorityTaskManager;
|
|||||||
import com.google.android.exoplayer2.util.Util;
|
import com.google.android.exoplayer2.util.Util;
|
||||||
import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer;
|
import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer;
|
||||||
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
|
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
|
||||||
import com.google.android.exoplayer2.video.VideoListener;
|
|
||||||
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
||||||
import com.google.android.exoplayer2.video.VideoSize;
|
import com.google.android.exoplayer2.video.VideoSize;
|
||||||
import com.google.android.exoplayer2.video.spherical.CameraMotionListener;
|
import com.google.android.exoplayer2.video.spherical.CameraMotionListener;
|
||||||
@ -425,7 +424,6 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
private final ExoPlayerImpl player;
|
private final ExoPlayerImpl player;
|
||||||
private final ComponentListener componentListener;
|
private final ComponentListener componentListener;
|
||||||
private final FrameMetadataListener frameMetadataListener;
|
private final FrameMetadataListener frameMetadataListener;
|
||||||
private final CopyOnWriteArraySet<VideoListener> videoListeners;
|
|
||||||
private final CopyOnWriteArraySet<TextOutput> textOutputs;
|
private final CopyOnWriteArraySet<TextOutput> textOutputs;
|
||||||
private final CopyOnWriteArraySet<Listener> listeners;
|
private final CopyOnWriteArraySet<Listener> listeners;
|
||||||
private final AnalyticsCollector analyticsCollector;
|
private final AnalyticsCollector analyticsCollector;
|
||||||
@ -507,7 +505,6 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
detachSurfaceTimeoutMs = builder.detachSurfaceTimeoutMs;
|
detachSurfaceTimeoutMs = builder.detachSurfaceTimeoutMs;
|
||||||
componentListener = new ComponentListener();
|
componentListener = new ComponentListener();
|
||||||
frameMetadataListener = new FrameMetadataListener();
|
frameMetadataListener = new FrameMetadataListener();
|
||||||
videoListeners = new CopyOnWriteArraySet<>();
|
|
||||||
textOutputs = new CopyOnWriteArraySet<>();
|
textOutputs = new CopyOnWriteArraySet<>();
|
||||||
listeners = new CopyOnWriteArraySet<>();
|
listeners = new CopyOnWriteArraySet<>();
|
||||||
Handler eventHandler = new Handler(builder.looper);
|
Handler eventHandler = new Handler(builder.looper);
|
||||||
@ -1001,21 +998,6 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
return audioDecoderCounters;
|
return audioDecoderCounters;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public void addVideoListener(VideoListener listener) {
|
|
||||||
// Don't verify application thread. We allow calls to this method from any thread.
|
|
||||||
Assertions.checkNotNull(listener);
|
|
||||||
videoListeners.add(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
@Override
|
|
||||||
public void removeVideoListener(VideoListener listener) {
|
|
||||||
// Don't verify application thread. We allow calls to this method from any thread.
|
|
||||||
videoListeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setVideoFrameMetadataListener(VideoFrameMetadataListener listener) {
|
public void setVideoFrameMetadataListener(VideoFrameMetadataListener listener) {
|
||||||
verifyApplicationThread();
|
verifyApplicationThread();
|
||||||
@ -1105,7 +1087,6 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
@Override
|
@Override
|
||||||
public void addListener(Listener listener) {
|
public void addListener(Listener listener) {
|
||||||
Assertions.checkNotNull(listener);
|
Assertions.checkNotNull(listener);
|
||||||
addVideoListener(listener);
|
|
||||||
addTextOutput(listener);
|
addTextOutput(listener);
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
EventListener eventListener = listener;
|
EventListener eventListener = listener;
|
||||||
@ -1123,7 +1104,6 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
@Override
|
@Override
|
||||||
public void removeListener(Listener listener) {
|
public void removeListener(Listener listener) {
|
||||||
Assertions.checkNotNull(listener);
|
Assertions.checkNotNull(listener);
|
||||||
removeVideoListener(listener);
|
|
||||||
removeTextOutput(listener);
|
removeTextOutput(listener);
|
||||||
listeners.remove(listener);
|
listeners.remove(listener);
|
||||||
EventListener eventListener = listener;
|
EventListener eventListener = listener;
|
||||||
@ -1796,8 +1776,9 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
surfaceWidth = width;
|
surfaceWidth = width;
|
||||||
surfaceHeight = height;
|
surfaceHeight = height;
|
||||||
analyticsCollector.onSurfaceSizeChanged(width, height);
|
analyticsCollector.onSurfaceSizeChanged(width, height);
|
||||||
for (VideoListener videoListener : videoListeners) {
|
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||||
videoListener.onSurfaceSizeChanged(width, height);
|
for (Listener listener : listeners) {
|
||||||
|
listener.onSurfaceSizeChanged(width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1969,13 +1950,9 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
public void onVideoSizeChanged(VideoSize videoSize) {
|
public void onVideoSizeChanged(VideoSize videoSize) {
|
||||||
SimpleExoPlayer.this.videoSize = videoSize;
|
SimpleExoPlayer.this.videoSize = videoSize;
|
||||||
analyticsCollector.onVideoSizeChanged(videoSize);
|
analyticsCollector.onVideoSizeChanged(videoSize);
|
||||||
for (VideoListener videoListener : videoListeners) {
|
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||||
videoListener.onVideoSizeChanged(videoSize);
|
for (Listener listener : listeners) {
|
||||||
videoListener.onVideoSizeChanged(
|
listener.onVideoSizeChanged(videoSize);
|
||||||
videoSize.width,
|
|
||||||
videoSize.height,
|
|
||||||
videoSize.unappliedRotationDegrees,
|
|
||||||
videoSize.pixelWidthHeightRatio);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1983,8 +1960,9 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
public void onRenderedFirstFrame(Object output, long renderTimeMs) {
|
public void onRenderedFirstFrame(Object output, long renderTimeMs) {
|
||||||
analyticsCollector.onRenderedFirstFrame(output, renderTimeMs);
|
analyticsCollector.onRenderedFirstFrame(output, renderTimeMs);
|
||||||
if (videoOutput == output) {
|
if (videoOutput == output) {
|
||||||
for (VideoListener videoListener : videoListeners) {
|
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||||
videoListener.onRenderedFirstFrame();
|
for (Listener listener : listeners) {
|
||||||
|
listener.onRenderedFirstFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user