diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 694d16f3db..bc413b90e6 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -7,6 +7,9 @@ ### Unreleased changes * Common Library: + * Add `PlaybackParameters.withPitch(float)` method for easily copying a + `PlaybackParameters` with a new `pitch` value + ([#2257](https://github.com/androidx/media/issues/2257)). * ExoPlayer: * Fix sending `CmcdData` in manifest requests for DASH, HLS, and SmoothStreaming ([#2253](https://github.com/androidx/media/pull/2253)). diff --git a/libraries/common/src/main/java/androidx/media3/common/PlaybackParameters.java b/libraries/common/src/main/java/androidx/media3/common/PlaybackParameters.java index d63c80e70d..aac3054179 100644 --- a/libraries/common/src/main/java/androidx/media3/common/PlaybackParameters.java +++ b/libraries/common/src/main/java/androidx/media3/common/PlaybackParameters.java @@ -88,6 +88,18 @@ public final class PlaybackParameters { return new PlaybackParameters(speed, pitch); } + /** + * Returns a copy with the given pitch. + * + * @param pitch The new pitch. Must be greater than zero. + * @return The copied playback parameters. + */ + @UnstableApi + @CheckResult + public PlaybackParameters withPitch(@FloatRange(from = 0, fromInclusive = false) float pitch) { + return new PlaybackParameters(speed, pitch); + } + @Override public boolean equals(@Nullable Object obj) { if (this == obj) {