Skip to content

Releases: 100mslive/100ms-flutter

1.5.0

21 Apr 11:20
bb5313b
Compare
Choose a tag to compare

Breaking

  • Updated Screen share and Audio share implementation in Android

    The latest update includes changes in the implementation of Screen share and Audio share on Android. If you are using Screenshare or Local Audio Share functionalities, upgrading to this version or above will require changes to be made to the onActivityResult method of MainActivity.kt.

    More details are available in the Migration Guide listed below:

Added

  • 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, and the ability to control the phone's flash (if supported).

    Read more about the Camera Controls here.

  • Enter PIP Mode automatically

    The new update allows for automatic entry into PIP mode for all Android versions upon minimizing the application.

    Read more about adding PIP Mode here.

Changed

  • Improved logging capabilities in SDK for a more efficient and streamlined logging process.

    Read more about using Logging here.

Updated to Android SDK 2.6.1 & iOS SDK 0.9.2

Full Changelog: 1.4.0...1.5.0

1.4.0

06 Apr 15:38
c2b707e
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.

Changed

  • Improved Logging capabilities to help you diagnose and debug performance and user-reported issues more effectively

Updated to Android SDK 2.6.0 & iOS SDK 0.9.1

Full Changelog: 1.3.3...1.4.0

1.3.3

22 Mar 13:35
a8472b6
Compare
Choose a tag to compare

Fixed

  • Fixed an issue in Android PIP Mode wherein the PIP window showed black tile if the device is locked and then unlocked

  • Android PIP window will now automatically close if the Peer is removed from the Room

  • Updated the 100ms Quickstart, GetX, MobX & Riverpod based Sample apps

Updated to Android SDK 2.5.9 & iOS SDK 0.7.1

Full Changelog: 1.3.2...1.3.3

1.3.2

09 Mar 17:14
f33022f
Compare
Choose a tag to compare

Fixed

  • Corrected an issue with DateTime parsing where joining failed on iOS devices behind UTC Timezone

Using Android SDK 2.5.7 & iOS SDK 0.6.4

Full Changelog: 1.3.1...1.3.2

1.3.1

27 Feb 16:44
4f30dcb
Compare
Choose a tag to compare

Changed

  • Performance improvements for Picture-in-Picture (PIP) mode on iOS
  • Improved Disconnected State detection on certain Networks
  • Gracefully handling null objects

Updated to Android SDK 2.5.7 & iOS SDK 0.6.4

Full Changelog: 1.3.0...1.3.1

1.3.0

02 Feb 15:18
b1b428f
Compare
Choose a tag to compare

Breaking

  • Removed Start / Stop Capturing APIs on Local Video Tracks. Use toggleCameraMuteState to mute / unmute video of local peer as mentioned in Guide here.

Added

  • Added support for PIP Mode on iOS

    Now on iOS devices you can show a Picture-in-Picture(PIP) window while your app is in Background. You can configure the PIP window to show the Video of currently speaking Peer, or a Screenshare happening in Room, a Remote Peer's video in 1-to-1 Video Calls, etc

    To learn more about PIP & how to implement it in your apps, refer the PIP Guide here.

  • Added HMSPIPAndroidController to easily configure & use PIP Mode on Android

    PIP Mode support was available on Android since version 1.0.0. With this release we have made it more easy & simple to setup PIP on Android devices. Use the new HMSPIPAndroidController class to configure & start playing your Live Videos when your app is in Background. Refer the PIP Guide here.

  • Added Capture Snapshot API to capture a frame of the video track being rendered

    With the new captureSnapshot() method on HMSVideoTrack you can instantly capture a frame of any Video being rendered on screen. You can use this to capture moments of a Peer's Video, or a Screenshare happening in Room, etc. To learn more about how to use Capture Snapshot refer the Guide here.

Deprecated

  • Deprecated direct passing of AppGroup & PreferredExtension while building HMSSDK for iOS Screenshare. Use the new HMSIOSScreenshareConfig class for starting Screenshare from iOS Devices. For more details, refer the Screnshare Guide here.

  • Deprecated switchAudio and switchVideo functions to mute/unmute Audio/Video of local peer. Use toggleMicMuteState and toggleCameraMuteState functions as mentioned in the Guide here.

Fixed

  • Corrected an issue where doing multiple Role Changes stopped working
  • Corrected an issue where video views were getting recreated

