From 938fac4161c143436895e30fab995f593728364e Mon Sep 17 00:00:00 2001 From: samrobinson Date: Mon, 24 Jun 2024 06:23:09 -0700 Subject: [PATCH] Update CompositionPlayer state for volume. PiperOrigin-RevId: 646071591 --- .../androidx/media3/transformer/CompositionPlayer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java index fbad74191a..548ec6e2b1 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java @@ -283,6 +283,7 @@ public final class CompositionPlayer extends SimpleBasePlayer private long compositionDurationUs; private boolean playWhenReady; private @PlayWhenReadyChangeReason int playWhenReadyChangeReason; + private float volume; private boolean renderedFirstFrame; @Nullable private Object videoOutput; @Nullable private PlaybackException playbackException; @@ -303,6 +304,7 @@ public final class CompositionPlayer extends SimpleBasePlayer players = new ArrayList<>(); compositionDurationUs = C.TIME_UNSET; playbackState = STATE_IDLE; + volume = 1.0f; } /** @@ -425,6 +427,7 @@ public final class CompositionPlayer extends SimpleBasePlayer .setPlaybackState(playbackState) .setPlayerError(playbackException) .setPlayWhenReady(playWhenReady, playWhenReadyChangeReason) + .setVolume(volume) .setContentPositionMs(this::getContentPositionMs) .setContentBufferedPositionMs(this::getBufferedPositionMs) .setTotalBufferedDurationMs(this::getTotalBufferedDurationMs) @@ -525,8 +528,8 @@ public final class CompositionPlayer extends SimpleBasePlayer @Override protected ListenableFuture handleSetVolume(float volume) { - volume = Util.constrainValue(volume, /* min= */ 0, /* max= */ 1); - finalAudioSink.setVolume(volume); + this.volume = Util.constrainValue(volume, /* min= */ 0.0f, /* max= */ 1.0f); + finalAudioSink.setVolume(this.volume); return Futures.immediateVoidFuture(); }