@100mslive/react-native-hms 1.10.7 → 1.10.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +6 -5
  2. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +47 -8
  3. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +34 -3
  4. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +3 -1
  5. package/ios/HMSConstants.swift +1 -0
  6. package/ios/HMSManager.m +39 -0
  7. package/ios/HMSManager.swift +116 -1
  8. package/ios/HMSRNSDK.swift +276 -2
  9. package/ios/PIPMode/HMSPipModel.swift +18 -0
  10. package/ios/PIPMode/HMSPipView.swift +36 -0
  11. package/ios/PIPMode/HMSSampleBufferSwiftUIView.swift +45 -0
  12. package/lib/commonjs/classes/HMSAudioDevice.js +9 -0
  13. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  14. package/lib/commonjs/classes/HMSAudioMixingMode.js +11 -0
  15. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  16. package/lib/commonjs/classes/HMSAudioTrack.js +9 -0
  17. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  18. package/lib/commonjs/classes/HMSCameraFacing.js +9 -0
  19. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  20. package/lib/commonjs/classes/HMSConfig.js +27 -0
  21. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  22. package/lib/commonjs/classes/HMSException.js +18 -0
  23. package/lib/commonjs/classes/HMSException.js.map +1 -1
  24. package/lib/commonjs/classes/HMSHLSTimedMetadata.js.map +1 -1
  25. package/lib/commonjs/classes/HMSIOSAudioMode.js +15 -0
  26. package/lib/commonjs/classes/HMSIOSAudioMode.js.map +1 -1
  27. package/lib/commonjs/classes/HMSLogAlarmManager.js +12 -0
  28. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  29. package/lib/commonjs/classes/HMSLogLevel.js +12 -0
  30. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  31. package/lib/commonjs/classes/HMSLogSettings.js +14 -0
  32. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  33. package/lib/commonjs/classes/HMSNetworkQuality.js +11 -0
  34. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  35. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js +40 -10
  36. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js.map +1 -1
  37. package/lib/commonjs/classes/HMSPIPConfig.js +4 -0
  38. package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -1
  39. package/lib/commonjs/classes/HMSPIPListenerActions.js +9 -0
  40. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  41. package/lib/commonjs/classes/HMSPeer.js +148 -0
  42. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  43. package/lib/commonjs/classes/HMSPeerType.js +12 -1
  44. package/lib/commonjs/classes/HMSPeerType.js.map +1 -1
  45. package/lib/commonjs/classes/HMSRTMPConfig.js +14 -0
  46. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  47. package/lib/commonjs/classes/HMSRole.js +17 -0
  48. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  49. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +13 -0
  50. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  51. package/lib/commonjs/classes/HMSSDK.js +1153 -233
  52. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  53. package/lib/commonjs/classes/HMSSessionStore.js +14 -15
  54. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  55. package/lib/commonjs/classes/HMSTrack.js +13 -0
  56. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  57. package/lib/commonjs/classes/HMSTrackSettings.js +10 -0
  58. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  59. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +9 -0
  60. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  61. package/lib/commonjs/classes/HMSTrackSource.js +10 -0
  62. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  63. package/lib/commonjs/classes/HMSTrackType.js +7 -0
  64. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  65. package/lib/commonjs/classes/HMSUpdateListenerActions.js +42 -3
  66. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  67. package/lib/commonjs/classes/HMSVideoTrack.js +17 -0
  68. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  69. package/lib/commonjs/classes/HMSVideoTrackSettings.js +12 -2
  70. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  71. package/lib/commonjs/classes/HmsView.js +42 -0
  72. package/lib/commonjs/classes/HmsView.js.map +1 -1
  73. package/lib/module/classes/HMSAudioDevice.js +9 -0
  74. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  75. package/lib/module/classes/HMSAudioMixingMode.js +11 -0
  76. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  77. package/lib/module/classes/HMSAudioTrack.js +9 -0
  78. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  79. package/lib/module/classes/HMSCameraFacing.js +9 -0
  80. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  81. package/lib/module/classes/HMSConfig.js +27 -0
  82. package/lib/module/classes/HMSConfig.js.map +1 -1
  83. package/lib/module/classes/HMSException.js +18 -0
  84. package/lib/module/classes/HMSException.js.map +1 -1
  85. package/lib/module/classes/HMSHLSTimedMetadata.js.map +1 -1
  86. package/lib/module/classes/HMSIOSAudioMode.js +15 -0
  87. package/lib/module/classes/HMSIOSAudioMode.js.map +1 -1
  88. package/lib/module/classes/HMSLogAlarmManager.js +12 -0
  89. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  90. package/lib/module/classes/HMSLogLevel.js +12 -0
  91. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  92. package/lib/module/classes/HMSLogSettings.js +14 -0
  93. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  94. package/lib/module/classes/HMSNetworkQuality.js +11 -0
  95. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  96. package/lib/module/classes/HMSNoiseCancellationPlugin.js +40 -10
  97. package/lib/module/classes/HMSNoiseCancellationPlugin.js.map +1 -1
  98. package/lib/module/classes/HMSPIPConfig.js +1 -1
  99. package/lib/module/classes/HMSPIPConfig.js.map +1 -1
  100. package/lib/module/classes/HMSPIPListenerActions.js +9 -0
  101. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  102. package/lib/module/classes/HMSPeer.js +149 -0
  103. package/lib/module/classes/HMSPeer.js.map +1 -1
  104. package/lib/module/classes/HMSPeerType.js +12 -1
  105. package/lib/module/classes/HMSPeerType.js.map +1 -1
  106. package/lib/module/classes/HMSRTMPConfig.js +14 -0
  107. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  108. package/lib/module/classes/HMSRole.js +17 -0
  109. package/lib/module/classes/HMSRole.js.map +1 -1
  110. package/lib/module/classes/HMSRtmpVideoResolution.js +13 -0
  111. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  112. package/lib/module/classes/HMSSDK.js +1153 -233
  113. package/lib/module/classes/HMSSDK.js.map +1 -1
  114. package/lib/module/classes/HMSSessionStore.js +14 -15
  115. package/lib/module/classes/HMSSessionStore.js.map +1 -1
  116. package/lib/module/classes/HMSTrack.js +13 -0
  117. package/lib/module/classes/HMSTrack.js.map +1 -1
  118. package/lib/module/classes/HMSTrackSettings.js +10 -0
  119. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  120. package/lib/module/classes/HMSTrackSettingsInitState.js +9 -0
  121. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  122. package/lib/module/classes/HMSTrackSource.js +10 -0
  123. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  124. package/lib/module/classes/HMSTrackType.js +7 -0
  125. package/lib/module/classes/HMSTrackType.js.map +1 -1
  126. package/lib/module/classes/HMSUpdateListenerActions.js +42 -3
  127. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  128. package/lib/module/classes/HMSVideoTrack.js +17 -0
  129. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  130. package/lib/module/classes/HMSVideoTrackSettings.js +12 -2
  131. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  132. package/lib/module/classes/HmsView.js +43 -0
  133. package/lib/module/classes/HmsView.js.map +1 -1
  134. package/lib/typescript/classes/HMSAudioDevice.d.ts +14 -0
  135. package/lib/typescript/classes/HMSAudioMixingMode.d.ts +11 -0
  136. package/lib/typescript/classes/HMSAudioTrack.d.ts +9 -0
  137. package/lib/typescript/classes/HMSCameraFacing.d.ts +11 -0
  138. package/lib/typescript/classes/HMSConfig.d.ts +27 -0
  139. package/lib/typescript/classes/HMSException.d.ts +18 -0
  140. package/lib/typescript/classes/HMSHLSTimedMetadata.d.ts +12 -0
  141. package/lib/typescript/classes/HMSIOSAudioMode.d.ts +15 -0
  142. package/lib/typescript/classes/HMSLogAlarmManager.d.ts +12 -0
  143. package/lib/typescript/classes/HMSLogLevel.d.ts +12 -0
  144. package/lib/typescript/classes/HMSLogSettings.d.ts +14 -0
  145. package/lib/typescript/classes/HMSNetworkQuality.d.ts +11 -0
  146. package/lib/typescript/classes/HMSNoiseCancellationPlugin.d.ts +36 -6
  147. package/lib/typescript/classes/HMSPIPConfig.d.ts +40 -0
  148. package/lib/typescript/classes/HMSPIPListenerActions.d.ts +17 -0
  149. package/lib/typescript/classes/HMSPeer.d.ts +137 -0
  150. package/lib/typescript/classes/HMSPeerType.d.ts +11 -0
  151. package/lib/typescript/classes/HMSRTMPConfig.d.ts +14 -0
  152. package/lib/typescript/classes/HMSRole.d.ts +17 -0
  153. package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +13 -0
  154. package/lib/typescript/classes/HMSSDK.d.ts +1083 -235
  155. package/lib/typescript/classes/HMSSessionStore.d.ts +14 -15
  156. package/lib/typescript/classes/HMSTrack.d.ts +13 -0
  157. package/lib/typescript/classes/HMSTrackSettings.d.ts +10 -0
  158. package/lib/typescript/classes/HMSTrackSettingsInitState.d.ts +11 -0
  159. package/lib/typescript/classes/HMSTrackSource.d.ts +10 -0
  160. package/lib/typescript/classes/HMSTrackType.d.ts +7 -0
  161. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +290 -4
  162. package/lib/typescript/classes/HMSVideoTrack.d.ts +17 -0
  163. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +12 -2
  164. package/lib/typescript/classes/HmsView.d.ts +16 -0
  165. package/package.json +1 -1
  166. package/sdk-versions.json +2 -2
  167. package/src/classes/HMSAudioDevice.ts +18 -0
  168. package/src/classes/HMSAudioMixingMode.ts +11 -0
  169. package/src/classes/HMSAudioTrack.ts +9 -0
  170. package/src/classes/HMSCameraFacing.ts +11 -0
  171. package/src/classes/HMSConfig.ts +27 -0
  172. package/src/classes/HMSException.ts +18 -0
  173. package/src/classes/HMSHLSTimedMetadata.ts +12 -0
  174. package/src/classes/HMSIOSAudioMode.ts +15 -0
  175. package/src/classes/HMSLogAlarmManager.ts +12 -0
  176. package/src/classes/HMSLogLevel.ts +12 -0
  177. package/src/classes/HMSLogSettings.ts +14 -0
  178. package/src/classes/HMSNetworkQuality.ts +11 -0
  179. package/src/classes/HMSNoiseCancellationPlugin.ts +41 -10
  180. package/src/classes/HMSPIPConfig.ts +47 -0
  181. package/src/classes/HMSPIPListenerActions.ts +18 -0
  182. package/src/classes/HMSPeer.ts +137 -0
  183. package/src/classes/HMSPeerType.ts +13 -2
  184. package/src/classes/HMSRTMPConfig.ts +14 -0
  185. package/src/classes/HMSRole.ts +17 -0
  186. package/src/classes/HMSRtmpVideoResolution.ts +13 -0
  187. package/src/classes/HMSSDK.tsx +1211 -269
  188. package/src/classes/HMSSessionStore.ts +14 -15
  189. package/src/classes/HMSTrack.ts +13 -0
  190. package/src/classes/HMSTrackSettings.ts +10 -0
  191. package/src/classes/HMSTrackSettingsInitState.ts +11 -0
  192. package/src/classes/HMSTrackSource.ts +10 -0
  193. package/src/classes/HMSTrackType.ts +7 -0
  194. package/src/classes/HMSUpdateListenerActions.ts +312 -3
  195. package/src/classes/HMSVideoTrack.ts +17 -0
  196. package/src/classes/HMSVideoTrackSettings.ts +12 -2
  197. package/src/classes/HmsView.tsx +39 -0
