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 45e2f3771d..7f1e547591 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/CompositionPlayer.java @@ -248,6 +248,8 @@ public final class CompositionPlayer extends SimpleBasePlayer COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_TIMELINE, COMMAND_SET_VIDEO_SURFACE, + COMMAND_GET_VOLUME, + COMMAND_SET_VOLUME, COMMAND_RELEASE) .build(); @@ -521,6 +523,13 @@ public final class CompositionPlayer extends SimpleBasePlayer return Futures.immediateVoidFuture(); } + @Override + protected ListenableFuture handleSetVolume(float volume) { + volume = Util.constrainValue(volume, /* min= */ 0, /* max= */ 1); + finalAudioSink.setVolume(volume); + return Futures.immediateVoidFuture(); + } + @Override protected ListenableFuture handleSeek(int mediaItemIndex, long positionMs, int seekCommand) { CompositionPlayerInternal compositionPlayerInternal = diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionPlayerTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionPlayerTest.java index fa7d930431..0585e11abd 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionPlayerTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionPlayerTest.java @@ -237,6 +237,8 @@ public class CompositionPlayerTest { Player.COMMAND_GET_CURRENT_MEDIA_ITEM, Player.COMMAND_GET_TIMELINE, Player.COMMAND_SET_VIDEO_SURFACE, + Player.COMMAND_GET_VOLUME, + Player.COMMAND_SET_VOLUME, Player.COMMAND_RELEASE); player.release();