# Release notes (/en/realtime-media/flexible-classroom/reference/release-notes/electron)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

This page provides the release notes for Flexible Classroom.

      
  
      
  
      
  
      
    ## Electron [#electron]

    ## v2.9.40 [#v2940-1]

    v2.9.40 was released on March 6, 2024.

    #### Improvements [#improvements-22]

    This release adds the following improvements:

    * Optimizes the logic of audio device selection after plugging and unplugging an external audio device.
    * Supports adjusting video profile during class.

    #### Issues fixed [#issues-fixed-23]

    This release fixes the following issues:

    * The on-stage state became inaccurate after students in a lecture hall joined and left the class.
    * The video window occasionally went black during live streaming on the H5 browser.

    ## v2.9.20 [#v2920-1]

    v2.9.20 was released on January 17, 2024.

    #### New features [#new-features-20]

    This release adds a notification which occurs when it takes too long to start the whiteboard.

    #### Improvements [#improvements-23]

    This release made the following improvements:

    * Upgraded the RTM service to v1.5.1.
    * Optimized network connection by enabling RTC and RTM Cloud Proxy configurations.
    * Enhanced the experience of searching for a member student during interaction.
    * Improved the display format of the time span during which a student is in the classroom.

    #### Issues fixed [#issues-fixed-24]

    This release fixed the following issues:

    * Users could join a room before the room was created.
    * The loudspeaker list was incorrectly displayed when a user plugged in or unplugged an external audio device.
    * The AI noise suppression switch was incorrectly displayed.
    * Some words in the user interface of the group discussion were incorrect.
    * Abnormalities occurred when a user left the discussion group.
    * Issues occurred with sound card capturing.
    * The callback was not triggered when the user attribute in a lecture hall was modified.
    * Occasionally, when a student frequently enabled or disabled video from a mobile device, the teacher could not subscribe to the video of the student.
    * Occasionally, the teacher/student could not operate the whiteboard after joining a discussion group.
    * An occasional error occurred when uploading courseware, which lead to failure in displaying the courseware list.

    ## v2.9.0 [#v290-1]

    v2.9.0 was released on November 22, 2023.

    #### New features [#new-features-21]

    This version adds the following new scenarios:

    * Online classroom scenarios and the introduction of a new UI style and interactive experience that are closer to the usage habits of educational users. See the following documentation:

      * [FcrUIScene SDK](../build/customize-the-ui-and-plugins/customize-ui-scene-sdk.mdx)
      * [API Reference](/en/api-reference/api-ref/flexible-classroom/ui-scene)

    One-to-one private chat function. This function does not currently support retrieving historical messages from servers on demand.

    #### Improvements [#improvements-24]

    This release added the following improvements:

    * Added support for automatic domain switch to reduce the chance of users not being able to use Flexible Classroom.
    * Optimized the mixing of system audio and RTC so that the media volume is not suppressed by the call volume.

    ## v2.8.13 [#v2813-2]

    v2.8.13 was released on February 20, 2023.

    This version added a Beta icon for the virtual background and beauty options features on the Device Settings page.

    #### Improvements [#improvements-25]

    This release adds support for sharing audio when sharing the screen.

    #### Issues fixed [#issues-fixed-25]

    This release fixes the following known issues:

    * Issues in the proctoring scenarios.
    * Issues on desktop devices.

    #### API changes [#api-changes-1]

    The `audioDeviceName` and `withAudio` parameters were added to the `startScreenShareCapture` method.

    For details, see the [API reference](https://api-ref.agora.io/en/flexible-classroom-sdk/web/2.x/classes/_stores_domain_common_media_index_.MediaStore.html#startScreenShareCapture).

    ## v2.8.0 [#v280-3]

    v2.8.0 was released on December 12, 2022.

    #### New features [#new-features-22]

    **New UI theme**

    v2.8.0 enables you to set the display theme of the classroom UI to light or dark.

    **New language supported**

    v2.8.0 supports setting the language of the classroom UI to Chinese or English.

    **Flexible Classroom UI builder**

    Flexible Classroom UI builder is launched to enable you design and customize the UI of your classroom.
    The UI builder currently supports the following
    Flexible Classroom features:

    * All features of versions 2.6.x and earlier
    * Setting the display theme of the classroom UI to light or dark
    * Setting the language of the classroom UI to Chinese or English

    **Online proctoring scenario**

    v2.8.0 provides the Agora Proctor SDK for online exam proctoring scenarios. For details, see the [Agora Proctor SDK API reference](/en/api-reference/api-ref/flexible-classroom/proctor-sdk).

    **Beauty options, virtual background, noise suppression**

    v2.8.0 adds support for substantial new capabilities including video beauty options, virtual backgrounds,
    and noise suppression. For details, see the documentation of the `webrtcExtensionBaseUrl` field of the
    `LaunchOption` parameter in the Classroom SDK.

    **New demo features**

    v2.8.0 adds the following features to the demo:

    * Signing up, logging in, and deleting the account
    * A course list page
    * Classroom reports, including the following information:
      * Course information
      * Course recording
      * Course reports, including tracking student attendance and students interaction
    * Highlighting of speakers
    * The ability to partially erase the whiteboard

    #### Improvements [#improvements-26]

    This release includes the following improvements:

    * Enhanced the UI layer code for developers to customize the classroom UI.
    * Support for the Microsoft Edge browser.
    * The following features were improved in the demo:
      * The procedures of joining and creating a room. Users can now reserve a room in advance as well.
      * The efficiency of converting course materials.
      * The compatibility of the whiteboard toolbar with touchscreen devices.
    * The `agora-edu-core` libraries have been enhanced.

    ## v2.6.x [#v26x-3]

    v2.6.x was released on July 29, 2022.

    #### New features [#new-features-23]

    **Taking screenshots (Electron only)**

    v2.6.x adds a snipping tool for Teacher to "take screenshots" of content inside and outside of the classroom, and dynamically add it to the classroom whiteboard. The feature is available in one-to-one classrooms, small classrooms, and lecture halls. This feature is available in the toolbar on Windows and macOS clients. Teachers and teaching assistants can choose to take a screenshot directly or with the current window hidden. The screenshot is displayed in the center of the whiteboard. And Agora provides APIs to expand usage of this feature to include Students and other roles:

    * Web: getSnapshotRgba
    * Electron: getSnapshot
    * iOS: getSnapshot
    * Android: getSnapshot

    **Automatic grouping**

    For the "breakout rooms" feature, v2.6.x supports automatic grouping. Teachers can set up the number of breakout rooms. Then the system randomly assigns the whole class to breakout rooms.

    **Drag and Drop images from desktop into the classroom whiteboard (Web/Electron)**

    v2.6.x allows teachers or teaching assistants on the PC to drop local images to the whiteboard area and insert the images into the whiteboard.

    **Dynamic Size, Resize and Place Teacher Video inside the Classroom**

    v2.6.x allows teachers to freely drag and drop their own video and the video of students within the classroom window. Teachers can also resize a video window by double-clicking it. Whatever actions the teacher takes with their video window, students will see.

    **Hiding the stage area**

    v2.6.x adds a button in the settings of small classrooms, which enables teachers to hide the stage area. After the stage is hidden, the following things occur:

    * All videos are disabled.
    * All students automatically steps down from the stage.
    * The whiteboard is scaled up to fit the classroom.

    **Saving whiteboard contents as images**

    v2.6.x allows teachers and teaching assistants to save contents on the whiteboard to their local device as JPG images.

    **Adding web links as courseware**

    v2.6.x allows teachers to add web links, such as YouTube links and Google Drive links, in **My Resources**. The suffix of such kind of courseware is `.alf`, which is the abbreviation of agora link file. After the upload succeeds, the teacher can open the courseware in the classroom.

    #### Issues fixed [#issues-fixed-26]

    This release fixed the following issues:

    * (iOS) Crashes occurred when receiving a global announcement.
    * (iOS) In small classrooms, the teacher did not select the brush, but red lines appeared on the whiteboard.
    * (iOS) In small classrooms, the teacher double-clicked the settings, chat, or roster buttons, the color of these buttons did not change.
    * (Android) In small classrooms, after a student joined a sub-room and invited the teacher to join the same sub-room, the teacher entered the wrong sub-room.
    * (All) In small classrooms, before any student joined the classroom, the teacher started and ended the breakout room session. Then after a student joined the classroom, when the teacher re-started the breakout room session, the 500 error occurred.

    ## v2.4.x [#v24x-3]

    v2.4.x was released on June 2, 2022.

    #### New features [#new-features-24]

    **Breakout rooms (Web only)**

    v2.4.x adds the "Breakout rooms" feature in the toolbox of small classrooms. With breakout rooms, students can get together in small groups for discussion and brainstorming sessions. The teacher manually assigns students to each breakout room. A class supports up to 20 breakout rooms with a maximum of 17 members in each room. The features that are available in breakout rooms include real-time audio and video interaction, messaging, whiteboarding, and screen sharing.

    After the breakout session begins, the teacher and teaching assistants have the ability to dynamically join or leave any of the breakout rooms. They can also send announcements to all the breakout rooms. Students are notified in their chat to check for the announcements.

    **Support for the teacher role on Android and iOS clients**

    v2.4.x duplicates the features of the teacher role on desktop experience for Web, macOS, and Windows on mobile clients (Android and iOS).

    <CalloutContainer type="info">
      <CalloutDescription>
        Note that the following features are temporarily not available for the teacher role on mobile clients:

        * Enabling screen sharing
        * Starting pop-up quizzes
        * Starting polls
        * Starting the countdown timer
      </CalloutDescription>
    </CalloutContainer>

    **Ability to turn the whiteboard on and off in the classroom**

    v2.4.x adds the ability to turn the whiteboard on or off in one-on-one classrooms, small classrooms, and lecture halls. By default, after the whiteboard is turned off, the teacher's video is displayed in the whiteboard area. Developers are also able to use UIStore or UIKit to customize the classroom layout when the whiteboard is off.

    #### Improvements [#improvements-27]

    This release includes the following improvements:

    * Optimizes widgets: v2.4.x optimizes the internal technical architecture of the three widgets: Pop-up Quiz, Poll, and Countdown Timer for the higher stability and better end-user experience. In addition, v2.4.x enables developers to get the data of pop-up quizzes and polls through RESTful APIs. For details, see the [RESTful API reference](/en/api-reference/api-ref/flexible-classroom/classroom-rest-api).
    * Improves the compatibility of the Web client: The Web client is now supported on the desktop version of Firefox.
    * Optimizes the cloud storage: v2.4.x optimizes the business logic and UI of the cloud storage feature in Flexible Classroom.
    * Optimizes the whiteboard: v2.4.x adds laser pointer, undo, redo, and one-click screen-clearing features on the whiteboard in Flexible Classroom.
    * Reward enhancements: The teacher can now extend and remove student rewards dynamically during a class session.

    #### Issues fixed [#issues-fixed-27]

    This release fixed the following issues:

    * When the teacher moved a file or a tool on the whiteboard, the movement might not be synchronized on the students' side.
    * Logging in to the IM module occasionally failed.
    * Loading a file failed when the format of the file was not supported.

    ## v2.1.0 [#v210-2]

    v2.1.0 was released on February 23, 2022.

    #### Release highlights [#release-highlights-3]

    In v2.1.0, Agora fully optimizes the internal architecture of Flexible Classroom. Compared to earlier versions, v2.1.0 has the following advantages:

    * New features:

      * Answer Selector (Pop-up Quiz), Polling Feature, Countdown Timer, Mobile HTML5 Support, and ability to turn the whiteboard on or off in the classroom.
      * Video Gallery Rotation: Ability for teachers to configure the classroom setting to automatically rotate the on-stage student gallery view without attempting to scroll or page through the class participants.

    * Lecture Hall: Expands audience capacity up to 5,000 students, from 1,000 in the last version.

    * Web client:

      * Adds support for Safari on desktop and iPad, as well as for Chrome on the iPad.
      * Introduces EDUClassroomUIStore for customizing the classroom UI, which replaces the UIKit in previous versions.

    * Android and iOS clients:

      * Redesigns contexts for better abstraction of modular features in Flexible Classroom, where each context can be controlled separately.

      * Refactors context APIs with the following improvements:

        * Renamed APIs and parameters for intuitiveness, understandability, and consistency.
        * Improved flexibility of API calling.
        * More APIs for developers to customize their own features.

    #### Flexible Classroom v2.1.0 migration guidance [#flexible-classroom-v210-migration-guidance-3]

    If you have made changes to your Flexible Classroom UI in earlier versions, in order to migrate to v2.1.0, Agora recommends you create a new project based on v2.1.0 and re-implement the UI changes. Please refer to the following Flexible Classroom v2.1.0 migration guides:

    * [migration guide](/en/realtime-media/flexible-classroom/reference/migration-guide)

    If you encounter any problem during the migration process, or need to migrate from Flexible Classroom earlier than v1.1.5, please contact [support@agora.io](mailto\:support@agora.io) so that Agora technical support team can help.

    #### New Features [#new-features-25]

    **Answer selector and polling feature**

    To increase engagement and enhance interactivity, v2.1.0 adds the following teaching tools:

    * Answer selector: This tool is applicable to scenarios where the teacher asks a single-choice or multiple-choice question and requests the whole class to answer the question together. The teacher can set up the choices and the correct answer, and then trigger answering. The teacher can see the number of students who have submitted an answer and the percentage that are correct in real time.
    * Polling: This tool is applicable to scenarios where the teacher wants to get feedback from the whole class. The teacher can set up the subject, choices, and start and end time of the poll. Flexible Classroom also provides live visualization of polling results.

    **Ability to turn the whiteboard on or off in the classroom**

    As of v2.1.0, Agora supports turning the whiteboard on or off in the classroom. For details, see Turn the Whiteboard on or off in the Classroom. When using the APIs for this feature, after the whiteboard is closed, developers can use Flexible Classroom UIKit or UIStore to customize their unique classroom with their desired video gallery to fill the classroom window.

    **Video gallery rotation**

    Flexible Classroom gives teachers the ability to configure the classroom settings for improved student engagement and video. The Video Gallery Rotation feature lets the teacher automatically rotate the on-stage student gallery view at a desired frequency and sequence, thus eliminating the need for the teacher to scroll or page through the class participants.

    **Mobile HTML5 support**

    As of v2.1.0, students can join a lecture hall in Flexible Classroom simply by clicking on a shared webpage link within some mobile social applications that use a web view. After joining the classroom on mobile devices, students can do the following things:

    * Watch and hear the teacher's lecture, as well as presentations by students "on the stage".
    * View the whiteboard and the screen shared by the teacher.
    * Send messages to chat with other participants in the classroom.
    * Engage in class activities such as polling, answering, and viewing the teacher's count down clock.

    <CalloutContainer type="info">
      <CalloutDescription>
        ℹ️ **Info**
        Please note that the following features are not supported on HTML5:

        * Students raising their hands to apply for speaking on the "stage".
        * Students drawing on the whiteboard.
        * Students testing or switching their local media devices.
      </CalloutDescription>
    </CalloutContainer>

    #### Improvements [#improvements-28]

    v2.1.0 makes the following improvements:

    * Optimizes the business logic and UI of various features in Flexible Classroom, such as students "raising their hands" for permission to speak, the class roster, and in-class reminders.
    * Increases the upper limit on the number of users in a lecture hall to 5,000.
    * Improves the compatibility of the Web client. The Web client is now supported on Safari for the desktop and iPad, as well as on Chrome for the iPad.
    * Supports displaying thumbnails and animations for the PPT files opened in the classroom.
    * When a classroom is being recorded, the recording button changes to red.

    #### Issues fixed [#issues-fixed-28]

    v2.1.0 fixed the following issues:

    * (All platforms) The Video SDK and whiteboard usage occurred in Flexible Classroom was not showed in Agora Console.
    * (Web) Occasional failure to record the whiteboard contents in a small classroom.
    * (Web) Occasional failure to send a massage in a small classroom.
    * (Web) After the teacher joined a lecture hall, there was a possibility that the whiteboard was not loaded successfully.
    * (Web/Windows/macOS) Sometimes in a lecture hall, a student "raised a hand" to apply for making a presentation, an error occurred. And the teacher did not receive the application.
    * (Web/Windows/macOS) In a small classroom, a student went onto the "stage" and turned on the video. After the student left the room, the student's video did not disappear immediately.
    * (Windows) When a student left and rejoined the room, the student could not see the room announcement published by the teacher.
    * (Windows) In a one-to-one classroom, the student's video occasionally went black.
    * (iOS) When the teacher displayed a PPT that contained audio and video, the student on iOS sometimes neither heard the audio nor saw the video.
    * (Android) In a small classroom, sometimes if a student on Android left and rejoined the room, the student could not see the teacher's video.

    ## v1.1.5 [#v115-2]

    v1.1.5 was released on October 20, 2021.

    #### Compatibility changes [#compatibility-changes-2]

    **Making open-source libraries into closed-source ones**

    As of v1.1.5, the `agora-edu-core` and `agora-rte-sdk` libraries in Flexible Classroom are closed-source. Agora moves the implementation of `AgoraEduCore.launch` into `agora-edu-core`, so developers can no longer make changes to it. For the parameters in `launchOption`, see the [API reference](/en/api-reference/api-ref/flexible-classroom/classroom-sdk).

    #### New features [#new-features-26]

    **Support for customizing the video encoding configurations**

    As of v1.1.5, developers can customize the video encoding configurations, including the width, height, frame rate, and bitrate. When calling the `launch` method, developers can set the `cameraEncoderConfiguration` and `screenShareEncoderConfiguration` parameters in `mediaOptions` to customize the encoding configurations for the video stream captured by a camera or the screen-sharing video stream.

    The recommended video encoding configurations are as follows:

    * One-to-one Classroom: 320x240, 200 Kbps, and 15 fps.
    * Small Classroom and Lecture Hall: 160x120, 65 Kbps, and 15 fps, if the number of students in a classroom who send their video stream at the same time is less than or equal to six.

    **Students automatically going onto the "stage"**

    v1.1.5 adds the feature of students automatically going onto the "stage" in the Small Classroom scenario. Once the teacher or TA enables this feature, students go onto the "stage" at specified intervals.

    **Image enhancement (Electron)**

    v1.1.5 adds a basic image enhancement feature, allowing users to adjust the contrast, brightness, smoothness, and red saturation of an image.

    **The countdown timer**

    v1.1.5 adds a countdown timer in Flexible Classroom. The teacher can find the countdown time in the toolbox and set an initial value. After the teacher clicks the start button, students see a countdown window.

    **Teachers making notes on their shared screen**

    As of v1.1.5, teachers can make notes on the screen that they share with the basic whiteboard tools.

    **Support for custom user properties and classroom properties (Web/Electron/Android/iOS)**

    As of v1.1.15, developers can customize properties for users and classrooms. These properties can be updated, and the updates can be monitored. For example, developers can set the profile photo as a custom user property. To support this feature, Agora makes the following changes to the Agora Edu Context:

    * Classroom properties:
      * Add the `updateFlexRoomProperties` method in `RoomContext` for adding or updating custom classroom properties.
      * Add the `flexRoomProperties` property in `RoomContext` for indicating the classroom property changes.
    * User properties: Add the `userFlexProperties` parameter in `LaunchOption` for passing in custom user properties when launching a classroom.

    #### Improvements [#improvements-29]

    * As of v1.1.5, Flexible Classroom supports displaying HTML5 courseware on the whiteboard.

    #### Issues fixed [#issues-fixed-29]

    v1.1.5 fixed the following issues:

    * In the middle of a class, if the app was reloaded, Flexible Classroom failed to keep the chat history.
    * In the middle of a class, when file uploading or conversion failed, Flexible Classroom did not trigger a pop-up window to indicate the failure.
    * When the region is set to NA, users failed to play the MP4 files in Flexible Classroom.
    * When downloading files in Flexible Classroom, the progress bar got stuck at 0%.

    ## v1.1.0.1 [#v1101-3]

    v1.1.0.1 was released on July 7, 2021.

    #### New features [#new-features-27]

    **Media encryption**

    To ensure the security during real-time audio and video transmission, v1.1.0.1 adds the `mediaOptions` parameter in [`LaunchOption`](/en/api-reference/api-ref/flexible-classroom/classroom-sdk) for supporting media stream encryption. By default, Flexible Classroom does not encrypt the media stream. To enable media encryption, use the `mediaOptions` parameter to choose an encryption mode and set the encryption key. Flexible Classroom supports the following encryption modes:

    * `AES_128_XTS`: 128-bit AES encryption, XTS mode.
    * `AES_128_ECB`: 128-bit AES encryption, ECB mode.
    * `AES_256_XTS`: 256-bit AES encryption, XTS mode.
    * `AES_128_GCM`: 128-bit AES encryption, GCM mode.
    * `AES_256_GCM`: 256-bit AES encryption, GCM mode.

    <CalloutContainer type="info">
      <CalloutDescription>
        The teacher and students in a classroom must use the same encryption mode and key. If not, unexpected issues, such as a white or black screen and noise, may occur.
      </CalloutDescription>
    </CalloutContainer>

    #### Issues fixed [#issues-fixed-30]

    v1.1.0.1 fixes the following issues:

    * The default region was not NA (North America).
    * When the user set the UI language as English, users saw some Chinese characters on the screen sharing window.
    * When the teacher started screen sharing, students saw a black screen.

    ## v1.1.0 [#v110-3]

    v1.1.0 was released on June 18, 2021. This is the first release of Agora Flexible Classroom with the following features:

    * Real-time audio and video interaction
    * Signaling
    * Interactive whiteboard
    * Screen sharing
    * Recording and replay
    * Teaching tools, including cloud storage, classroom rewards, and the user list
    * Customizing the classroom user interfaces and embedding custom plugins in classrooms
    * Flexible Classroom cloud service for classroom and user management

    
  