Updated to Android SDK 2.5.7 & iOS SDK 0.6.2

Full Changelog: 1.2.0...1.3.0

1.2.0

13 Jan 17:10
698dd2c
Compare
Choose a tag to compare

Breaking

  • Made await while building HMSSDK Required

    Adding await to the build() method was optional earlier. It has been made Required now to eliminate edge cases where SDK initialization did not complete before invocation of join() method. Adding await ensures that an instance of HMSSDK is available before any further usages.

    hmsSDK = HMSSDK();
    
    await hmsSDK.build(); // NEW: adding await while invoking build method on HMSSDK is now Required
    
    hmsSDK.addUpdateListener(this);
    HMSConfig config = HMSConfig(authToken: 'eyJH5c', // client-side token generated from your token service
                            userName: 'John Appleseed');
    hmsSDK.join(config: config);

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.

Changed

  • Sending correct joined_at property on Android indicating the time when the peer joins the Room

  • Logging error messages when the App Group used for starting Screenshare from iOS is incorrect

  • On Android, the onJoin updates will now be triggered before onPeerUpdate when a user joins the room

Updated to Android SDK 2.5.6 & iOS SDK 0.5.5

Full Changelog: 1.1.0...1.2.0

1.1.0

17 Dec 11:32
5c36a2f
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
    List<HMSRole> roles = await hmsSDK.getRoles();
    
    // get the Host Role object
    HMSRole toHostRole = roles.firstWhere((element) => element.name == "host");
    
    // get list of Roles to be updated - in this case "Waiting" and "Guest" Roles
    roles.retainWhere((element) => ((element.name == "waiting") || (element.name == "guest")));
    
    // now perform Role Change of all peers in "Waiting" and "Guest" Roles to the "Host" Role
    hmsSDK.changeRoleOfPeersWithRoles(
        toRole: toHostRole,
        ofRoles: roles,
        hmsActionResultListener: hmsActionResultListener);

    For More Information, refer: https://www.100ms.live/docs/flutter/v2/features/change-role

  • Added Switch Audio Output APIs on iOS

    Audio Output Routing is helpful when users want to switch output to a connected device other than the default one.

    hmsSDK.switchAudioOutput(audioDevice: HMSAudioDevice.SPEAKER_PHONE);

    For More Information, refer: https://www.100ms.live/docs/flutter/v2/features/audio-output-routing

Deprecated

  • Deprecated changeRole API in favour of changeRoleOfPeer

    No change in functionality or method signature.

Fixed

  • 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

09 Dec 13:06
8e2191e
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:

    // to start PIP mode invoke the `enterPipMode` function, the parameters passed to it are optional
    hmsSDK.enterPipMode(aspectRatio: [16, 9], autoEnterPip: true);
    
    // method to check whether PIP mode is available for current device
    bool isPipAvailable = await hmsSDK.isPipAvailable();
    
    // method to check whether PIP mode is active currently
    bool isPipActive = await hmsSDK.isPipActive();
  • Added roomPeerCountUpdated type in HMSRoomUpdate

  • Added isPlaybackAllowed to Remote Audio & Video Tracks to check if the track is allowed to be played locally

  • Added convenience APIs to Mute / Unmute Audio or Video of the entire room locally

Fixed

  • Corrected parsing of HMSMessage objects sent Server-side APIs
  • Session Metadata can now be reset to a null value
  • Importing Native Android SDK dependency from Maven Central instead of Jitpack
  • HMSTrackSettings is now nullable while building the HMSSDK object
  • Corrected usage of Native Util functions to fetch Audio & Video tracks
  • Corrected default local audio track settings for iOS devices
  • Corrected sending of peer count in HMSRoom instance on iOS

Updated to Native Android SDK 2.5.1 & Native iOS SDK 0.4.7

Full Changelog: 0.7.8...1.0.0

0.7.8

31 Oct 16:15
8b283e6
Compare
Choose a tag to compare
  • Added support for Joining with Muted Audio & Video on iOS devices
  • Added Maven Central repository to look for Android dependencies
  • Added support for receiving Server-side HMSMessage
  • Added HMSLogSettings to configure Native Android SDK logs
  • Corrected setters for local audio/video track settings while building the HMSSDK object
  • Updated to Native Android SDK 2.5.1 & Native iOS SDK 0.4.6

Full Changelog: 0.7.7...0.7.8