Live View
Live view is a WebRTC session between the app and the camera, signalled through AWS Kinesis Video Streams. LiveStreamClient owns the session: it wakes battery cameras, renders into the TextureView renderers it publishes as players, and carries commands — talkback, siren, two-way calling — over the data channel. Its state is exposed as StateFlows (status, hasLoadedStream, isPrewarmed, isRecording, isMicEnabled, isSpeakerEnabled, callState, signalStrength, temperatureInfo, humidityInfo).
val client = LiveStreamClient(device = device, autoDisconnectAfter = 300_000L)
// construction starts the connection (unless prewarmEnabled = true);
// attach client.players to the layout; client.close() when the screen goes away
In this section
| Page | Covers |
|---|---|
| Setting Up | Creating the client, stream type, auto-disconnect, prewarming |
| Rendering Live View | Attaching the players, stream status, HD toggle, keep-awake |
| Audio Interactions | Speaker and microphone, foreground reporting, Telecom handoff |
| RSSI | Camera Wi-Fi signal readings |
| Two-Way Calling | Call records, accepting and ending, local video |
| Recording and Snapshots | Recording to the gallery and capturing stills |
Product features on the stream
| Command | Product page |
|---|---|
startSiren() / stopSiren() | Home Security → Alarm & Deterrence |
temperatureInfo / humidityInfo | Baby → Nursery Monitoring |
A note on battery and data
Set autoDisconnectAfter on the client. An unattended stream drains a battery camera and, on a cellular camera, the shared data pool. disableAutoDisconnect() / enableAutoDisconnect() pause and resume the timer while the user is actively interacting.