Package com.amazonaws.ivs.broadcast
Class Stage
- java.lang.Object
-
- com.amazonaws.ivs.broadcast.Stage
-
- All Implemented Interfaces:
Releasable
@RequiresApi(api=28) public class Stage extends java.lang.Object implements Releasable
The main interface for the host application to create a Stage and interact with the created session.Note that the first time you use this class (either to create a Stage object or to access one of its static methods), you must ensure that you are not asynchronously accessing one of the following classes at the same time: Device, DeviceDiscovery, BroadcastSession or StageAudioManager. Otherwise there is a risk of deadlock due to loading the underlying native library.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Stage.ConnectionState
ConnectionState indicates current Stage session statestatic class
Stage.PublishState
The various potential publish states for a participantstatic interface
Stage.Strategy
The Strategy is the decision engine associated with a Stage.static class
Stage.SubscribeState
The various potential subscribe states for a participantstatic class
Stage.SubscribeType
SubscribeType is used inStage.Strategy
to indicate whether SDK should subscribe and what media type it should subscribe
-
Constructor Summary
Constructors Constructor Description Stage(android.content.Context context, java.lang.String token, Stage.Strategy strategy)
Create a new Stage.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addRenderer(StageRenderer renderer)
Adds a renderer to the list of renderers that will be notified of updates to the Stage.protected void
finalize()
void
join()
Joins the Stage session associated with the token provided during initialization.void
leave()
Leaves the joined Stage session.void
refreshStrategy()
Triggers theStage.Strategy
on this instance to refresh its state.void
release()
Releases the resources associated with this Stage.void
removeRenderer(StageRenderer renderer)
Removes a renderer from the list of renderers that will be notified of updates to the Stage.void
replaceStrategy(Stage.Strategy strategy)
Whenever strategy is changed and host application wants SDK to honor the change,replaceStrategy(Strategy)
needs to be called.
-
-
-
Constructor Detail
-
Stage
public Stage(@NonNull android.content.Context context, @NonNull java.lang.String token, @NonNull Stage.Strategy strategy)
Create a new Stage. This is the main interaction point for interacting with the Stage SDK.- Parameters:
context
- A DisplayContext or ActivityContext. The ApplicationContext may cause issues for applications compiled against newer SDK versions.token
- A token generated by the IVS control plane that will be used to join the Stage whenjoin()
is called.strategy
- TheStage.Strategy
to use for this Stage.
-
-
Method Detail
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
join
public void join() throws BroadcastException
Joins the Stage session associated with the token provided during initialization.- Throws:
BroadcastException
- if this Stage has already calledrelease()
, or if the token provided in Stage constructor was invalid or expired.
-
leave
public void leave()
Leaves the joined Stage session. If no Stage session is joined, this call is a no-op
-
addRenderer
public void addRenderer(StageRenderer renderer)
Adds a renderer to the list of renderers that will be notified of updates to the Stage.- Parameters:
renderer
- renderer delegate implementation
-
removeRenderer
public void removeRenderer(StageRenderer renderer)
Removes a renderer from the list of renderers that will be notified of updates to the Stage.- Parameters:
renderer
- renderer delegate implementation
-
replaceStrategy
public void replaceStrategy(Stage.Strategy strategy)
Whenever strategy is changed and host application wants SDK to honor the change,replaceStrategy(Strategy)
needs to be called.- Parameters:
strategy
- strategy delegate implementation
-
refreshStrategy
public void refreshStrategy()
Triggers theStage.Strategy
on this instance to refresh its state. This is how host applications will make changes to how they are interacting with a Stage.
-
release
public void release()
Releases the resources associated with this Stage. After calling this, the Stage will no longer be useable.- Specified by:
release
in interfaceReleasable
-
-