This section describes how to implement an Android client for the students.

Flowchart

This flowchart shows the major logic of the students joining and leaving the classroom:

Integrate the SDK

Refer to the following table to download the SDKs, and integrate the SDKs into your project.

Product SDK download Integration guide
RTC (Real-time Communication) SDK Agora SDK for Android Start Live Interactive Streaming
RTM (Real-time Messaging) SDK Real-time Messaging SDK Peer-to-peer or Channel Messaging
Agora Edu Cloud Service / Agora Edu Cloud Service quickstart
Whiteboard White SDK Whiteboard quickstart

Core API call sequence

Refer to the following diagram to implement the basic real-time communication and messaging functions in your project with the Agora RTC SDK, RTM SDK, and Agora Edu Cloud Service.

  • Joins and leaves a channel:

  • Sends a request to speak up:

Core API reference

  • Agora Edu Cloud Service
API Function
entry Enters the classroom.
get room info Gets the classroom information.
change room info Changes the classroom information.
change user info Changes the user information.
  • Agora RTM SDK
API Function
createInstance Creates an RtmClient object.
login Logs into the Agora RTM system.
createChannel Creates an Agora RTM channel. You can create multiple channels with an RtmClient object.
join Joins an Agora RTM channel.
ceateMessage Creates an RtmMessage object.
sendMessage Sends a channel message, which can be received by all the users in the channel.
leave Leaves the RTM channel.
logout Logs out of the RTM system.
  • Agora RTC SDK
API Function
create Creates an RtcEngine object.
setChannelProfile Sets the channel profile. In a Lecture Hall, we set the channel profile as Live Broadcast.
setClientRole Sets the user role in a live broadcast. In a Big Online Classroom, we set the role of students as audience before they join the channel. During the class, if the student gets the permission to speak up, we switch the user role to broadcaster.
joinChannel Joins an Agora RTC channel.
setupRemoteVideo Sets the remote video view. Call this method after the students join the channel, to configure the the view of the teacher on the students' client.
setupLocalVideo Sets the local video view. Call this method after the student switches the user role to broadcaster, to configure the local view on the client.
leaveChannel Leaves the RTC channel.

Additional functions

For more features and functions available for an online class, you can refer to the following:

Monitor the network quality Use the onNetworkQuality callback of the Agora RTC SDK to monitor the last-mile uplink and downlink network quality of every user in the channel. For more methods for reporting the real-time network quality, see the following guides:
  • Lastmile Tests
  • In-call Stats
  • Mute the local audio or video Call the following methods provided by the Agora RTC SDK:
  • muteLocalAudioStream, to stop or resume sending the local audio stream.
  • muteLocalVideoStream, to stop or resume sending the local video stream.
  • Voice detection For RTC SDKs later than v2.9.2, you can enable voice detection by calling enableAudioVolumeIndication, and setting the report_vad parameter as true. Once enabled, the onAudioVolumeIndication callback reports whether the local user is speaking in the AudioVolumeInfo struct.
    Whiteboard Implement the following whiteboard functions in your project:
  • Document Conversion
  • State Managment
  • Tools
  • Perspective Operation
  • Whiteboard Operation
  • Page (Scene) Management
  • Open-source demo project

    Agora provides an open-source demo for Lecture Hall on GitHub to download as a source code reference.