@@ -5,9 +5,9 @@ export type JsonMap = {
5
5
  export type JsonArray = Array<JsonPrimitive | JsonMap | JsonArray>;
6
6
  export type JsonValue = JsonPrimitive | JsonMap | JsonArray;
7
7
  /**
8
- * Session store is a shared realtime key-value store that is accessible by everyone in the room.
8
+ * Session store is a shared realtime key-value store that is accessible by all Peers in a Room.
9
9
  * It can be utilized to implement features such as pinned text, spotlight (which brings a particular
10
- * peer to the center stage for everyone in the room) and more.
10
+ * peer to the center stage for everyone in the room) and more, enhancing interactive experiences.
11
11
  *
12
12
  * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE`
13
13
  * event on the `HMSSDK` instance
@@ -28,31 +28,30 @@ export declare class HMSSessionStore {
28
28
  * Once a value is assigned, it will be available for other peers in the room
29
29
  * who are listening for changes in value for that specific key.
30
30
  *
31
- * @param {JsonValue} value
32
- * @param {string} key
33
- * @returns {Promise}
31
+ * @param {JsonValue} value - The value to set, which can be any JSON-compatible type.
32
+ * @param {string} key - The key under which to store the value.
33
+ * @returns {Promise} A promise that resolves when the operation is complete.
34
34
  */
35
35
  set(value: JsonValue, key: string): Promise<{
36
36
  success: true;
37
37
  }>;
38
38
  /**
39
- * This method returns the value of any specified key on session store.
40
- * Note that you will not get updates for any change in value of the specified key,
41
- * It returns the latest value at the time it was called.
39
+ * Retrieves the value for a given key from the session store. This method does not subscribe
40
+ * to changes; it only returns the current value at the time of the call.
42
41
  *
43
42
  * To listen to value change updates use `addKeyChangeListener` method instead.
44
43
  *
45
- * @param {string} key
46
- * @returns {Promise}
44
+ * @param {string} key - The key whose value is to be retrieved.
45
+ * @returns {Promise} A promise that resolves with the value of the key.
47
46
  */
48
47
  get(key: string): Promise<JsonValue>;
49
48
  /**
50
- * This method registers a callback function for listening to value changes of a particular key.
51
- * Registered Callback function will be called initially with latest value and whenever the value updates
49
+ * Registers a callback to listen for changes to specified keys in the session store.
50
+ * The callback is called with the initial value and again whenever any value changes.
52
51
  *
53
- * @param {string[]} forKeys
54
- * @param {Function} callback
55
- * @returns {Object} subscription object
52
+ * @param {string[]} forKeys - An array of keys to listen for changes on.
53
+ * @param {Function} callback - The function to call when a value changes.
54
+ * @returns {Object} An object with a `remove` method to unregister the listener.
56
55
  */
57
56
  addKeyChangeListener<T extends string[]>(forKeys: T, callback: (error: string | null, data: {
58
57
  key: T[number];
@@ -1,5 +1,18 @@
1
1
  import type { HMSTrackSource } from './HMSTrackSource';
2
2
  import type { HMSTrackType } from './HMSTrackType';
3
+ /**
4
+ * Represents a generic track within the HMS (100ms) system.
5
+ *
6
+ * This class serves as a base for different types of tracks (audio, video, etc.) within the HMS system. It encapsulates
7
+ * common properties and functionalities that are shared across different track types.
8
+ *
9
+ * @property {string} trackId - The unique identifier for the track.
10
+ * @property {HMSTrackSource} [source] - The source of the track, indicating whether it's from a plugin, regular input, or screen sharing.
11
+ * @property {string} [trackDescription] - A brief description of the track.
12
+ * @property {boolean} [mute] - Indicates whether the track is currently muted.
13
+ * @property {string} id - A secondary identifier for the track.
14
+ * @property {HMSTrackType} [type] - The type of the track, distinguishing between audio and video.
15
+ */
3
16
  export declare class HMSTrack {
4
17
  trackId: string;
5
18
  source?: HMSTrackSource;
@@ -1,5 +1,15 @@
1
1
  import type { HMSAudioTrackSettings } from './HMSAudioTrackSettings';
2
2
  import type { HMSVideoTrackSettings } from './HMSVideoTrackSettings';
3
+ /**
4
+ * Represents the settings for both video and audio tracks in a HMS (100ms) application.
5
+ *
6
+ * This class encapsulates the configurations for video and audio tracks that can be used
7
+ * in a HMS session.
8
+ *
9
+ * @property {HMSVideoTrackSettings} video - Optional video track settings.
10
+ * @property {HMSAudioTrackSettings} audio - Optional audio track settings.
11
+ *
12
+ */
3
13
  export declare class HMSTrackSettings {
4
14
  video?: HMSVideoTrackSettings;
5
15
  audio?: HMSAudioTrackSettings;
@@ -1,4 +1,15 @@
1
+ /**
2
+ * Enum for the initial state of tracks in a 100ms (HMS) application.
3
+ *
4
+ * This enumeration defines the initial mute state for tracks (audio or video) in a 100ms (HMS) application.
5
+ * It allows developers to specify whether a track should start in a muted or unmuted state, providing control over the user's media state upon joining a Room.
6
+ *
7
+ * @enum {string}
8
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/join#join-with-muted-audio-video
9
+ */
1
10
  export declare enum HMSTrackSettingsInitState {
11
+ /** Represents the state where the track is initially muted. */
2
12
  MUTED = "MUTED",
13
+ /** Represents the state where the track is initially unmuted. */
3
14
  UNMUTED = "UNMUTED"
4
15
  }
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Enum for HMS Track Source types.
3
+ *
4
+ * Defines the source of an HMS track, indicating whether the track originates from a plugin, is a regular track, or is a screen-sharing track.
5
+ *
6
+ * @enum {string}
7
+ * @property {string} REGULAR - Represents a regular track, typically from a user's camera or microphone.
8
+ * @property {string} SCREEN - Represents a track that shares the screen.
9
+ * @property {string} PLUGIN - Represents a track sourced from a plugin.
10
+ */
1
11
  export declare enum HMSTrackSource {
2
12
  PLUGIN = "plugin",
3
13
  REGULAR = "regular",
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Enum for HMS Track Types.
3
+ *
4
+ * This enumeration defines the types of tracks that can be handled within the HMS (100ms) system, specifically distinguishing between audio and video tracks.
5
+ * - `AUDIO`: Represents an audio track, typically containing sound or voice data.
6
+ * - `VIDEO`: Represents a video track, typically containing visual data from a camera or other video sources.
7
+ */
1
8
  export declare enum HMSTrackType {
2
9
  AUDIO = "AUDIO",
3
10
  VIDEO = "VIDEO"
@@ -1,31 +1,317 @@
1
1
  /**
2
- * These are the available events emitted by the `HMSSDK`
2
+ * Enum for HMSUpdateListenerActions.
3
3
  *
4
+ * This enumeration defines the set of possible events that can be emitted by the HMSSDK during a Session.
5
+ * These events cover a wide range of actions, from joining a room to receiving updates about peers and tracks, and more.
4
6
  * For more info about these events, checkout Event Listener docs
5
- * {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners}
7
+ *
8
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners
9
+ *
10
+ * @enum {string}
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_JOIN, ({ room: HMSRoom }}) => {
15
+ * console.log('Joined room', data);
16
+ * // Handle the event
17
+ * });
18
+ * ```
19
+ *
20
+ * @property {string} ON_PREVIEW - Emitted when the local preview is available.
21
+ * @property {string} ON_JOIN - Emitted when the local user joins the room.
22
+ * @property {string} ON_ROOM_UPDATE - Emitted when there is an update related to the room.
23
+ * @property {string} ON_PEER_UPDATE - Emitted when there is an update related to a peer in the room.
24
+ * @property {string} ON_TRACK_UPDATE - Emitted when there is an update related to a track in the room.
25
+ * @property {string} ON_ERROR - Emitted when an error occurs.
26
+ * @property {string} ON_MESSAGE - Emitted when a message is received.
27
+ * @property {string} ON_SPEAKER - Emitted when there is an update on the current speaker.
28
+ * @property {string} RECONNECTING - Emitted when the SDK is attempting to reconnect to the room.
29
+ * @property {string} RECONNECTED - Emitted when the SDK has successfully reconnected to the room.
30
+ * @property {string} ON_ROLE_CHANGE_REQUEST - Emitted when there is a request to change the role of a peer.
31
+ * @property {string} ON_CHANGE_TRACK_STATE_REQUEST - Emitted when there is a request to change the state of a track.
32
+ * @property {string} ON_REMOVED_FROM_ROOM - Emitted when the local user is removed from the room.
33
+ * @property {string} ON_RTC_STATS - Emitted when RTC stats are available.
34
+ * @property {string} ON_LOCAL_AUDIO_STATS - Emitted when stats for the local audio track are available.
35
+ * @property {string} ON_LOCAL_VIDEO_STATS - Emitted when stats for the local video track are available.
36
+ * @property {string} ON_REMOTE_AUDIO_STATS - Emitted when stats for a remote audio track are available.
37
+ * @property {string} ON_REMOTE_VIDEO_STATS - Emitted when stats for a remote video track are available.
38
+ * @property {string} ON_AUDIO_DEVICE_CHANGED - Emitted when the audio device has changed.
39
+ * @property {string} ON_SESSION_STORE_AVAILABLE - Emitted when the session store is available.
40
+ * @property {string} ON_SESSION_STORE_CHANGED - Emitted when the session store has changed.
41
+ * @property {string} ON_PEER_LIST_UPDATED - Emitted when the list of peers is updated.
42
+ * @property {string} ON_TRANSCRIPTS - Emitted when transcripts are available.
43
+ * @property {string} ON_PERMISSIONS_REQUESTED - Emitted when permissions are requested.
6
44
  */
7
45
  export declare enum HMSUpdateListenerActions {
46
+ /**
47
+ * Event emitted when the local preview is available.
48
+ *
49
+ * This event is triggered once the local user's video preview becomes available.
50
+ * It allows the application to display the local video stream to the user,
51
+ * ensuring they can see their own feed before interacting with others in the room.
52
+ *
53
+ * @type {string}
54
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/preview
55
+ */
8
56
  ON_PREVIEW = "ON_PREVIEW",
57
+ /**
58
+ * Event emitted when the local user joins the room.
59
+ *
60
+ * This event signifies that the local user has successfully connected to the room and is now part of the session.
61
+ * It is a critical event for initiating further actions within the room, such as fetching current participants,
62
+ * subscribing to tracks, or sending messages. Handling this event properly is essential for setting up the user's
63
+ * environment and ensuring a smooth experience in the room.
64
+ *
65
+ * @type {string}
66
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/join
67
+ */
9
68
  ON_JOIN = "ON_JOIN",
69
+ /**
70
+ * Event emitted when there is an update related to the room.
71
+ *
72
+ * This event is triggered by various room-related changes, such as updates to the room's metadata, changes in the room's state,
73
+ * or modifications to the list of available tracks. It serves as a general notification to the application that some aspect of the
74
+ * room's configuration or status has changed, enabling the application to respond appropriately, such as updating the UI or querying
75
+ * for new information to reflect the current state of the room.
76
+ *
77
+ * @type {string}
78
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners
79
+ */
10
80
  ON_ROOM_UPDATE = "ON_ROOM_UPDATE",
81
+ /**
82
+ * Event emitted when there is an update related to a peer in the room.
83
+ *
84
+ * This event is triggered whenever a peer's state changes within the room, such as when a peer's video or audio track is enabled or disabled,
85
+ * or when a peer's metadata is updated. It provides a way for the application to react to changes in a peer's status, ensuring that the UI
86
+ * and application state can be updated to reflect the current state of peers in the room.
87
+ *
88
+ * @type {string}
89
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners
90
+ */
11
91
  ON_PEER_UPDATE = "3",
92
+ /**
93
+ * Event emitted when the list of peers in the room is updated.
94
+ *
95
+ * This event is triggered whenever there is a change in the list of peers present in the room, such as when a new peer joins,
96
+ * an existing peer leaves. It allows the application to react to changes in the room's
97
+ * participant list, enabling dynamic updates to the UI or other logic based on the current set of participants.
98
+ *
99
+ * @type {string}
100
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/large-room
101
+ */
102
+ ON_PEER_LIST_UPDATED = "ON_PEER_LIST_UPDATED",
103
+ /**
104
+ * Event emitted when there is an update related to a track in the room.
105
+ *
106
+ * This event is triggered whenever a track's state changes within the room, such as when a video or audio track is enabled or disabled,
107
+ * or when a track's settings are modified. It provides a way for the application to react to changes in a track's status, ensuring that
108
+ * the UI and application state can be updated to reflect the current state of tracks in the room.
109
+ *
110
+ * @type {string}
111
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/listen-to-room-updates/event-listeners
112
+ */
12
113
  ON_TRACK_UPDATE = "ON_TRACK_UPDATE",
114
+ /**
115
+ * Event emitted when an error occurs.
116
+ *
117
+ * This event is triggered whenever the HMS SDK encounters an error during its operation. It could be due to network issues,
118
+ * permissions being denied, or any other error that prevents the SDK from functioning as expected. Handling this event allows
119
+ * the application to inform the user about the issue and possibly take corrective action or log the error for further analysis.
120
+ *
121
+ * @type {string}
122
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/debugging/error-handling
123
+ */
13
124
  ON_ERROR = "ON_ERROR",
125
+ /**
126
+ * Event emitted when a message is received.
127
+ *
128
+ * This event is triggered whenever a message is sent by a peer in the room and received by the local user.
129
+ * It is crucial for enabling real-time communication within the room, allowing participants to exchange text messages,
130
+ * notifications, or commands. Handling this event is essential for applications that support chat or command-based interactions
131
+ * among participants.
132
+ *
133
+ * @type {string}
134
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/chat
135
+ */
14
136
  ON_MESSAGE = "ON_MESSAGE",
137
+ /**
138
+ * Event emitted when there is an update on the current speaker.
139
+ *
140
+ * This event is triggered whenever the active speaker in the room changes, such as when a new participant starts speaking or the current speaker stops.
141
+ * It allows the application to highlight the current speaker in the UI, enhancing the user experience by making it easier to follow the conversation flow.
142
+ *
143
+ * @type {string}
144
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/render-video/show-audio-level
145
+ */
15
146
  ON_SPEAKER = "ON_SPEAKER",
147
+ /**
148
+ * Event emitted when the SDK is attempting to reconnect to the room.
149
+ *
150
+ * This event is triggered when the connection to the room is lost, and the HMS SDK is trying to re-establish the connection.
151
+ * It indicates that the SDK is in the process of reconnecting, allowing the application to notify users about the reconnection attempt
152
+ * and possibly display a loading or waiting indicator. Handling this event is crucial for maintaining a smooth user experience during
153
+ * network interruptions.
154
+ *
155
+ * @type {string}
156
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/handle-interruptions/reconnection-handling
157
+ */
16
158
  RECONNECTING = "RECONNECTING",
159
+ /**
160
+ * Event emitted when the SDK has successfully reconnected to the room.
161
+ *
162
+ * This event signifies that after a disconnection, the HMS SDK has managed to re-establish the connection to the room successfully.
163
+ * It is crucial for applications to handle this event to update the UI and inform the user that the connection has been restored,
164
+ * ensuring a seamless experience. This event can trigger re-initialization of room-related functionalities or refreshes of the UI
165
+ * to reflect the current state of the room.
166
+ *
167
+ * @type {string}
168
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/handle-interruptions/reconnection-handling
169
+ */
17
170
  RECONNECTED = "RECONNECTED",
171
+ /**
172
+ * Event emitted when there is a request to change the role of a peer.
173
+ *
174
+ * This event is triggered whenever a request is made to change the role of a participant in the room, such as from a viewer to a speaker or vice versa.
175
+ * Handling this event allows the application to manage user roles dynamically, ensuring that participants have the correct permissions for their intended
176
+ * actions within the room. It is crucial for applications that implement role-based access control or need to change user permissions on the fly.
177
+ *
178
+ * @type {string}
179
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/peer/change-role
180
+ */
18
181
  ON_ROLE_CHANGE_REQUEST = "ON_ROLE_CHANGE_REQUEST",
182
+ /**
183
+ * Event emitted when there is a request to change the state of a track.
184
+ *
185
+ * This event is triggered whenever a request is made to change the state of a track within the room, such as enabling or disabling a video or audio track.
186
+ * Handling this event allows the application to respond to changes in track states, ensuring that participants can control their audio and video streams
187
+ * as needed. It is crucial for applications that allow users to manage their media streams dynamically during a session.
188
+ *
189
+ * @type {string}
190
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/remote-mute
191
+ */
19
192
  ON_CHANGE_TRACK_STATE_REQUEST = "ON_CHANGE_TRACK_STATE_REQUEST",
193
+ /**
194
+ * Event emitted when the local user is removed from the room.
195
+ *
196
+ * This event is triggered whenever the local user is explicitly removed from the room by an action from another participant with sufficient permissions or due to room policy violations. Handling this event is crucial for applications to gracefully disconnect the user from the session, possibly clear user-related data, and inform the user about the removal reason if applicable.
197
+ *
198
+ * @type {string}
199
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/end-room
200
+ */
20
201
  ON_REMOVED_FROM_ROOM = "ON_REMOVED_FROM_ROOM",
202
+ /**
203
+ * Event emitted when RTC stats are available.
204
+ *
205
+ * This event is triggered when real-time communication (RTC) statistics become available from the HMS SDK.
206
+ * RTC stats provide detailed information about the performance and quality of the media streams in the session,
207
+ * including metrics such as packet loss, jitter, round-trip time (RTT), and more. Handling this event allows
208
+ * the application to monitor and react to the quality of the connection, potentially informing users about
209
+ * the current call quality or troubleshooting issues in real-time.
210
+ *
211
+ * @type {string}
212
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/measure-network-quality-and-performance/rtc-stats
213
+ */
21
214
  ON_RTC_STATS = "ON_RTC_STATS",
215
+ /**
216
+ * Event emitted when stats for the local audio track are available.
217
+ *
218
+ * This event is triggered when statistics related to the local user's audio track become available from the HMS SDK.
219
+ * These statistics can include metrics such as round trip time, bitrate, and bytesSent, which are crucial for monitoring
220
+ * the quality of the audio being transmitted. Handling this event allows the application to react to the audio quality,
221
+ * potentially adjusting settings or notifying the user about issues in real-time.
222
+ *
223
+ * @type {string}
224
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/measure-network-quality-and-performance/rtc-stats
225
+ */
22
226
  ON_LOCAL_AUDIO_STATS = "ON_LOCAL_AUDIO_STATS",
227
+ /**
228
+ * Event emitted when stats for the local video track are available.
229
+ *
230
+ * This event is triggered when statistics related to the local user's video track become available from the HMS SDK.
231
+ * These statistics can include metrics such as frame rate, resolution, and bitrate, which are crucial for monitoring
232
+ * the quality of the video being transmitted. Handling this event allows the application to react to the video quality,
233
+ * potentially adjusting settings or notifying the user about issues in real-time.
234
+ *
235
+ * @type {string}
236
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/measure-network-quality-and-performance/rtc-stats
237
+ */
23
238
  ON_LOCAL_VIDEO_STATS = "ON_LOCAL_VIDEO_STATS",
239
+ /**
240
+ * Event emitted when statistics for a remote audio track are available.
241
+ *
242
+ * This event is triggered when statistics related to an audio track from a remote user become available from the HMS SDK.
243
+ * These statistics can include metrics such as bitrate, packet loss, and jitter, which are crucial for monitoring
244
+ * the quality of the audio being received. Handling this event allows the application to react to the audio quality,
245
+ * potentially adjusting settings or notifying the user about issues in real-time.
246
+ *
247
+ * @type {string}
248
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/measure-network-quality-and-performance/rtc-stats
249
+ */
24
250
  ON_REMOTE_AUDIO_STATS = "ON_REMOTE_AUDIO_STATS",
251
+ /**
252
+ * Event emitted when statistics for a remote video track are available.
253
+ *
254
+ * This event is triggered when statistics related to a video track from a remote user become available from the HMS SDK.
255
+ * These statistics can include metrics such as frame rate, resolution, bitrate, and packet loss, which are crucial for monitoring
256
+ * the quality of the video being received. Handling this event allows the application to react to the video quality,
257
+ * potentially adjusting settings or notifying the user about issues in real-time.
258
+ *
259
+ * @type {string}
260
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/measure-network-quality-and-performance/rtc-stats
261
+ */
25
262
  ON_REMOTE_VIDEO_STATS = "ON_REMOTE_VIDEO_STATS",
263
+ /**
264
+ * Event emitted when the audio device has changed. Android only.
265
+ *
266
+ * This event is triggered whenever there is a change in the audio output device, such as switching from the built-in speaker to a Bluetooth headset.
267
+ * Handling this event allows the application to update any UI elements or settings related to the current audio device, ensuring that the user is always aware of which device is being used for audio output.
268
+ *
269
+ * @type {string}
270
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/configure-your-device/speaker/audio-output-routing
271
+ */
26
272
  ON_AUDIO_DEVICE_CHANGED = "ON_AUDIO_DEVICE_CHANGED",
273
+ /**
274
+ * Event emitted when the session store becomes available.
275
+ *
276
+ * This event is triggered when the session store, which may contain critical data for the ongoing session such as user tokens, room state, or other metadata, becomes available to the application.
277
+ * Handling this event allows the application to perform actions that depend on session-specific data, such as initializing user interfaces or fetching additional room details.
278
+ * It is crucial for applications that need to ensure all necessary data is loaded before proceeding with further operations.
279
+ *
280
+ * @type {string}
281
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store
282
+ */
27
283
  ON_SESSION_STORE_AVAILABLE = "ON_SESSION_STORE_AVAILABLE",
284
+ /**
285
+ * Event emitted when the session store has changed.
286
+ *
287
+ * This event is triggered whenever there is a change in the session store, which may include updates to user tokens, room state, or other metadata critical for the ongoing session.
288
+ * Handling this event allows the application to react to changes in session-specific data in real-time, ensuring that the application's state is always synchronized with the session store.
289
+ * This is crucial for applications that rely on up-to-date session information for functionalities like UI updates, access control, and room management.
290
+ *
291
+ * @type {string}
292
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store
293
+ */
28
294
  ON_SESSION_STORE_CHANGED = "ON_SESSION_STORE_CHANGED",
29
- ON_PEER_LIST_UPDATED = "ON_PEER_LIST_UPDATED",
30
- ON_TRANSCRIPTS = "ON_TRANSCRIPTS"
295
+ /**
296
+ * Event emitted when transcripts are available.
297
+ *
298
+ * This event is triggered when the HMS SDK has generated transcripts from the audio streams in the room.
299
+ * It allows the application to receive real-time or post-processed text versions of spoken content, which can be used for
300
+ * accessibility features, content analysis, or storing meeting minutes. The availability of this feature depends on the
301
+ * HMS service configuration and may require additional setup or permissions.
302
+ *
303
+ * @type {string}
304
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/extend-capabilities/live-captions
305
+ */
306
+ ON_TRANSCRIPTS = "ON_TRANSCRIPTS",
307
+ /**
308
+ * Event emitted when the HMS SDK requests permissions from the user. Android only.
309
+ *
310
+ * This event is triggered whenever the application needs to request permissions from the user, such as access to the camera or microphone.
311
+ * It is used in conjunction with the platform's permissions API to prompt the user for the necessary permissions and to inform the HMS SDK
312
+ * of the user's response. This is crucial for features that require explicit user consent before they can be used.
313
+ *
314
+ * @type {string}
315
+ */
316
+ ON_PERMISSIONS_REQUESTED = "ON_PERMISSIONS_REQUESTED"
31
317
  }
@@ -1,7 +1,24 @@
1
1
  import { HMSTrack } from './HMSTrack';
2
2
  import type { HMSTrackSource } from './HMSTrackSource';
3
3
  import type { HMSTrackType } from './HMSTrackType';
4
+ /**
5
+ * Represents a video track within the HMS (100ms) system.
6
+ *
7
+ * This class extends `HMSTrack` to provide functionalities specific to video tracks. It includes additional
8
+ * property `isDegraded` to indicate whether the video quality has been intentionally reduced, typically for
9
+ * performance reasons. The constructor allows for the initialization of the video track with various parameters
10
+ * such as track ID, source, description, mute state, degradation state, ID, and type. These parameters provide
11
+ * detailed information about the video track and its characteristics.
12
+ *
13
+ * @extends HMSTrack
14
+ *
15
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/render-video/overview
16
+ */
4
17
  export declare class HMSVideoTrack extends HMSTrack {
18
+ /**
19
+ * Indicates whether the video quality of the track is degraded.
20
+ * @type {boolean | undefined}
21
+ */
5
22
  isDegraded?: boolean;
6
23
  constructor(params: {
7
24
  trackId: string;
@@ -11,9 +11,19 @@ export declare class HMSVirtualBackgroundPlugin {
11
11
  setBackground(backgroundImage: ImageURISource | ImageRequireSource): Promise<boolean>;
12
12
  }
13
13
  /**
14
- * Customize local peer's Video track settings before Joining the Room.
14
+ * Represents the settings for a video track in a HMS (100ms) application.
15
15
  *
16
- * Checkout Track Settings docs for more details {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/track-settings}
16
+ * This class encapsulates the configurations for video tracks that can be used
17
+ * in a HMS session.
18
+ *
19
+ * @property {HMSSimulcastLayerSettings[]} simulcastSettings - Optional simulcast settings.
20
+ * @property {HMSTrackSettingsInitState} initialState - Optional initial state for the track.
21
+ * @property {HMSCameraFacing} cameraFacing - Optional camera facing for the track.
22
+ * @property {boolean} forceSoftwareDecoder - Optional flag to force software decoder.
23
+ * @property {boolean} disableAutoResize - Optional flag to disable auto resize.
24
+ * @property {HMSVirtualBackgroundPlugin} videoPlugin - Optional video plugin settings.
25
+ *
26
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/track-settings
17
27
  */
18
28
  export declare class HMSVideoTrackSettings {
19
29
  readonly simulcastSettings?: HMSSimulcastLayerSettings[];
@@ -1,6 +1,22 @@
1
1
  import React from 'react';
2
2
  import type { ViewStyle } from 'react-native';
3
3
  import { HMSVideoViewMode } from './HMSVideoViewMode';
4
+ /**
5
+ * Defines the properties for the `HmsViewComponent`.
6
+ *
7
+ * This interface outlines the props that can be passed to the `HmsViewComponent` to configure its behavior and appearance.
8
+ *
9
+ * @interface HmsComponentProps
10
+ * @property {string} trackId - The unique identifier for the track to be displayed.
11
+ * @property {ViewStyle} [style] - Optional. Custom styles to apply to the view.
12
+ * @property {boolean} [mirror] - Optional. If true, the video will be mirrored. This is commonly used for local video tracks.
13
+ * @property {boolean} [autoSimulcast] - Optional. Enables automatic simulcast layer switching based on network conditions, if supported.
14
+ * @property {HMSVideoViewMode} [scaleType] - Optional. Determines how the video fits within the bounds of the view (e.g., aspect fill, aspect fit).
15
+ * @property {boolean} [setZOrderMediaOverlay] - Optional. When true, the video view will be rendered above the regular view hierarchy.
16
+ * @property {string} id - The identifier for the `HmsViewComponent` instance.
17
+ *
18
+ * @see {https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/render-video/overview}
19
+ */
4
20
  export interface HmsComponentProps {
5
21
  trackId: string;
6
22
  style?: ViewStyle;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@100mslive/react-native-hms",
3
- "version": "1.10.7",
3
+ "version": "1.10.9",
4
4
  "description": "Integrate Real Time Audio and Video conferencing, Interactive Live Streaming, and Chat in your apps with 100ms React Native SDK. With support for HLS and RTMP Live Streaming and Recording, Picture-in-Picture (PiP), one-to-one Video Call Modes, Audio Rooms, Video Player and much more, add immersive real-time communications to your apps.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/sdk-versions.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "ios": "1.12.0",
2
+ "ios": "1.15.0",
3
3
  "iOSBroadcastExtension": "0.0.9",
4
4
  "iOSHMSHLSPlayer": "0.0.2",
5
5
  "iOSNoiseCancellationModels": "1.0.0",
6
- "android": "2.9.60"
6
+ "android": "2.9.64"
7
7
  }
@@ -1,7 +1,25 @@
1
+ /**
2
+ * Enum for HMSAudioDevice types.
3
+ *
4
+ * This enum represents the different types of audio devices that can be used
5
+ * in the context of the HMS SDK. It provides a way to specify the preferred
6
+ * audio output device for audio playback.
7
+ *
8
+ * @enum {string}
9
+ */
1
10
  export enum HMSAudioDevice {
11
+ /** Use the speakerphone for audio output. */
2
12
  SPEAKER_PHONE = 'SPEAKER_PHONE',
13
+
14
+ /** Use a wired headset for audio output, if connected. */
3
15
  WIRED_HEADSET = 'WIRED_HEADSET',
16
+
17
+ /** Use the earpiece for audio output. */
4
18
  EARPIECE = 'EARPIECE',
19
+
20
+ /** Use a Bluetooth device for audio output, if connected. */
5
21
  BLUETOOTH = 'BLUETOOTH',
22
+
23
+ /** Automatically select the best audio output device based on the current state. */
6
24
  AUTOMATIC = 'AUTOMATIC',
7
25
  }
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Enum for HMS Audio Mixing Mode options.
3
+ *
4
+ * Defines the modes available for audio mixing in a session. These modes determine how audio tracks are mixed and played back.
5
+ *
6
+ * - `TALK_ONLY`: Only the talk (voice) track is active, suitable for sessions focusing on voice communication.
7
+ * - `TALK_AND_MUSIC`: Both talk and music tracks are active, allowing for background music with clear voice overlay.
8
+ * - `MUSIC_ONLY`: Only the music track is active, ideal for sessions focusing on music playback.
9
+ *
10
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/local-audio-share
11
+ */
1
12
  export enum HMSAudioMixingMode {
2
13
  TALK_ONLY = 'TALK_ONLY',
3
14
  TALK_AND_MUSIC = 'TALK_AND_MUSIC',
@@ -2,6 +2,15 @@ import { HMSTrack } from './HMSTrack';
2
2
  import type { HMSTrackSource } from './HMSTrackSource';
3
3
  import type { HMSTrackType } from './HMSTrackType';
4
4
 
5
+ /**
6
+ * Represents an audio track within the HMS (100ms) system.
7
+ *
8
+ * This class extends `HMSTrack` to provide functionalities specific to audio tracks. It includes a constructor
9
+ * that allows for the initialization of the audio track with various parameters such as track ID, source, description,
10
+ * mute state, ID, and type. These parameters provide detailed information about the audio track and its characteristics.
11
+ *
12
+ * @extends HMSTrack
13
+ */
5
14
  export class HMSAudioTrack extends HMSTrack {
6
15
  constructor(params?: {
7
16
  trackId: string;
@@ -1,4 +1,15 @@
1
+ /**
2
+ * Enum for camera facing directions in a 100ms (HMS) application.
3
+ *
4
+ * This enumeration defines the possible camera facing options for video tracks in a 100ms (HMS) application, allowing developers to specify whether the front or back camera should be used during a video session.
5
+ * This can be particularly useful for applications that need to switch between cameras or provide users with the option to choose their preferred camera.
6
+ *
7
+ * @enum {string}
8
+ * @see https://www.100ms.live/docs/react-native/v2/how-to-guides/set-up-video-conferencing/mute#switch-camera
9
+ */
1
10
  export enum HMSCameraFacing {
11
+ /** Represents the front camera on a device. */
2
12
  FRONT = 'FRONT',
13
+ /** Represents the back camera on a device. */
3
14
  BACK = 'BACK',
4
15
  }