Release Notes

Latest Versions

PackageVersion
@100mslive/react-native-room-kitnpm
@100mslive/react-native-hmsnpm

1.8.0 - 2023-09-15

Released: @100mslive/react-native-room-kit@1.0.0, @100mslive/react-native-hms@1.8.0

Added

  • Added previewForRole & cancelPreview APIs to preview the audio / video of a particular role before changing into the new Role.
    // preview video of a particular role await hmsInstance.previewForRole("viewer-on-stage"); // cancel preview await hmsInstance.cancelPreview();
    Learn more about Change Role here

Changed

  • Stopped sending ON_ERROR event when an action API fails. Instead, the promise wiil be rejected with an appropriate error message.

Updated to Android SDK 2.7.6 & iOS SDK 0.9.12

Full Changelog: 1.7.2...1.8.0

1.7.2 - 2023-09-04

Changed

  • Resolved an issue where capturing screenshot of Video on iOS was failing

  • Resolved an issue where empty peer name was being sent in onPeerUpdate events

  • Changed type prop of HMSMessage to string

Updated to Android SDK 2.7.3 & iOS SDK 0.9.10

Full Changelog: 1.7.1...1.7.2

1.7.1 - 2023-08-19

  • Reduced SDK size on Android by trimming out unused packages

  • Enabled sending of HMSRoomUpdate.ROOM_PEER_COUNT_UPDATED event by default

Updated to Android SDK 2.7.3 & iOS SDK 0.9.9

Full Changelog: 1.7.0...1.7.1

1.7.0 - 2023-06-21

Breaking

  • On Android, in the build.gradle file, increasing the compileSdkVersion & targetSdkVersion to 33 is required. For the changes in build.gradle file, refer here.

  • Removed Session Metadata methods

    The setSessionMetadata and getSessionMetadata methods which were deprecated in previous versions have been removed now.

    Utilize the Session Store functionality which is more convenient to implement features like Spotlight a Peer in Room, Keep a Message Pinned, etc. Read more about Session Store here.

New Features

  • Added HLS Player

    Introducing the 100ms HLS Player named HMSHLSPlayer a comprehensive end-to-end solution for playing Live Streaming content with inbuilt support for Timed Metadata, HLS Diagnostic Stats & Custom Player Controls.

    Learn more about HMSHLSPlayer here.

  • Switch Audio Output using Native iOS UI

    On iOS devices, you can now show the Native Airplay UI provided by iOS. Users can control the connected device which can be Airpods, any Bluetooth earphones, Wired Headsets, etc through which the Room's audio should be routed.

    Learn more about it here.

  • Publisher Stats

    SDK now sends detailed analytics from the WebRTC publisher side for enhanced debugging of call quality issues.

Changed

  • RTMP Streaming can now be started without the meetingUrl. It is now an optional parameter. Learn more about RTMP Streaming here.

  • Software Audio Echo Cancellation is now enabled by default. To further customize Audio & Video Track Settings, refer the docs here.

Updated to Android SDK 2.6.7 & iOS SDK 0.9.5

Full Changelog: 1.6.2...1.7.0

1.6.2 - 2023-05-18

Added

  • Added messageId property to HMSMessage class

    messageId allows you to uniquely identify messages sent or received by users within Rooms.

    For more information on how to utilize this, please refer to Chat Guide here.

Updated to Android SDK 2.6.4 & iOS SDK 0.9.4

Full Changelog: 1.6.1...1.6.2

1.6.1 - 2023-05-17

Fixed

  • Resolved an issue where applying Aspect Fit Ratio resulted in an unintended reset to AspectFill before restoring the correct behavior.

    For more details, refer to the documentation here.

Updated to Android SDK 2.6.3 & iOS SDK 0.9.4

Full Changelog: 1.6.0...1.6.1

1.6.0 - 2023-05-09

New Features

  • Session Store

    You can now use Session Store, a shared real-time key-value store accessible by everyone in the Room. This can be used to implement new features such as Pinned Messages and Spotlight Video Tiles, which brings a particular peer to the center stage for everyone in the Room.

    Learn more about Session Store here.

  • Music Mode on iOS

    The latest update adds the ability to achieve high-quality audio recordings with full, rich sound, whether you are recording music, podcasts, or any other type of audio.

    Learn more about the Music Mode here.

Fixed

  • Resolved a compilation error caused by an incorrect import of internal HMSSDK types when used with certain versions of Babel.

  • Fixed an issue on Android devices where the app was unable to handle null video tracks appropriately.

Updated to Android SDK 2.6.2 & iOS SDK 0.9.3

Full Changelog: 1.5.0...1.6.0

1.5.0 - 2023-04-25

Added

  • Added support for Adaptive Bitrate (Simulcast)

    Adaptive Bitrate refers to features that enable dynamic adjustments in video quality to optimize for end-user experience under diverse network conditions.

    To learn more about how ABR works & how it enhances your app, refer the guide here.

  • Using HMSVideoView on Android

    HMSVideoView on Android provides a better abstraction to render live video and handles edge cases like managing Release/Init states. It has in-built support to subscribe to video of the correct resolution.

    To learn more about Rendering Video, refer the guide here.

  • Added Simulcast support for RTC Stats

    RTC Call Stats are updated to show Simulcast layer data if available for Local Peer's Video Track. This can be used to diagnose user experience with metrics such as Audio/Video Bitrate, Round Trip Time, Packet loss, etc.

    To learn more about using RTC Call Stats, refer the guide here.

  • Camera Control Capabilities

    The latest update includes the ability to capture an image from a local peer feed at the maximum resolution supported by the Camera.

    Read more about the Camera Controls here.

Updated to Android SDK 2.6.1 & iOS SDK 0.9.2

Full Changelog: 1.4.0...1.5.0

1.4.0 - 2023-04-11

Added

  • Join using Room Codes
    • Room Codes is a streamlined and secure way to manage user authentication in Rooms.
    • By generating short codes via getAuthTokenByRoomCode API, you can easily manage user access with one code per role for each room, without the need for server infrastructure
    • This feature ensures a smoother login experience for users while enhancing security.
    You can read more about Room Codes here.

Updated to Android SDK 2.6.0 & iOS SDK 0.9.1

Full Changelog: 1.3.0...1.4.0

1.3.0 - 2023-04-06

Changed

Our latest release comes with major performance enhancements which include -

  • The introduction of Room and Peer Stores internally to optimize the initial data transfer across the JS Bridge.

  • This design reduces the time taken to Join a Room.

  • Post joining the Room, a minimal amount of data is exchanged to enhance performance.

  • This effect is more evident in Rooms with a large number of Peers.

Updated to Native Android SDK 2.5.9 & Native iOS SDK 0.8.1

Full Changelog: 1.2.0...1.3.0

1.2.0 - 2023-02-23

Added

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

Changed

  • 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

Fixed

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

1.1.0 - 2022-12-16

Added

  • 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 => role.name === 'host'); // get list of Roles to be updated - in this case "Waiting" and "Guest" Roles const rolesToChange = roles.filter(role => role.name === 'waiting' || role.name === '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: https://www.100ms.live/docs/react-native/v2/features/change-role

  • 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: https://www.100ms.live/docs/react-native/v2/advanced-features/pip-mode

Deprecated

  • Deprecated changeRole API in favour of changeRoleOfPeer

    No change in functionality or method signature.

Fixed

  • 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

  • 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: ', data.room.localPeer); };
  • Added HMSMessageType enum to Message

Fixed

  • 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

  • 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

Fixed

  • 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

Breaking

  • 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.

Changed

  • 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

  • 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?

1234