Manage other participants during an active call session. These methods allow you to mute participants, pause their video, and pin/unpin them in the call layout.
Register a ParticipantEventListener to receive callbacks when participant states change:
Kotlin
Java
Report incorrect code
Copy
Ask AI
callSession.addParticipantEventListener(this, object : ParticipantEventListener { override fun onParticipantJoined(participant: Participant) { Log.d(TAG, "${participant.name} joined the call") } override fun onParticipantLeft(participant: Participant) { Log.d(TAG, "${participant.name} left the call") } override fun onParticipantAudioMuted(participant: Participant) { Log.d(TAG, "${participant.name} was muted") } override fun onParticipantAudioUnmuted(participant: Participant) { Log.d(TAG, "${participant.name} was unmuted") } override fun onParticipantVideoPaused(participant: Participant) { Log.d(TAG, "${participant.name}'s video was paused") } override fun onParticipantVideoResumed(participant: Participant) { Log.d(TAG, "${participant.name}'s video was resumed") } override fun onParticipantListChanged(participants: List<Participant>) { Log.d(TAG, "Participant list updated: ${participants.size} participants") // Update your participant list UI } override fun onDominantSpeakerChanged(participant: Participant) { Log.d(TAG, "Dominant speaker: ${participant.name}") } // Other callbacks... override fun onParticipantHandRaised(participant: Participant) {} override fun onParticipantHandLowered(participant: Participant) {} override fun onParticipantStartedScreenShare(participant: Participant) {} override fun onParticipantStoppedScreenShare(participant: Participant) {} override fun onParticipantStartedRecording(participant: Participant) {} override fun onParticipantStoppedRecording(participant: Participant) {}})
Report incorrect code
Copy
Ask AI
callSession.addParticipantEventListener(this, new ParticipantEventListener() { @Override public void onParticipantJoined(Participant participant) { Log.d(TAG, participant.getName() + " joined the call"); } @Override public void onParticipantLeft(Participant participant) { Log.d(TAG, participant.getName() + " left the call"); } @Override public void onParticipantAudioMuted(Participant participant) { Log.d(TAG, participant.getName() + " was muted"); } @Override public void onParticipantAudioUnmuted(Participant participant) { Log.d(TAG, participant.getName() + " was unmuted"); } @Override public void onParticipantVideoPaused(Participant participant) { Log.d(TAG, participant.getName() + "'s video was paused"); } @Override public void onParticipantVideoResumed(Participant participant) { Log.d(TAG, participant.getName() + "'s video was resumed"); } @Override public void onParticipantListChanged(List<Participant> participants) { Log.d(TAG, "Participant list updated: " + participants.size() + " participants"); // Update your participant list UI } @Override public void onDominantSpeakerChanged(Participant participant) { Log.d(TAG, "Dominant speaker: " + participant.getName()); } // Other callbacks... @Override public void onParticipantHandRaised(Participant participant) {} @Override public void onParticipantHandLowered(Participant participant) {} @Override public void onParticipantStartedScreenShare(Participant participant) {} @Override public void onParticipantStoppedScreenShare(Participant participant) {} @Override public void onParticipantStartedRecording(Participant participant) {} @Override public void onParticipantStoppedRecording(Participant participant) {}});
Control the visibility of the participant list button in the call UI:
Kotlin
Java
Report incorrect code
Copy
Ask AI
val sessionSettings = CometChatCalls.SessionSettingsBuilder() .hideParticipantListButton(false) // Show the participant list button .build()
Report incorrect code
Copy
Ask AI
SessionSettings sessionSettings = new CometChatCalls.SessionSettingsBuilder() .hideParticipantListButton(false) // Show the participant list button .build();
Listen for when users tap the participant list button:
Kotlin
Java
Report incorrect code
Copy
Ask AI
callSession.addButtonClickListener(this, object : ButtonClickListener { override fun onParticipantListButtonClicked() { Log.d(TAG, "Participant list button clicked") // Show custom participant list UI if needed } // Other ButtonClickListener callbacks... override fun onLeaveSessionButtonClicked() {} override fun onRaiseHandButtonClicked() {} override fun onShareInviteButtonClicked() {} override fun onChangeLayoutButtonClicked() {} override fun onToggleAudioButtonClicked() {} override fun onToggleVideoButtonClicked() {} override fun onSwitchCameraButtonClicked() {} override fun onChatButtonClicked() {} override fun onRecordingToggleButtonClicked() {}})
Report incorrect code
Copy
Ask AI
callSession.addButtonClickListener(this, new ButtonClickListener() { @Override public void onParticipantListButtonClicked() { Log.d(TAG, "Participant list button clicked"); // Show custom participant list UI if needed } // Other ButtonClickListener callbacks... @Override public void onLeaveSessionButtonClicked() {} @Override public void onRaiseHandButtonClicked() {} @Override public void onShareInviteButtonClicked() {} @Override public void onChangeLayoutButtonClicked() {} @Override public void onToggleAudioButtonClicked() {} @Override public void onToggleVideoButtonClicked() {} @Override public void onSwitchCameraButtonClicked() {} @Override public void onChatButtonClicked() {} @Override public void onRecordingToggleButtonClicked() {}});