diff --git a/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java b/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java index bd54362617..477e59bfb8 100644 --- a/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java +++ b/libraries/common/src/main/java/androidx/media3/common/ForwardingPlayer.java @@ -30,6 +30,25 @@ import java.util.List; /** * A {@link Player} that forwards method calls to another {@link Player}. Applications can use this * class to suppress or modify specific operations, by overriding the respective methods. + * + *

Subclasses must ensure they maintain consistency with the {@link Player} interface, including + * interactions with {@link Player.Listener}, which can be quite fiddly. For example, if removing an + * available {@link Player.Command} and disabling the corresponding method, subclasses need to: + * + *

+ * + *

Many customization use-cases are instead better served by {@link ForwardingSimpleBasePlayer}, + * which allows subclasses to more concisely modify the behavior of an operation, or disallow a + * {@link Player.Command}. In many cases {@link ForwardingSimpleBasePlayer} should be used in + * preference to {@code ForwardingPlayer}. */ @UnstableApi public class ForwardingPlayer implements Player {