add get/setPlaybackSpeed and listener callback
This change deprecates the PlaybackParameters and remove the skipSilenceField from the PlaybackParameters. This implies that enabling and disabling skipping silences needs to be done on the Player.AudioComponent after this change. After submission of the change, all Player API changes are done which are required to bring playbackSpeed and skipSilenceEnabled in the converged Player API state. PiperOrigin-RevId: 300420843
This commit is contained in:
parent
7b82a3c889
commit
683cb0260e
@ -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;
|
||||
|
@ -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;
|
||||
setPlaybackSpeed(
|
||||
playbackParameters != null ? playbackParameters.speed : Player.DEFAULT_PLAYBACK_SPEED);
|
||||
}
|
||||
if (this.playbackParameters.equals(playbackParameters)) {
|
||||
|
||||
/** @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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
* <p>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.
|
||||
*
|
||||
* <p>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.
|
||||
|
@ -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();
|
||||
|
@ -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) {
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -276,6 +276,7 @@ public interface AudioSink {
|
||||
void setPlaybackParameters(PlaybackParameters playbackParameters);
|
||||
|
||||
/** @deprecated Use {@link #getPlaybackSpeed()} and {@link #getSkipSilenceEnabled()} instead. */
|
||||
@SuppressWarnings("deprecation")
|
||||
@Deprecated
|
||||
PlaybackParameters getPlaybackParameters();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user