Release Notes

1.2.0 - 2023-02-23


  • Added support for video snapshot capture in HMSView for iOS, giving users the ability to extract high-quality images from the video playback


  • Improved performance for joining large rooms, reducing the time taken.

  • Implemented internal caching of Role objects to improve performance in large Rooms.

  • Updated the internal Native Events subscriber to prevent sending unattached event updates.

  • Fixed an issue where HMSTrack was incorrectly removed from HMSPeer if a RemotePeer un-publishes and re-publishes the HMSTrack.

  • Enhanced Disconnected State detection on specific networks for better stability.

Updated to Native Android SDK 2.5.7 & Native iOS SDK 0.6.4

Full Changelog: 1.1.1...1.2.0

1.1.1 - 2022-12-22


  • Corrected the path of SDK Versions JSON file used in Gradle & Podspec files

1.1.0 - 2022-12-16


  • Added support for Bulk Role Change

    Bulk Role Change is used when you want to convert all Roles from a list of Roles, to another Role.

    For example, if peers join a room with a Waiting Role and now you want to change all these peers to Viewer Role then use the changeRoleOfPeersWithRoles API.

    // fetch all available Roles in the room const roles = await hmsInstance.getRoles(); // get the Host Role object const hostRole = roles.find(role => === 'host'); // get list of Roles to be updated - in this case "Waiting" and "Guest" Roles const rolesToChange = roles.filter(role => === 'waiting' || === 'guest'); // now perform Role Change of all peers in "Waiting" and "Guest" Roles to the "Host" Role await hmsInstance.changeRoleOfPeersWithRoles(rolesToChange, hostRole);

    For More Information, refer:

  • Added HMSPIPConfig to enable buttons on PIP Window on Android

    Actionable buttons like Mute/Unmute Audio/Video, Leave Room for local peers can now be configured while enabling PIP Mode.

    await hmsInstance?.enablePipMode({ aspectRatio: [16, 9], // for 16:9 aspect ratio endButton: true, videoButton: true, audioButton: true, });

    For More Information, refer:


  • Deprecated changeRole API in favour of changeRoleOfPeer

    No change in functionality or method signature.


  • Corrected Speaker updates by avoiding sending of update event if a peer is not found in room on Android
  • Microphone not getting captured on Role Change from a non-publishing to publishing Role on iOS
  • Corrected an issue where on iOS a default Audio Mixer was getting created if Track Settings was passed while building the HMSSDK instance

Updated to Native Android SDK 2.5.4 & Native iOS SDK 0.5.3

Full Changelog: 1.0.0...1.1.0

1.0.0 - 2022-12-01


  • Added support for Picture in Picture mode on Android.

    PIP Mode lets the user watch the room video in a small window pinned to a corner of the screen while navigating between apps or browsing content on the main screen.

    Example implementation for checking device support & enabling PIP mode:

    const isPIPSupported = await hmsInstance.isPipModeSupported(); const isEnabled = await hmsInstance.enablePipMode();
  • Added Session Metadata APIs.

    Session metadata is a shared state that is accessible by everyone in the room.

    Session metadata can be used to achieve features like pinned text, spotlight(bringing a particular peer into a larger stage), etc.

    Example usage of setting & getting Room's Session Metadata:

    // set session metadata for the room hmsInstance.setSessionMetaData(value).then(() => { // on success, you can send a message to all the peers to fetch metadata hmsInstance.sendBroadcastMessage('refresh', HMSMessageType.METADATA); }); // peers in the room can fetch current Session Metadata any time using `getSessionMetaData` method const metadata = await hmsInstance.getSessionMetaData();
  • Added accessing of the local peer from the HMSRoom instance

    // you can now directly access local peer from HMSRoom object returned in `ON_JOIN` event listener const onJoinSuccess = (data: {room: HMSRoom}) => { console.log('local peer: ',; };
  • Added HMSMessageType enum to Message


  • Fixed memory leak on changing props of HMSView
  • Importing Native Android SDK dependency from Maven Central instead of Jitpack

Updated to Native Android SDK 2.5.1 & Native iOS SDK 0.4.7

Full Changelog: 0.9.94...1.0.0

0.9.94 - 2022-10-31

Breaking Change

  • Removed sending of the list of all peers in onPeerUpdate & onTrackUpdate event listeners. Now, only the specific peer & track for which the change occurred will be sent to the listeners. All peers in the room can be fetched using the getRemotePeers & getLocalPeer functions.


  • Added option to use Software Decoder for Video rendering on Android devices
  • Added support for Joining with Muted Audio & Video for local peers
  • Added better Telemetrics for analytics
  • Added support for receiving Server-side HMSMessage
  • Added Maven Central repository to look for Android dependencies
  • Added HMSLogSettings to configure Native Android SDK logs
  • Added Utility functions to get all peers - Remote or Local peers & all Roles in the room
  • Added toggle functions to enable/disable network quality updates


  • Corrected RTMP Streaming & Recording running status
  • Corrected HMSSubscribeSettings's roles which are subscribed
  • Fixed LetterBoxing (Black borders on top and bottom) observed when sharing the screen from Android devices
  • Corrected Preview callback track types
  • Removed unused setters for Local Audio & Video Track Settings

Updated to Native Android SDK 2.5.1 & Native iOS SDK 0.4.6

Full Changelog: 0.9.93...0.9.94

0.9.93 - 2022-09-27

  • Corrected params required while building HMSSDK instance
  • Added the ability to play local audio files from iOS devices
  • Added ability to share audio playing on iOS devices
  • Updated HMSException class. Added canRetry attribute
  • Updated to Native Android SDK 2.4.8 & Native iOS SDK 0.4.2

Full Changelog: 0.9.92...0.9.93

0.9.92 - 2022-09-13

  • Added ability to set track settings while building the SDK
  • Added capability to start screen share from iOS devices
  • Added more descriptive error messages

Full Changelog: 0.9.91...0.9.92

0.9.91 - 2022-08-18

  • Starting HLS streaming can now be done without HLSConfig object
  • Added ability to do custom audio routing on Android
  • Added the ability to share audio from local files on Android
  • Updated permissions available to roles
  • Corrected properties available in HMSException class
  • Fixed an issue where exiting from Preview without joining the room was not releasing camera access
  • Correct RTC Stats updates on Android
  • minifyEnabled is set to true for Android release builds
  • Updated to Native Android SDK 2.4.8 & Native iOS SDK 0.3.3

Full Changelog: 0.9.9...0.9.91

0.9.9 - 2022-07-11

  • leave functions fails when invoked in Reconnecting (No Internet) state
  • Added ability to remove logger after attaching
  • changeMetadata & remoteMuteAllAudio functions is now async

Full Changelog: 0.9.8...0.9.9

0.9.8 - 2022-07-08

  • Added resolution option in HMSRTMPConfig
  • Added granular error information when incorrect/missing params found in API invocations
  • Corrected current audio playback status when new tracks are added
  • Updated to Native Android SDK 2.4.4 & Native iOS SDK 0.3.2

Full Changelog: 0.9.7...0.9.8

0.9.7 - 2022-06-16

  • Corrected parsing of time in HMSMessage objects
  • Made sender peer nullable in HMSMessage. The sender will be null when messages are triggered from Server.
  • Updated to Native Android SDK 2.4.1 & Native iOS SDK 0.3.1

Full Changelog: 0.9.6...0.9.7

0.9.6 - 2022-06-09

  • Corrected HLSRecordingState updates received via room update events
  • Corrected return types of Browser/Server Recording & RTMP Streaming APIs
  • Fixed incorrect source type being passed for some tracks
  • Added function & missing param details on receivingREQUIRED_KEYS_NOT_FOUND errors
  • Added destroy API which will de-initialize all HMSSDK instances, even for multiple instances scenarios
  • Added sessionId to HMSRoom class
  • Updated to Native Android SDK 2.3.9 & Native iOS SDK 0.3.1

0.9.5 - 2022-05-11

  • Added the ability to take capture video frame (screenshot) of an individual video track
  • Resolved circular dependency warnings
  • Updated HMSView params - removed sink & id keys, made style optional
  • Corrected serverReceiveTime param type in HMSMessage
  • Updated to Native Android SDK 2.3.7 & Native iOS SDK 0.2.11

0.9.4 - 2022-04-20

0.9.3 - 2022-04-05

  • Added Network Quality Reports measuring a user's connection speed
  • Added the ability to render local auxiliary tracks on Android
  • Updated to Native Android SDK 2.3.4 & Native iOS SDK 0.2.9

0.9.2 - 2022-03-28

  • Added hlsRecordingConfig?: HMSHLSRecordingConfig to allow HLS Recording
  • Added hlsRecordingState?: HMSHLSRecordingState to HMSRoom for fetching the HLS Recording state of the room
  • Added sender: HMSPeer & recipient: HMSMessageRecipient properties on HMSMessage
  • Added promise to startScreenshare API so that clients can perform an action when screen share from an android mobile device
  • Fixed an issue where muting audio/video of a remote peer does not work
  • Updated to Native Android SDK 2.3.4 & Native iOS SDK 0.2.8

0.9.1 - 2022-03-02

  • Added room update & peer update callbacks on Preview. So before joining the room, you can know the peers already in the room & current room state like recording/streaming, etc
  • Added RTC Call Stats to show info about packet loss, bitrate, jitter, fps, resolution, etc for video tracks
  • Added start & stop timestamps in Server / Browser Recording & RTMP / HLS Streaming
  • Added streaming allowed attribute to peer's role permission
  • Added peer count attribute on HMSRoom object
  • Updated Native iOS SDK to 0.2.7, Native Android SDK to 2.3.1

0.9.0 - 2022-01-28

  • Added support for HLS Streaming - You can now start / stop / view HLS from the package
  • Added support for Android Screenshare - From an android device, you can do a screen share in the meeting room
  • Updated API parameter types
  • Updated to Native iOS SDK version 0.2.6 & Native Android SDK version 2.2.8

0.8.4 - 2022-01-07

  • Added check for Preview in progress before invoking join
  • Added support React Native version 0.63

0.8.3 - 2021-12-29

  • Made HMSTrackSettings as an optional parameter while building the HMS SDK instance

0.8.2 - 2021-12-29

  • Resolved a bug in Self Role Change which prevented the operation to succeed
  • Updated data passed in onPeerUpdate & onTrackUpdate callbacks
  • Made metadata as an optional field on peer object
  • Added configuration to enable/disable the usage of Hardware Echo Cancellation on Android
  • Added promise callbacks to Messaging & Change Track/Role state APIs
  • Corrected error messages sent by SDK

0.8.1 - 2021-12-10

  • Added peer metadata APIs using which you can build Raise Hand like features
  • Added Recording APIs to start / stop recording / streaming meeting room
  • Added set / get volume APIs
  • Corrected emitting of errors on failures
  • Added support for custom video sources

0.8.0 - 2021-11-19


  • build function of HMSSDK will not create a singleton now.
  • requestedBy field has been made optional for HMSChangeTrackStateRequest, HMSRemovedFromRoomNotification, HMSRoleChangeRequest. It will be nil if the request originated from the REST API.
  • leave function is now asynchronous. Join another room only when the previous leave call has been completed.


  • Corrected a bug where userId was not being passed.
  • Sending full error description when any error/exceptions occur.
  • isMute function of HMSTrack now returns correct status.
  • HMSView is now exported from HMSSDK class.


  • Added isPlaybackAllowed & setPlaybackAllowed for Remote Audio/Video tracks.
  • Added getRoom function on HMSSDK which returns the currently joined room. Returns null if the peer is not in a room.
  • Added changeTrackStateForRole API with which you can mute/unmute audio/video of all peers of a particular Role.

0.7.4 - 2021-11-03

  • Catching exception on join function
  • Cleared iOS global variables on leave
  • Removed listeners on leave
  • Exposed type param in message functions

0.7.3 - 2021-10-29

  • Clearing local cache data when leaving a room
  • Catching exceptions thrown by join function
  • Added Role-based permissions checks

0.7.2 - 2021-10-28

  • Added isPlaybackAllowed to remote audio & video tracks to mute/unmute remote tracks locally
  • Added changeTrackState API to mute/unmute remote peers audio/video tracks for the entire room

0.7.1 - 2021-10-27

  • Added mirror prop to HMSView to horizontally flip video tracks

0.7.0 - 2021-10-22

  • Added audio level, peer & track object to HMSSpeaker
  • Made package backwards compatible upto React Native version 0.63.0
  • Removed Xcode 13 requirement
  • Updated Sample app

0.6.0 - 2021-10-15

  • Added aspect ratio prop to HMSView
  • Asking for Camera & Microphone permissions only when required
  • Updated video tiles aspect ratio
  • Added horizontal pagination in sample app to improve performance

0.5.0 - 2021-09-29

  • Added Role-based permissions
  • You can now Change the Role of Remote Peers
  • Change Role of yourself
  • If you have permission then you can remove a peer from the room
  • Multiple improvements for network & device usage optimization

0.3.0 - 2021-08-31

  • Updated to "react-native": "0.65.1" to mitigate security vulnerabilities
  • Example App updated
  • Multiple bug fixes & performance improvements

0.2.0 - 2021-08-18

  • Added Support for Android! 🥳

0.1.0 - 2021-08-09

The first version of 100ms React Native SDK comes power-packed with support for multiple features like -

  • Join/Leave Rooms
  • Mute / Unmute Audio / Video
  • Switch Camera
  • Chat
  • Preview Screen
  • Network Switch Support
  • Subscribe Degradation in bad network scenarios
  • Error Handling and much more.

Take it for a spin! 🥳

Have a suggestion? Recommend changes ->

Was this helpful?