Skip to content

Releases: 100mslive/100ms-react-native

1.6.0

09 May 08:18
0bf0ed0
Compare
Choose a tag to compare

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

25 Apr 11:01
4b93886
Compare
Choose a tag to compare

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

11 Apr 12:08
900a1cb
Compare
Choose a tag to compare

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

06 Apr 13:55
b9074c8
Compare
Choose a tag to compare

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

23 Feb 16:14
202a9bb
Compare
Choose a tag to compare

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

22 Dec 10:50
f0ec3f8
Compare
Choose a tag to compare

Fixed

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

Full Changelog: 1.1.0...1.1.1

1.1.0

17 Dec 09:59
04f022f
Compare
Choose a tag to compare

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 PIPConfig to enable Actionable 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/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

01 Dec 17:20
e27db6b
Compare
Choose a tag to compare

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

31 Oct 16:45
dc1d270
Compare
Choose a tag to compare

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

27 Sep 15:07
e10b1a2
Compare
Choose a tag to compare
  • 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 the 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