- Video/Audio Conference with 10-12 people.
- Join/Rejoin video room functionality (like Skype).
- Mute/Unmute audio/video stream (own and opponents).
- Display bitrate.
- Switch video input device (camera).
Initialize
In order to start working with Multiparty Video Conferencing API, you need to initialize a conference endpoint. To request the conference server URL, please contact us:enterprise@quickblox.com.- Java
- Kotlin
| Argument | Required | Description |
|---|---|---|
| conferenceServer | yes | A conference server URL. |
Create session
Create a session usingcreateSession() method. ConferenceClient instance is a client model responsible for managing the conference session. ConferenceClient has a setAutoSubscribeAfterJoin option signifying that your client will be subscribed to all online publishers after joining some room. By default, setAutoSubscribeAfterJoin is true. ConferenceSession is a session within a certain video room, managing all current processes.
- Java
- Kotlin
Callbacks
To have the ability to receive callbacks about the currentConferenceSession instance state and conference events, you should implement appropriate interfaces. Implement the QBRTCSessionStateCallback for tracking connection state:
- Java
- Kotlin
ConferenceSessionCallbacks for tracking conference events:
- Java
- Kotlin
Video and audio tracks
For obtaining video and audio tracks implement interfaceRTCClientVideoTracksCallbacks and RTCClientAudioTracksCallback.
- Java
- Kotlin
QBConferenceSurfaceView as renderer:
- Java
- Kotlin
Join video room
You can join a room as a listener or as a publisher. As a listener, you subscribe only to the publishers, without giving your own video and audio streams.- Java
- Kotlin
- Java
- Kotlin
You should subscribe to publishers only when the session state becomes connected. Use
onStateChanged() callback method to track session states.joinDialog(). To unsubscribe from the publisher, use the unSubscribeFromPublisher() method.
- Java
- Kotlin
Mute local audio
Mute the audio by callinggetLocalAudioTrack().setEnabled() method. Using this method, we can tell SDK to send/not send audio data from a local peer in the specified WebRTC session.
- Java
- Kotlin
Mute remote audio
You can always get remote audio tracks for a specific user ID in the call using the above-specifiedQBRTCSession methods (assuming that they are existent). You can also mute remote media tracks on your side by changing the value of the enabled property for a specific remote media track.
- Java
- Kotlin
Disable local video
Turn off the video by callinggetLocalVideoTrack().setEnabled(). Using this method, we can tell SDK not to send video data from a local peer in the specified session.
- Java
- Kotlin
Disable remote video
Turn off the video by callinggetVideoTrack(opponentID).setEnabled(). Using this method, we can tell SDK not to send video data from a remote peer in the specified session.
- Java
- Kotlin
Leave video room
To leave the current joined video room, use theleave() method.
- Java
- Kotlin
Camera resolution
The camera resolution is a video stream encoding parameter. It’s possible to set the custom video resolution to provide guarantees for the predictable behavior of the video stream.- Java
- Kotlin