Call Client
The main entry point for using daily-android
, CallClient
is used to join a Daily room with configurable media inputs, as well as quality and bandwidth settings when publishing tracks.
A CallClient
instance is pre-configured with reasonable defaults for a high-quality video calling experience, and can be further customized to fit different use cases.
The Lifecycle
parameter is optional. If this is provided, the CallClient
will automatically be cleaned up when the associated Activity
(or other LifecycleOwner
) is destroyed.
Note: The CallClient
is designed to be used from a single thread.
Return
The newly constructed client.
Parameters
The application context
Optional: if provided, the CallClient
will automatically be cleaned up when the owner of the Lifecycle
is destroyed.
Optional: the handler for the thread on which you wish to interact with the CallClient
. Callbacks will be given on this thread, and CallClient
APIs should also be invoked from this thread. If this is omitted, then the main application thread will be used.
Constructors
Constructs a new instance of a CallClient. This call does not join a room, rather a join must be done explicitly via CallClient.join.
Types
Functions
Get the current active speaker.
Adds a new custom audio track, with the specified name and source.
Adds a new custom video track, with the specified name and source.
Adds an event listener to trigger on a specific Daily event.
Adds additional endpoints to an existing live stream.
Get the current audio route which is in use. The deviceId will match the one of the deviceIds returned by availableDevices().
Get the available media devices. (e.g. cameras, microphones, ...)
Request the Call Configuration for a given Daily room URL.
Eject remote participants.
Get the current input settings.
Joins a room with the specified URL. Optionally, a meeting token and client settings update may also be specified.
Leaves the current call. If there is no ongoing call, this method does nothing.
Gets the current local audio level.
Get all the participants currently in the call, including the local participant.
Get the current publishing settings.
Gets the current audio level of all remote participants.
Remove an existing custom audio track with the specified name.
Remove an existing custom video track with the specified name.
Removes an event listener so it no longer triggers on a specific Daily event.
Removes endpoints from an existing live stream.
Sends a custom JSON message to the specified recipient(s).
Updates the mobile audio route with the audio device identified by the deviceId argument. The deviceId argument should match the deviceId value returned by availableDevices().
Enable or disable the camera flashlight. The default value is false
.
Sets the camera zoom ratio. The default value is 1.0
.
Allows for specifying custom TURN servers rather than only using Daily's default TURN servers.
Enable or disable the camera and/or microphone.
Publish or unpublish a camera and/or microphone track.
For users whose firewall policies prevent them from directly accessing Daily’s domains.
Intent with the permission for screen sharing.
Assign remote participants to subscription profiles.
Assign a remote participant to a subscription profile.
Start or stop subscribing to all tracks from specific remote participants.
Start or stop subscribing to all of a remote participant's tracks.
Start or stop subscribing to specific tracks from a remote participant.
Start or stop subscribing to specific tracks from specific remote participants.
Update the participant username.
Starts a live stream.
Starts monitoring the local audio level.
Starts a recording, if recording is enabled for the current room.
Starts monitoring the audio level from the remote participants.
Starts a screen share from the local participant.
Starts transcription with the specified properties.
Stops a live stream.
Stops monitoring the local audio level.
Stops the specified recording.
Stops monitoring the audio level from the remote participants.
Stops a current screen share, if there is one.
Stops transcription.
Get the current subscription profiles. This contains the profiles that are currently configured in this call. The 'base' profile is always configured.
Get the current subscription settings. This contains subscription settings for participants which are already in the call as well as future participants which have been pre-configured.
Updates an existing custom audio track, with the specified name, to use the specified source.
Updates an existing custom video track with the specified name, to use the specified source.
Enable and/or configure media devices for the call, like a camera and microphone. Settings which are not specified in the provided InputSettingsUpdate parameter retain their current values.
Updates an existing livestream.
Modify your own permissions.
Publish and/or change publishing settings (e.g. quality) for different media tracks, like the camera and microphone tracks.
Updates the recording options for an existing recording.
Modify things about remote participants that you can control as a participant admin or meeting owner.
Insert or modify subscription media settings which apply to an entire profile.
Configure how (or if) to subscribe to remote media tracks. Settings can be specified per-participant (either an existing or future participant), or on a per-participant-profile basis. One built-in profile is provided (base
), and you may create your own profiles using updateSubscriptionProfiles.