diff --git a/RELEASENOTES.md b/RELEASENOTES.md index bcd1998a6a..49c63a0efe 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -125,6 +125,12 @@ `Result` that didn't support this which produced an `UnsuportedOperationException` ([#78](https://github.com/androidx/media/issues/78)). + * Fix the way `PlayerWrapper` creates a `VolumeProviderCompat` by + determining `volumeControlType` through both legacy commands + (`COMMAND_ADJUST_DEVICE_VOLUME` and `COMMAND_SET_DEVICE_VOLUME`) and new + commands (`COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS` and + `COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS`) + ([#554](https://github.com/androidx/media/issues/554)). * UI: * Add a `Player.Listener` implementation for Wear OS devices that handles playback suppression due to diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index 60aa78d6d7..24c7cb019c 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -1031,9 +1031,11 @@ import java.util.List; } Commands availableCommands = getAvailableCommands(); int volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_FIXED; - if (availableCommands.contains(COMMAND_ADJUST_DEVICE_VOLUME)) { + if (availableCommands.containsAny( + COMMAND_ADJUST_DEVICE_VOLUME, COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)) { volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_RELATIVE; - if (availableCommands.contains(COMMAND_SET_DEVICE_VOLUME)) { + if (availableCommands.containsAny( + COMMAND_SET_DEVICE_VOLUME, COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)) { volumeControlType = VolumeProviderCompat.VOLUME_CONTROL_ABSOLUTE; } }