amazon-chime-sdk / com.amazonaws.services.chime.sdk.meetings.realtime / RealtimeControllerFacade

# RealtimeControllerFacade

`interface RealtimeControllerFacade`

RealtimeControllerFacade controls aspects meetings concerning realtime UX that for performance, privacy, or other reasons should be implemented using the most direct path. Callbacks generated by this interface should be consumed synchronously and without business logic dependent on the UI state where possible.

Events will be passed through RealtimeObserver, which in turn provides consumers the volume/mute/signal/attendee callbacks that can be used to render in the UI. Data Messages will be passed through DataMessageObserver.

### Functions

#### addRealtimeDataMessageObserver | Subscribes to receive message on a topic, there could be multiple observers per topic `abstract fun addRealtimeDataMessageObserver(topic: String, observer: DataMessageObserver): Unit`
#### addRealtimeObserver | Subscribes to real time events with an observer `abstract fun addRealtimeObserver(observer: RealtimeObserver): Unit`
#### addRealtimeTranscriptEventObserver | Subscribes to transcript event with an observer `open fun addRealtimeTranscriptEventObserver(observer: TranscriptEventObserver): Unit`
#### realtimeIsVoiceFocusEnabled | Checks if Amazon Voice Focus is enabled. `abstract fun realtimeIsVoiceFocusEnabled(): Boolean`
#### realtimeLocalMute | Mute the audio input. `abstract fun realtimeLocalMute(): Boolean`
#### realtimeLocalUnmute | Unmutes the audio input. `abstract fun realtimeLocalUnmute(): Boolean`
#### realtimeSendDataMessage | Send message via data channel. Messages are only expected to be sent after audio video has started, otherwise will be ignored. Even though one can send data messages to any valid topic, in order to receive the messages from the given topic, one need to subscribed to the topic by calling addRealtimeDataMessageObserver. LifetimeMs specifies milliseconds for the given message can be stored in server side. Up to 1024 messages may be stored for a maximum of 5 minutes. `abstract fun realtimeSendDataMessage(topic: String, data: Any, lifetimeMs: Int = 0): Unit`
#### realtimeSetVoiceFocusEnabled | Enable or disable Amazon Voice Focus (ML-based noise suppression) on the audio input. `abstract fun realtimeSetVoiceFocusEnabled(enabled: Boolean): Boolean`
#### removeRealtimeDataMessageObserverFromTopic | Unsubscribes from a message topic `abstract fun removeRealtimeDataMessageObserverFromTopic(topic: String): Unit`
#### removeRealtimeObserver | Unsubscribes from real time events by removing the specified observer `abstract fun removeRealtimeObserver(observer: RealtimeObserver): Unit`
#### removeRealtimeTranscriptEventObserver | Unsubscribes from transcript event by removing the specified observer `open fun removeRealtimeTranscriptEventObserver(observer: TranscriptEventObserver): Unit`

### Inheritors

#### AudioVideoFacade | `interface AudioVideoFacade : AudioVideoControllerFacade, RealtimeControllerFacade, DeviceController, VideoTileControllerFacade, ActiveSpeakerDetectorFacade, ContentShareController, EventAnalyticsFacade`
#### DefaultRealtimeController | `class DefaultRealtimeController : RealtimeControllerFacade`