Package com.amazonaws.ivs.broadcast
Interface Stage.Strategy
- Enclosing class:
Stage
public static interface Stage.Strategy
The Strategy is the decision engine associated with a Stage. It is how the Stage asks the host application what actions to take.
If the host application wants to change their answer to a question, they can call
Stage.refreshStrategy().-
Method Summary
Modifier and TypeMethodDescriptiondefault RemoteStageStream.LayerpreferredLayerForStream(Stage stage, ParticipantInfo participantInfo, RemoteStageStream stream) Return theRemoteStageStream.Layerto be preferred for specific remote streams.booleanshouldPublishFromParticipant(Stage stage, ParticipantInfo participantInfo) Return `true` to publish the associated participant, or `false` to not publish them.shouldSubscribeToParticipant(Stage stage, ParticipantInfo participantInfo) Return theStage.SubscribeTypecorresponding to the type of media streams desired from the associated participant.stageStreamsToPublishForParticipant(Stage stage, ParticipantInfo participantInfo) Return an array of media streams to publish with the associated participant.default SubscribeConfigurationsubscribeConfigrationForParticipant(Stage stage, ParticipantInfo participantInfo) Return theSubscribeConfigurationto subscribe to the associated participant.
-
Method Details
-
stageStreamsToPublishForParticipant
@NonNull List<LocalStageStream> stageStreamsToPublishForParticipant(@NonNull Stage stage, @NonNull ParticipantInfo participantInfo) Return an array of media streams to publish with the associated participant. If the return value of this function changes, callStage.refreshStrategy()to use the new streams.- Parameters:
stage- TheStageto publish the streams to.participantInfo- TheParticipantInfothat will be associated with the returned streams.- Returns:
- A non-null (empty is okay) list of
LocalStageStreamobjects to publish to the Stage.
-
shouldPublishFromParticipant
boolean shouldPublishFromParticipant(@NonNull Stage stage, @NonNull ParticipantInfo participantInfo) Return `true` to publish the associated participant, or `false` to not publish them. If the return value of this function changes, callStage.refreshStrategy()update the local publishing state This will only be invoked on participants that have the publish capability.- Parameters:
stage- TheStageassociated with the participant.participantInfo- TheParticipantInfothat will be published or unpublished- Returns:
- Whether or not the participant should publish.
-
shouldSubscribeToParticipant
Stage.SubscribeType shouldSubscribeToParticipant(@NonNull Stage stage, @NonNull ParticipantInfo participantInfo) Return theStage.SubscribeTypecorresponding to the type of media streams desired from the associated participant.- Parameters:
stage- TheStageassociated with the participant.participantInfo- TheParticipantInfothat will be subscribed to or unsubscbribed from.- Returns:
- The desired
Stage.SubscribeTypefor the associated participant.
-
subscribeConfigrationForParticipant
default SubscribeConfiguration subscribeConfigrationForParticipant(@NonNull Stage stage, @NonNull ParticipantInfo participantInfo) Return theSubscribeConfigurationto subscribe to the associated participant.- Parameters:
stage- TheStageassociated with the participant.participantInfo- TheParticipantInfothat will be associated with the returned configuration.- Returns:
- The
SubscribeConfigurationfor the associated participant.
-
preferredLayerForStream
@Nullable default RemoteStageStream.Layer preferredLayerForStream(@NonNull Stage stage, @NonNull ParticipantInfo participantInfo, @NonNull RemoteStageStream stream) Return theRemoteStageStream.Layerto be preferred for specific remote streams.- Parameters:
stage- TheStageassociated with the participant.participantInfo- TheParticipantInfothat will be associated with the returned layer.stream- TheRemoteStageStreamthat will be associated with the returned layer.- Returns:
- The
RemoteStageStream.Layerfor the associated participant.
-