Manage Participants for Android
You have a basic video conference application with which you can video call your friends using a conference room. However, you do not control the conference nor have any information about the conference participants.
This tutorial will take you through some simple steps to follow to have a full participants’ list.
Step 1: Create the participants’ list
Note: The participants’ list is only visible when the user has joined the conference.
Layout modification
1. To modify the layout, edit the main_activity.xml
file, adding the following content for Step 4:
<LinearLayout ...>
...
<!-- Step 4. Put the layout changes for the view participants step here -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="users :" />
<EditText
android:id="@+id/participants"
android:enabled="false"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- Step 5. ...
</LinearLayout>
2. Modify the interface linking in the MainActivity
class in MainActivity.java
:
- New method
updateParticipants
forMainActivity
with the following implementation:
public void updateParticipants() {
List<Participant> participantsList = VoxeetSDK.conference().getParticipants();
List<String> names = new ArrayList<>();
for (Participant participant : participantsList) {
if (participant.streams().size() > 0) {
names.add(participant.getInfo().getName());
}
}
binding.participants.setText(TextUtils.join(", ", names));
}
Step 2: Add a participant to the list
Note: The participants’ list is updated upon receiving the participantJoined
and participantLeft
events, the same way the participants’ streams were added in the previous tutorial.
1. Add the following logic to the application:
- Add a handler for the
ParticipantAddedEvent
.
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(ParticipantAddedEvent event) {
updateParticipants();
}
Step 3: Remove a participant from the list
1. Add the following logic to the application:
- Add a handler for the
ParticipantUpdatedEvent
.
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(ParticipantUpdatedEvent event) {
updateParticipants();
}
Updated 10 months ago