diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java index fa63599701..b15fca4154 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java @@ -406,16 +406,32 @@ public final class CastPlayer extends BasePlayer { flushNotifications(); } + /** @deprecated Use {@link #setPlaybackSpeed(float)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters) { // Unsupported by the RemoteMediaClient API. Do nothing. } + /** @deprecated Use {@link #getPlaybackSpeed()} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public PlaybackParameters getPlaybackParameters() { return PlaybackParameters.DEFAULT; } + @Override + public void setPlaybackSpeed(float playbackSpeed) { + // Unsupported by the RemoteMediaClient API. Do nothing. + } + + @Override + public float getPlaybackSpeed() { + return Player.DEFAULT_PLAYBACK_SPEED; + } + @Override public void stop(boolean reset) { playbackState = STATE_IDLE; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index 8ea9679569..7b56e99111 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -78,8 +78,8 @@ import java.util.concurrent.TimeoutException; @DiscontinuityReason private int pendingDiscontinuityReason; @PlayWhenReadyChangeReason private int pendingPlayWhenReadyChangeReason; private boolean foregroundMode; - private int pendingSetPlaybackParametersAcks; - private PlaybackParameters playbackParameters; + private int pendingSetPlaybackSpeedAcks; + private float playbackSpeed; private SeekParameters seekParameters; private ShuffleOrder shuffleOrder; @@ -132,7 +132,7 @@ import java.util.concurrent.TimeoutException; new TrackSelection[renderers.length], null); period = new Timeline.Period(); - playbackParameters = PlaybackParameters.DEFAULT; + playbackSpeed = Player.DEFAULT_PLAYBACK_SPEED; seekParameters = SeekParameters.DEFAULT; maskingWindowIndex = C.INDEX_UNSET; eventHandler = @@ -535,24 +535,44 @@ import java.util.concurrent.TimeoutException; notifyListeners(listener -> listener.onPositionDiscontinuity(DISCONTINUITY_REASON_SEEK)); } + /** @deprecated Use {@link #setPlaybackSpeed(float)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters) { - if (playbackParameters == null) { - playbackParameters = PlaybackParameters.DEFAULT; - } - if (this.playbackParameters.equals(playbackParameters)) { + setPlaybackSpeed( + playbackParameters != null ? playbackParameters.speed : Player.DEFAULT_PLAYBACK_SPEED); + } + + /** @deprecated Use {@link #getPlaybackSpeed()} instead. */ + @SuppressWarnings("deprecation") + @Deprecated + @Override + public PlaybackParameters getPlaybackParameters() { + return new PlaybackParameters(playbackSpeed); + } + + @SuppressWarnings("deprecation") + @Override + public void setPlaybackSpeed(float playbackSpeed) { + Assertions.checkState(playbackSpeed > 0); + if (this.playbackSpeed == playbackSpeed) { return; } - pendingSetPlaybackParametersAcks++; - this.playbackParameters = playbackParameters; + pendingSetPlaybackSpeedAcks++; + this.playbackSpeed = playbackSpeed; + PlaybackParameters playbackParameters = new PlaybackParameters(playbackSpeed); internalPlayer.setPlaybackParameters(playbackParameters); - PlaybackParameters playbackParametersToNotify = playbackParameters; - notifyListeners(listener -> listener.onPlaybackParametersChanged(playbackParametersToNotify)); + notifyListeners( + listener -> { + listener.onPlaybackParametersChanged(playbackParameters); + listener.onPlaybackSpeedChanged(playbackSpeed); + }); } @Override - public PlaybackParameters getPlaybackParameters() { - return playbackParameters; + public float getPlaybackSpeed() { + return playbackSpeed; } @Override @@ -764,8 +784,8 @@ import java.util.concurrent.TimeoutException; case ExoPlayerImplInternal.MSG_PLAYBACK_INFO_CHANGED: handlePlaybackInfo((ExoPlayerImplInternal.PlaybackInfoUpdate) msg.obj); break; - case ExoPlayerImplInternal.MSG_PLAYBACK_PARAMETERS_CHANGED: - handlePlaybackParameters((PlaybackParameters) msg.obj, /* operationAck= */ msg.arg1 != 0); + case ExoPlayerImplInternal.MSG_PLAYBACK_SPEED_CHANGED: + handlePlaybackSpeed((Float) msg.obj, /* operationAck= */ msg.arg1 != 0); break; default: throw new IllegalStateException(); @@ -781,15 +801,19 @@ import java.util.concurrent.TimeoutException; } } - private void handlePlaybackParameters( - PlaybackParameters playbackParameters, boolean operationAck) { + @SuppressWarnings("deprecation") + private void handlePlaybackSpeed(float playbackSpeed, boolean operationAck) { if (operationAck) { - pendingSetPlaybackParametersAcks--; + pendingSetPlaybackSpeedAcks--; } - if (pendingSetPlaybackParametersAcks == 0) { - if (!this.playbackParameters.equals(playbackParameters)) { - this.playbackParameters = playbackParameters; - notifyListeners(listener -> listener.onPlaybackParametersChanged(playbackParameters)); + if (pendingSetPlaybackSpeedAcks == 0) { + if (this.playbackSpeed != playbackSpeed) { + this.playbackSpeed = playbackSpeed; + notifyListeners( + listener -> { + listener.onPlaybackParametersChanged(new PlaybackParameters(playbackSpeed)); + listener.onPlaybackSpeedChanged(playbackSpeed); + }); } } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java index a81deb1ba5..dd28459cd3 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java @@ -64,7 +64,7 @@ import java.util.concurrent.atomic.AtomicBoolean; // External messages public static final int MSG_PLAYBACK_INFO_CHANGED = 0; - public static final int MSG_PLAYBACK_PARAMETERS_CHANGED = 1; + public static final int MSG_PLAYBACK_SPEED_CHANGED = 1; // Internal messages private static final int MSG_PREPARE = 0; @@ -1902,7 +1902,7 @@ import java.util.concurrent.atomic.AtomicBoolean; throws ExoPlaybackException { eventHandler .obtainMessage( - MSG_PLAYBACK_PARAMETERS_CHANGED, acknowledgeCommand ? 1 : 0, 0, playbackParameters) + MSG_PLAYBACK_SPEED_CHANGED, acknowledgeCommand ? 1 : 0, 0, playbackParameters.speed) .sendToTarget(); updateTrackSelectionPlaybackSpeed(playbackParameters.speed); for (Renderer renderer : renderers) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java b/library/core/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java index 2cee02896f..afa0a7ebc4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java @@ -19,8 +19,11 @@ import androidx.annotation.Nullable; import com.google.android.exoplayer2.util.Assertions; /** - * The parameters that apply to playback. + * @deprecated Use {@link Player#setPlaybackSpeed(float)} and {@link + * Player.AudioComponent#setSkipSilenceEnabled(boolean)} instead. */ +@SuppressWarnings("deprecation") +@Deprecated public final class PlaybackParameters { /** The default playback parameters: real-time playback with no silence skipping. */ @@ -29,9 +32,6 @@ public final class PlaybackParameters { /** The factor by which playback will be sped up. */ public final float speed; - /** Whether to skip silence in the input. */ - public final boolean skipSilence; - private final int scaledUsPerMs; /** @@ -40,20 +40,8 @@ public final class PlaybackParameters { * @param speed The factor by which playback will be sped up. Must be greater than zero. */ public PlaybackParameters(float speed) { - this(speed, /* skipSilence= */ false); - } - - /** - * Creates new playback parameters that set the playback speed and whether to skip silence in the - * audio stream. - * - * @param speed The factor by which playback will be sped up. Must be greater than zero. - * @param skipSilence Whether to skip silences in the audio stream. - */ - public PlaybackParameters(float speed, boolean skipSilence) { Assertions.checkArgument(speed > 0); this.speed = speed; - this.skipSilence = skipSilence; scaledUsPerMs = Math.round(speed * 1000f); } @@ -77,16 +65,11 @@ public final class PlaybackParameters { return false; } PlaybackParameters other = (PlaybackParameters) obj; - return this.speed == other.speed - && this.skipSilence == other.skipSilence; + return this.speed == other.speed; } @Override public int hashCode() { - int result = 17; - result = 31 * result + Float.floatToRawIntBits(speed); - result = 31 * result + (skipSilence ? 1 : 0); - return result; + return Float.floatToRawIntBits(speed); } - } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Player.java b/library/core/src/main/java/com/google/android/exoplayer2/Player.java index c1c26b59e9..f3bdb5ef0d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Player.java @@ -515,15 +515,21 @@ public interface Player { default void onPositionDiscontinuity(@DiscontinuityReason int reason) {} /** - * Called when the current playback parameters change. The playback parameters may change due to - * a call to {@link #setPlaybackParameters(PlaybackParameters)}, or the player itself may change - * them (for example, if audio playback switches to passthrough mode, where speed adjustment is - * no longer possible). - * - * @param playbackParameters The playback parameters. + * @deprecated Use {@link #onPlaybackSpeedChanged(float)} and {@link + * AudioListener#onSkipSilenceEnabledChanged(boolean)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated default void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {} + /** + * Called when the current playback speed changes. The normal playback speed is 1. The speed may + * change due to a call to {@link #setPlaybackSpeed(float)}, or the player itself may change it + * (for example, if audio playback switches to passthrough mode, where speed adjustment is no + * longer possible). + */ + default void onPlaybackSpeedChanged(float playbackSpeed) {} + /** * Called when all pending seek requests have been processed by the player. This is guaranteed * to happen after any necessary changes to the player state were reported to {@link @@ -701,6 +707,9 @@ public interface Player { /** Timeline changed as a result of a dynamic update introduced by the played media. */ int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; + /** The default playback speed. */ + float DEFAULT_PLAYBACK_SPEED = 1.0f; + /** Returns the component of this player for audio output, or null if audio is not supported. */ @Nullable AudioComponent getAudioComponent(); @@ -913,24 +922,39 @@ public interface Player { void next(); /** - * Attempts to set the playback parameters. Passing {@code null} sets the parameters to the - * default, {@link PlaybackParameters#DEFAULT}, which means there is no speed or pitch adjustment. - * - *
Playback parameters changes may cause the player to buffer. {@link - * EventListener#onPlaybackParametersChanged(PlaybackParameters)} will be called whenever the - * currently active playback parameters change. - * - * @param playbackParameters The playback parameters, or {@code null} to use the defaults. + * @deprecated Use {@link #setPlaybackSpeed(float)} or {@link + * AudioComponent#setSkipSilenceEnabled(boolean)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters); /** - * Returns the currently active playback parameters. - * - * @see EventListener#onPlaybackParametersChanged(PlaybackParameters) + * @deprecated Use {@link #getPlaybackSpeed()} or {@link AudioComponent#getSkipSilenceEnabled()} + * instead. */ + @SuppressWarnings("deprecation") + @Deprecated PlaybackParameters getPlaybackParameters(); + /** + * Attempts to set the playback speed. + * + *
Playback speed changes may cause the player to buffer. {@link + * EventListener#onPlaybackSpeedChanged(float)} will be called whenever the currently active + * playback speed change. + * + * @param playbackSpeed The playback speed. + */ + void setPlaybackSpeed(float playbackSpeed); + + /** + * Returns the currently active playback speed. + * + * @see EventListener#onPlaybackSpeedChanged(float) + */ + float getPlaybackSpeed(); + /** * Stops playback without resetting the player. Use {@link #pause()} rather than this method if * the intention is to pause playback. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 6e183ba811..67a3657607 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -853,23 +853,19 @@ public class SimpleExoPlayer extends BasePlayer this.priorityTaskManager = priorityTaskManager; } - /** - * Sets the {@link PlaybackParams} governing audio playback. - * - * @deprecated Use {@link #setPlaybackParameters(PlaybackParameters)}. - * @param params The {@link PlaybackParams}, or null to clear any previously set parameters. - */ + /** @deprecated Use {@link #setPlaybackSpeed(float)} instead. */ + @SuppressWarnings("deprecation") @Deprecated @RequiresApi(23) public void setPlaybackParams(@Nullable PlaybackParams params) { - PlaybackParameters playbackParameters; + float playbackSpeed; if (params != null) { params.allowDefaults(); - playbackParameters = new PlaybackParameters(params.getSpeed()); + playbackSpeed = params.getSpeed(); } else { - playbackParameters = null; + playbackSpeed = 1.0f; } - setPlaybackParameters(playbackParameters); + setPlaybackSpeed(playbackSpeed); } /** Returns the video format currently being played, or null if no video is being played. */ @@ -1390,26 +1386,39 @@ public class SimpleExoPlayer extends BasePlayer player.seekTo(windowIndex, positionMs); } + /** + * @deprecated Use {@link #setPlaybackSpeed(float)} and {@link #setSkipSilenceEnabled(boolean)} + * instead. + */ + @SuppressWarnings("deprecation") + @Deprecated @Override public void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters) { verifyApplicationThread(); - boolean newSkipSilenceEnabled = - playbackParameters != null - ? playbackParameters.skipSilence - : PlaybackParameters.DEFAULT.skipSilence; - if (skipSilenceEnabled != newSkipSilenceEnabled) { - skipSilenceEnabled = newSkipSilenceEnabled; - notifySkipSilenceEnabledChanged(); - } player.setPlaybackParameters(playbackParameters); } + /** @deprecated Use {@link #getPlaybackSpeed()} and {@link #getSkipSilenceEnabled()} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public PlaybackParameters getPlaybackParameters() { verifyApplicationThread(); return player.getPlaybackParameters(); } + @Override + public void setPlaybackSpeed(float playbackSpeed) { + verifyApplicationThread(); + player.setPlaybackSpeed(playbackSpeed); + } + + @Override + public float getPlaybackSpeed() { + verifyApplicationThread(); + return player.getPlaybackSpeed(); + } + @Override public void setSeekParameters(@Nullable SeekParameters seekParameters) { verifyApplicationThread(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java index c86f4e2e4a..30eee75650 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java @@ -531,6 +531,12 @@ public class AnalyticsCollector } } + /** + * @deprecated Use {@link #onPlaybackSpeedChanged(float)} and {@link + * #onSkipSilenceEnabledChanged(boolean)} instead. + */ + @SuppressWarnings("deprecation") + @Deprecated @Override public final void onPlaybackParametersChanged(PlaybackParameters playbackParameters) { EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); @@ -539,6 +545,14 @@ public class AnalyticsCollector } } + @Override + public void onPlaybackSpeedChanged(float playbackSpeed) { + EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); + for (AnalyticsListener listener : listeners) { + listener.onPlaybackSpeedChanged(eventTime, playbackSpeed); + } + } + @Override public final void onSeekProcessed() { if (isSeeking) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java index fbaa6a9781..77bc211ee3 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java @@ -197,14 +197,22 @@ public interface AnalyticsListener { default void onSeekProcessed(EventTime eventTime) {} /** - * Called when the playback parameters changed. - * - * @param eventTime The event time. - * @param playbackParameters The new playback parameters. + * @deprecated Use {@link #onPlaybackSpeedChanged(EventTime, float)} and {@link + * #onSkipSilenceEnabledChanged(EventTime, boolean)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated default void onPlaybackParametersChanged( EventTime eventTime, PlaybackParameters playbackParameters) {} + /** + * Called when the playback speed changes. + * + * @param eventTime The event time. + * @param playbackSpeed The playback speed. + */ + default void onPlaybackSpeedChanged(EventTime eventTime, float playbackSpeed) {} + /** * Called when the repeat mode changed. * diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java index 477b1fd1c1..725e0a8d39 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java @@ -276,6 +276,7 @@ public interface AudioSink { void setPlaybackParameters(PlaybackParameters playbackParameters); /** @deprecated Use {@link #getPlaybackSpeed()} and {@link #getSkipSilenceEnabled()} instead. */ + @SuppressWarnings("deprecation") @Deprecated PlaybackParameters getPlaybackParameters(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java index a4702f8242..e23ce3e5ad 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java @@ -158,12 +158,11 @@ public final class DefaultAudioSink implements AudioSink { * @deprecated Use {@link #applyPlaybackSpeed(float)} and {@link * #applySkipSilenceEnabled(boolean)} instead. */ + @SuppressWarnings("deprecation") @Deprecated @Override public PlaybackParameters applyPlaybackParameters(PlaybackParameters playbackParameters) { - return new PlaybackParameters( - applyPlaybackSpeed(playbackParameters.speed), - applySkipSilenceEnabled(playbackParameters.skipSilence)); + return new PlaybackParameters(applyPlaybackSpeed(playbackParameters.speed)); } @Override @@ -866,19 +865,20 @@ public final class DefaultAudioSink implements AudioSink { * @deprecated Use {@link #setPlaybackSpeed(float)} and {@link #setSkipSilenceEnabled(boolean)} * instead. */ + @SuppressWarnings("deprecation") @Deprecated @Override public void setPlaybackParameters(PlaybackParameters playbackParameters) { - setPlaybackSpeedAndSkipSilence(playbackParameters.speed, playbackParameters.skipSilence); + setPlaybackSpeedAndSkipSilence(playbackParameters.speed, getSkipSilenceEnabled()); } /** @deprecated Use {@link #getPlaybackSpeed()} and {@link #getSkipSilenceEnabled()} instead. */ + @SuppressWarnings("deprecation") @Deprecated @Override public PlaybackParameters getPlaybackParameters() { MediaPositionParameters mediaPositionParameters = getMediaPositionParameters(); - return new PlaybackParameters( - mediaPositionParameters.playbackSpeed, mediaPositionParameters.skipSilence); + return new PlaybackParameters(mediaPositionParameters.playbackSpeed); } @Override diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/ForwardingAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/ForwardingAudioSink.java index fefaa6db23..7ab1cdade4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/ForwardingAudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/ForwardingAudioSink.java @@ -99,18 +99,19 @@ public class ForwardingAudioSink implements AudioSink { * @deprecated Use {@link #setPlaybackSpeed(float)} and {@link #setSkipSilenceEnabled(boolean)} * instead. */ + @SuppressWarnings("deprecation") @Deprecated @Override public void setPlaybackParameters(PlaybackParameters playbackParameters) { - sink.setPlaybackSpeed(playbackParameters.speed); - sink.setSkipSilenceEnabled(playbackParameters.skipSilence); + sink.setPlaybackParameters(playbackParameters); } /** @deprecated Use {@link #getPlaybackSpeed()} and {@link #getSkipSilenceEnabled()} instead. */ + @SuppressWarnings("deprecation") @Deprecated @Override public PlaybackParameters getPlaybackParameters() { - return new PlaybackParameters(sink.getPlaybackSpeed(), sink.getSkipSilenceEnabled()); + return sink.getPlaybackParameters(); } @Override diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java b/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java index b2e15d69e4..5bc2894fa6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java @@ -149,9 +149,12 @@ public class EventLogger implements AnalyticsListener { logd( eventTime, "playbackParameters", - Util.formatInvariant( - "speed=%.2f, skipSilence=%s", - playbackParameters.speed, playbackParameters.skipSilence)); + Util.formatInvariant("speed=%.2f", playbackParameters.speed)); + } + + @Override + public void onPlaybackSpeedChanged(EventTime eventTime, float playbackSpeed) { + logd(eventTime, "playbackSpeed", Float.toString(playbackSpeed)); } @Override diff --git a/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java index ac0c444769..1a148ac4a0 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/analytics/AnalyticsCollectorTest.java @@ -26,7 +26,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.Format; -import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.Renderer; import com.google.android.exoplayer2.RenderersFactory; @@ -76,7 +75,7 @@ public final class AnalyticsCollectorTest { private static final int EVENT_POSITION_DISCONTINUITY = 2; private static final int EVENT_SEEK_STARTED = 3; private static final int EVENT_SEEK_PROCESSED = 4; - private static final int EVENT_PLAYBACK_PARAMETERS_CHANGED = 5; + private static final int EVENT_PLAYBACK_SPEED_CHANGED = 5; private static final int EVENT_REPEAT_MODE_CHANGED = 6; private static final int EVENT_SHUFFLE_MODE_CHANGED = 7; private static final int EVENT_LOADING_CHANGED = 8; @@ -1464,10 +1463,10 @@ public final class AnalyticsCollectorTest { reportedEvents.add(new ReportedEvent(EVENT_SEEK_PROCESSED, eventTime)); } + @SuppressWarnings("deprecation") @Override - public void onPlaybackParametersChanged( - EventTime eventTime, PlaybackParameters playbackParameters) { - reportedEvents.add(new ReportedEvent(EVENT_PLAYBACK_PARAMETERS_CHANGED, eventTime)); + public void onPlaybackSpeedChanged(EventTime eventTime, float playbackSpeed) { + reportedEvents.add(new ReportedEvent(EVENT_PLAYBACK_SPEED_CHANGED, eventTime)); } @Override diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java index 4f30b20da2..feac36f5f8 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java @@ -622,9 +622,7 @@ public abstract class Action { super( tag, "SetPlaybackParameters:" - + (playbackParameters == null - ? "null" - : playbackParameters.speed + ":" + playbackParameters.skipSilence)); + + (playbackParameters == null ? "null" : playbackParameters.speed)); this.playbackParameters = playbackParameters; } diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java index f8488155b5..c8151afd14 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java @@ -256,16 +256,32 @@ public abstract class StubExoPlayer extends BasePlayer implements ExoPlayer { throw new UnsupportedOperationException(); } + /** @deprecated Use {@link #setPlaybackSpeed(float)} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters) { throw new UnsupportedOperationException(); } + /** @deprecated Use {@link #getPlaybackSpeed()} instead. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public PlaybackParameters getPlaybackParameters() { throw new UnsupportedOperationException(); } + @Override + public void setPlaybackSpeed(float playbackSpeed) { + throw new UnsupportedOperationException(); + } + + @Override + public float getPlaybackSpeed() { + throw new UnsupportedOperationException(); + } + @Override public void setSeekParameters(@Nullable SeekParameters seekParameters) { throw new UnsupportedOperationException();