From 6bb3af527a086a27b5b5ef6a2855d3b5b93e72bc Mon Sep 17 00:00:00 2001 From: samrobinson Date: Mon, 10 Jun 2024 01:43:44 -0700 Subject: [PATCH] Add support for setting and getting volume for composition preview. PiperOrigin-RevId: 641822822 --- .../androidx/media3/transformer/CompositionPlayer.java | 9 +++++++++ .../media3/transformer/CompositionPlayerTest.java | 2 ++ 2 files changed, 11 insertions(+) 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();