mirror of
https://github.com/androidx/media.git
synced 2025-05-07 15:40:37 +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.
|
||||
* Remove `SimpleExoPlayer.addAudioListener`, `removeAudioListener` and
|
||||
`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)
|
||||
|
||||
|
@ -802,20 +802,11 @@ public class ForwardingPlayer implements Player {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
// VideoListener methods.
|
||||
|
||||
@Override
|
||||
public void onVideoSizeChanged(VideoSize 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
|
||||
public void onSurfaceSizeChanged(int width, int height) {
|
||||
listener.onSurfaceSizeChanged(width, height);
|
||||
@ -826,8 +817,6 @@ public class ForwardingPlayer implements Player {
|
||||
listener.onRenderedFirstFrame();
|
||||
}
|
||||
|
||||
// AudioListener methods
|
||||
|
||||
@Override
|
||||
public void onAudioSessionIdChanged(int audioSessionId) {
|
||||
listener.onAudioSessionIdChanged(audioSessionId);
|
||||
@ -848,22 +837,16 @@ public class ForwardingPlayer implements Player {
|
||||
listener.onSkipSilenceEnabledChanged(skipSilenceEnabled);
|
||||
}
|
||||
|
||||
// TextOutput methods.
|
||||
|
||||
@Override
|
||||
public void onCues(List<Cue> cues) {
|
||||
listener.onCues(cues);
|
||||
}
|
||||
|
||||
// MetadataOutput methods.
|
||||
|
||||
@Override
|
||||
public void onMetadata(Metadata metadata) {
|
||||
listener.onMetadata(metadata);
|
||||
}
|
||||
|
||||
// DeviceListener callbacks
|
||||
|
||||
@Override
|
||||
public void onDeviceInfoChanged(DeviceInfo 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.util.FlagSet;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.google.android.exoplayer2.video.VideoListener;
|
||||
import com.google.android.exoplayer2.video.VideoSize;
|
||||
import com.google.common.base.Objects;
|
||||
import java.lang.annotation.Documented;
|
||||
@ -869,7 +868,7 @@ public interface Player {
|
||||
*
|
||||
* <p>All methods have no-op default implementations to allow selective overrides.
|
||||
*/
|
||||
interface Listener extends VideoListener, TextOutput, EventListener {
|
||||
interface Listener extends TextOutput, EventListener {
|
||||
|
||||
@Override
|
||||
default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {}
|
||||
@ -964,13 +963,28 @@ public interface Player {
|
||||
@Override
|
||||
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) {}
|
||||
|
||||
@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) {}
|
||||
|
||||
@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() {}
|
||||
|
||||
@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.video.MediaCodecVideoRenderer;
|
||||
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.spherical.CameraMotionListener;
|
||||
import java.util.List;
|
||||
@ -253,24 +252,6 @@ public interface ExoPlayer extends Player {
|
||||
@C.VideoChangeFrameRateStrategy
|
||||
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.
|
||||
*
|
||||
@ -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
|
||||
* determined yet.
|
||||
*
|
||||
* @see Listener#onVideoSizeChanged(int, int, int, float)
|
||||
* @see Listener#onVideoSizeChanged(VideoSize)
|
||||
*/
|
||||
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.video.VideoDecoderOutputBufferRenderer;
|
||||
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.VideoSize;
|
||||
import com.google.android.exoplayer2.video.spherical.CameraMotionListener;
|
||||
@ -425,7 +424,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
private final ExoPlayerImpl player;
|
||||
private final ComponentListener componentListener;
|
||||
private final FrameMetadataListener frameMetadataListener;
|
||||
private final CopyOnWriteArraySet<VideoListener> videoListeners;
|
||||
private final CopyOnWriteArraySet<TextOutput> textOutputs;
|
||||
private final CopyOnWriteArraySet<Listener> listeners;
|
||||
private final AnalyticsCollector analyticsCollector;
|
||||
@ -507,7 +505,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
detachSurfaceTimeoutMs = builder.detachSurfaceTimeoutMs;
|
||||
componentListener = new ComponentListener();
|
||||
frameMetadataListener = new FrameMetadataListener();
|
||||
videoListeners = new CopyOnWriteArraySet<>();
|
||||
textOutputs = new CopyOnWriteArraySet<>();
|
||||
listeners = new CopyOnWriteArraySet<>();
|
||||
Handler eventHandler = new Handler(builder.looper);
|
||||
@ -1001,21 +998,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
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
|
||||
public void setVideoFrameMetadataListener(VideoFrameMetadataListener listener) {
|
||||
verifyApplicationThread();
|
||||
@ -1105,7 +1087,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
@Override
|
||||
public void addListener(Listener listener) {
|
||||
Assertions.checkNotNull(listener);
|
||||
addVideoListener(listener);
|
||||
addTextOutput(listener);
|
||||
listeners.add(listener);
|
||||
EventListener eventListener = listener;
|
||||
@ -1123,7 +1104,6 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
@Override
|
||||
public void removeListener(Listener listener) {
|
||||
Assertions.checkNotNull(listener);
|
||||
removeVideoListener(listener);
|
||||
removeTextOutput(listener);
|
||||
listeners.remove(listener);
|
||||
EventListener eventListener = listener;
|
||||
@ -1796,8 +1776,9 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
surfaceWidth = width;
|
||||
surfaceHeight = height;
|
||||
analyticsCollector.onSurfaceSizeChanged(width, height);
|
||||
for (VideoListener videoListener : videoListeners) {
|
||||
videoListener.onSurfaceSizeChanged(width, height);
|
||||
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||
for (Listener listener : listeners) {
|
||||
listener.onSurfaceSizeChanged(width, height);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1969,13 +1950,9 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
public void onVideoSizeChanged(VideoSize videoSize) {
|
||||
SimpleExoPlayer.this.videoSize = videoSize;
|
||||
analyticsCollector.onVideoSizeChanged(videoSize);
|
||||
for (VideoListener videoListener : videoListeners) {
|
||||
videoListener.onVideoSizeChanged(videoSize);
|
||||
videoListener.onVideoSizeChanged(
|
||||
videoSize.width,
|
||||
videoSize.height,
|
||||
videoSize.unappliedRotationDegrees,
|
||||
videoSize.pixelWidthHeightRatio);
|
||||
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||
for (Listener listener : listeners) {
|
||||
listener.onVideoSizeChanged(videoSize);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1983,8 +1960,9 @@ public class SimpleExoPlayer extends BasePlayer
|
||||
public void onRenderedFirstFrame(Object output, long renderTimeMs) {
|
||||
analyticsCollector.onRenderedFirstFrame(output, renderTimeMs);
|
||||
if (videoOutput == output) {
|
||||
for (VideoListener videoListener : videoListeners) {
|
||||
videoListener.onRenderedFirstFrame();
|
||||
// TODO(internal b/187152483): Events should be dispatched via ListenerSet
|
||||
for (Listener listener : listeners) {
|
||||
listener.onRenderedFirstFrame();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user