This section describes how to implement the basic features of a virtual host scenario.
Refer to the flowcharts for the following functions:
| Product | SDK downloads | Integration guide |
|---|---|---|
| Agora RTC (Real-time Communication) SDK | Agora SDK for Android | Start a Video Broadcast |
| Agora RTM (Real-time Messaging) SDK | Real-time messaging SDK | Peer-to-peer or Channel Messaging |
| Third-party Animoji Enhancement SDK | N/A | Refer to the integration guide of the third-party Animoji SDK. |
The following diagrams show the core APIs that the Agora Live Demo app uses to implement a multi-hosted interactive streaming scenario. Refer to them to implement the various functions in your project.
| API | Function |
|---|---|
| createInstance | Creates an RTM Client object. |
| login | Logs into the Agora RTM system. |
| createChannel | Creates an Agora RTM channel. |
| join | Joins the RTM channel. |
| sendMessage | Sends a channel message, which can be received by all users in the channel. |
| sendMessageToPeer | Sends a peer message. The host uses this method to send a co-hosting invitation to an audience member; an audience member uses this method to send a co-hosting application to the host. |
| onMessageReceived | Occurs when receiving a peer-to-peer message. |
| leave | Leaves the RTM channel. |
| logout | Logs out of the Agora RTM system. |
| API | Function |
|---|---|
| create | Creates an RtcEngine object. |
| setChannelProfile | Sets the channel profile. In multi-hosted interactive streaming, the channel profile is set as BROADCASTING. |
| setClientRole | Sets the user role in interactive streaming. In multi-hosted interactive streaming, use this method to switch a user between a co-host and an audience member. |
| enableVideo | Enables video. |
| setupLocalVideo | Sets the local video view. Call this method on the clients of the host and co-hosts to enable the host and co-hosts to see their own video view. |
| joinChannel | Joins the RTC channel. |
| setupRemoteVideo | Sets the remote video view. Call this method on the clients of the host and co-hosts to enable the audience to see the video view of the host and co-hosts. |
| leaveChannel | Leaves the channel. |
| setVideoSource | Customizes the video source. |
| consumeTextureFrame | Receives the video frame in texture. |
| startPreview | Starts the local video preview before joining a channel. |
Network quality detection
Use the onRtcStats callback to detect and report the network quality in real-time. Triggered once every two seconds during a live broadcast, this callback reports statistics, including the sending and receiving bitrate and packet loss rate.
In-ear monitoring
Call enableInEarMonitoring to enable the in-ear monitor function on the host's client.
Audio mixing
After joining the channel, call startAudioMixing on the host's client to play background music.
Agora provides an open-source sample project for Virtual Host on GitHub for you to download as a source code reference.