@100mslive/react-native-hms 1.10.6 → 1.10.8

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 (283) hide show
  1. package/android/build.gradle +0 -5
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +90 -0
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +14 -3
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +4 -6
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +2 -3
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +54 -15
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +64 -3
  8. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +9 -17
  9. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +7 -3
  10. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +3 -6
  11. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt +13 -16
  12. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityHelper.kt +14 -13
  13. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt +19 -4
  14. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -2
  15. package/ios/HMSConstants.swift +2 -0
  16. package/ios/HMSDecoder.swift +75 -0
  17. package/ios/HMSManager.m +45 -0
  18. package/ios/HMSManager.swift +126 -1
  19. package/ios/HMSRNSDK.swift +335 -1
  20. package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  21. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  22. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  23. package/ios/Hmssdk.xcodeproj/xcuserdata/yogesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  24. package/ios/PIPMode/HMSPipModel.swift +18 -0
  25. package/ios/PIPMode/HMSPipView.swift +36 -0
  26. package/ios/PIPMode/HMSSampleBufferSwiftUIView.swift +45 -0
  27. package/lib/commonjs/classes/HMSAudioMixerSource.js +1 -1
  28. package/lib/commonjs/classes/HMSAudioNode.js +1 -1
  29. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  30. package/lib/commonjs/classes/HMSAudioSettings.js +1 -1
  31. package/lib/commonjs/classes/HMSAudioTrackSettings.js +1 -1
  32. package/lib/commonjs/classes/HMSBrowserRecordingState.js +1 -1
  33. package/lib/commonjs/classes/HMSCameraControl.js +1 -1
  34. package/lib/commonjs/classes/HMSCameraControl.js.map +1 -1
  35. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +1 -1
  36. package/lib/commonjs/classes/HMSConfig.js +1 -1
  37. package/lib/commonjs/classes/HMSEncoder.js +32 -2
  38. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  39. package/lib/commonjs/classes/HMSException.js +1 -1
  40. package/lib/commonjs/classes/HMSHLSConfig.js +1 -1
  41. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +1 -1
  42. package/lib/commonjs/classes/HMSHLSRecordingConfig.js +1 -1
  43. package/lib/commonjs/classes/HMSHLSRecordingState.js +1 -1
  44. package/lib/commonjs/classes/HMSHLSStreamingState.js +1 -1
  45. package/lib/commonjs/classes/HMSHLSVariant.js +1 -1
  46. package/lib/commonjs/classes/HMSInteractivityCenter.js +2 -2
  47. package/lib/commonjs/classes/HMSInteractivityCenter.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLocalAudioStats.js +1 -1
  49. package/lib/commonjs/classes/HMSLocalAudioTrack.js +1 -1
  50. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  51. package/lib/commonjs/classes/HMSLocalPeer.js +1 -1
  52. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLocalVideoStats.js +1 -1
  54. package/lib/commonjs/classes/HMSLocalVideoTrack.js +1 -1
  55. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  56. package/lib/commonjs/classes/HMSLogSettings.js +1 -1
  57. package/lib/commonjs/classes/HMSLogger.js +1 -1
  58. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  59. package/lib/commonjs/classes/HMSMessage.js +1 -1
  60. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  61. package/lib/commonjs/classes/HMSNativeEventEmitter.js +1 -1
  62. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  63. package/lib/commonjs/classes/HMSNativeEventListener.js +1 -1
  64. package/lib/commonjs/classes/HMSNativeEventListener.js.map +1 -1
  65. package/lib/commonjs/classes/HMSNetworkQuality.js +1 -1
  66. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js +2 -2
  67. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js.map +1 -1
  68. package/lib/commonjs/classes/HMSPIPConfig.js +4 -0
  69. package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -1
  70. package/lib/commonjs/classes/HMSPeer.js +20 -3
  71. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  72. package/lib/commonjs/classes/HMSPeerListIterator.js +2 -2
  73. package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -1
  74. package/lib/commonjs/classes/HMSPeersCache.js +2 -2
  75. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
  76. package/lib/commonjs/classes/HMSPermissions.js +3 -1
  77. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  78. package/lib/commonjs/classes/HMSPublishSettings.js +1 -1
  79. package/lib/commonjs/classes/HMSQualityLimitationReasons.js +1 -1
  80. package/lib/commonjs/classes/HMSRTCStats.js +1 -1
  81. package/lib/commonjs/classes/HMSRTCStatsReport.js +1 -1
  82. package/lib/commonjs/classes/HMSRTMPConfig.js +1 -1
  83. package/lib/commonjs/classes/HMSRemoteAudioStats.js +1 -1
  84. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +1 -1
  85. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRemotePeer.js +1 -1
  87. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRemoteVideoStats.js +1 -1
  89. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +1 -1
  90. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  91. package/lib/commonjs/classes/HMSRole.js +1 -1
  92. package/lib/commonjs/classes/HMSRoleChangeRequest.js +1 -1
  93. package/lib/commonjs/classes/HMSRoom.js +8 -1
  94. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  95. package/lib/commonjs/classes/HMSRoomCache.js +9 -2
  96. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -1
  97. package/lib/commonjs/classes/HMSRoomUpdate.js +1 -0
  98. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  99. package/lib/commonjs/classes/HMSRtmpStreamingState.js +1 -1
  100. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +1 -1
  101. package/lib/commonjs/classes/HMSSDK.js +105 -12
  102. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  103. package/lib/commonjs/classes/HMSServerRecordingState.js +1 -1
  104. package/lib/commonjs/classes/HMSSessionStore.js +2 -2
  105. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  106. package/lib/commonjs/classes/HMSSimulcastLayerDefinition.js +1 -1
  107. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js +1 -1
  108. package/lib/commonjs/classes/HMSSimulcastLayerSettingsPolicy.js +1 -1
  109. package/lib/commonjs/classes/HMSSimulcastSettings.js +1 -1
  110. package/lib/commonjs/classes/HMSSimulcastSettingsPolicy.js +1 -1
  111. package/lib/commonjs/classes/HMSSpeaker.js +1 -1
  112. package/lib/commonjs/classes/HMSSubscribeDegradationPolicy.js +1 -1
  113. package/lib/commonjs/classes/HMSSubscribeSettings.js +1 -1
  114. package/lib/commonjs/classes/HMSTrack.js +1 -1
  115. package/lib/commonjs/classes/HMSTrackSettings.js +1 -1
  116. package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
  117. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  118. package/lib/commonjs/classes/HMSVideoResolution.js +1 -1
  119. package/lib/commonjs/classes/HMSVideoSettings.js +1 -1
  120. package/lib/commonjs/classes/HMSVideoTrack.js +1 -1
  121. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  122. package/lib/commonjs/classes/HMSVideoTrackSettings.js +1 -1
  123. package/lib/commonjs/classes/transcriptions/HMSTranscript.js +6 -0
  124. package/lib/commonjs/classes/transcriptions/HMSTranscript.js.map +1 -0
  125. package/lib/commonjs/classes/transcriptions/OnTranscriptionError.js +2 -0
  126. package/lib/commonjs/classes/transcriptions/OnTranscriptionError.js.map +1 -0
  127. package/lib/commonjs/classes/transcriptions/TranscriptionState.js +14 -0
  128. package/lib/commonjs/classes/transcriptions/TranscriptionState.js.map +1 -0
  129. package/lib/commonjs/classes/transcriptions/Transcriptions.js +6 -0
  130. package/lib/commonjs/classes/transcriptions/Transcriptions.js.map +1 -0
  131. package/lib/commonjs/classes/transcriptions/TranscriptionsMode.js +12 -0
  132. package/lib/commonjs/classes/transcriptions/TranscriptionsMode.js.map +1 -0
  133. package/lib/commonjs/classes/transcriptions/index.js +61 -0
  134. package/lib/commonjs/classes/transcriptions/index.js.map +1 -0
  135. package/lib/commonjs/classes/whiteboard/registerCallbacks.js +1 -1
  136. package/lib/commonjs/classes/whiteboard/registerCallbacks.js.map +1 -1
  137. package/lib/commonjs/hooks/useHMSPeerUpdates.js +1 -1
  138. package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
  139. package/lib/commonjs/index.js +13 -1
  140. package/lib/commonjs/index.js.map +1 -1
  141. package/lib/commonjs/modules/HMSManagerModule.js.map +1 -1
  142. package/lib/commonjs/utils/emitter/EventEmitter.js +1 -1
  143. package/lib/commonjs/utils/emitter/EventEmitter.js.map +1 -1
  144. package/lib/commonjs/utils/emitter/_EmitterSubscription.js +1 -1
  145. package/lib/commonjs/utils/emitter/_EmitterSubscription.js.map +1 -1
  146. package/lib/commonjs/utils/emitter/_EventSubscription.js +1 -1
  147. package/lib/commonjs/utils/emitter/_EventSubscriptionVendor.js +1 -1
  148. package/lib/commonjs/utils/keyboard.js +1 -1
  149. package/lib/commonjs/utils/keyboard.js.map +1 -1
  150. package/lib/commonjs/utils/notification.js +1 -1
  151. package/lib/commonjs/utils/notification.js.map +1 -1
  152. package/lib/commonjs/utils/windowController.js +1 -1
  153. package/lib/commonjs/utils/windowController.js.map +1 -1
  154. package/lib/module/classes/HMSAudioMixerSource.js +1 -1
  155. package/lib/module/classes/HMSAudioNode.js +1 -1
  156. package/lib/module/classes/HMSAudioSettings.js +1 -1
  157. package/lib/module/classes/HMSAudioTrackSettings.js +1 -1
  158. package/lib/module/classes/HMSBrowserRecordingState.js +1 -1
  159. package/lib/module/classes/HMSChangeTrackStateRequest.js +1 -1
  160. package/lib/module/classes/HMSConfig.js +1 -1
  161. package/lib/module/classes/HMSEncoder.js +31 -1
  162. package/lib/module/classes/HMSEncoder.js.map +1 -1
  163. package/lib/module/classes/HMSException.js +1 -1
  164. package/lib/module/classes/HMSHLSConfig.js +1 -1
  165. package/lib/module/classes/HMSHLSMeetingURLVariant.js +1 -1
  166. package/lib/module/classes/HMSHLSRecordingConfig.js +1 -1
  167. package/lib/module/classes/HMSHLSRecordingState.js +1 -1
  168. package/lib/module/classes/HMSHLSStreamingState.js +1 -1
  169. package/lib/module/classes/HMSHLSVariant.js +1 -1
  170. package/lib/module/classes/HMSInteractivityCenter.js +1 -1
  171. package/lib/module/classes/HMSLocalAudioStats.js +1 -1
  172. package/lib/module/classes/HMSLocalAudioTrack.js +1 -1
  173. package/lib/module/classes/HMSLocalPeer.js +1 -1
  174. package/lib/module/classes/HMSLocalVideoStats.js +1 -1
  175. package/lib/module/classes/HMSLocalVideoTrack.js +1 -1
  176. package/lib/module/classes/HMSLogSettings.js +1 -1
  177. package/lib/module/classes/HMSLogger.js +1 -1
  178. package/lib/module/classes/HMSLogger.js.map +1 -1
  179. package/lib/module/classes/HMSMessage.js +1 -1
  180. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  181. package/lib/module/classes/HMSNativeEventEmitter.js +1 -1
  182. package/lib/module/classes/HMSNetworkQuality.js +1 -1
  183. package/lib/module/classes/HMSNoiseCancellationPlugin.js +1 -1
  184. package/lib/module/classes/HMSPIPConfig.js +1 -1
  185. package/lib/module/classes/HMSPIPConfig.js.map +1 -1
  186. package/lib/module/classes/HMSPeer.js +20 -3
  187. package/lib/module/classes/HMSPeer.js.map +1 -1
  188. package/lib/module/classes/HMSPeerListIterator.js +1 -1
  189. package/lib/module/classes/HMSPeersCache.js +1 -1
  190. package/lib/module/classes/HMSPermissions.js +3 -1
  191. package/lib/module/classes/HMSPermissions.js.map +1 -1
  192. package/lib/module/classes/HMSPublishSettings.js +1 -1
  193. package/lib/module/classes/HMSQualityLimitationReasons.js +1 -1
  194. package/lib/module/classes/HMSRTCStats.js +1 -1
  195. package/lib/module/classes/HMSRTCStatsReport.js +1 -1
  196. package/lib/module/classes/HMSRTMPConfig.js +1 -1
  197. package/lib/module/classes/HMSRemoteAudioStats.js +1 -1
  198. package/lib/module/classes/HMSRemoteAudioTrack.js +1 -1
  199. package/lib/module/classes/HMSRemotePeer.js +1 -1
  200. package/lib/module/classes/HMSRemoteVideoStats.js +1 -1
  201. package/lib/module/classes/HMSRemoteVideoTrack.js +1 -1
  202. package/lib/module/classes/HMSRole.js +1 -1
  203. package/lib/module/classes/HMSRoleChangeRequest.js +1 -1
  204. package/lib/module/classes/HMSRoom.js +8 -1
  205. package/lib/module/classes/HMSRoom.js.map +1 -1
  206. package/lib/module/classes/HMSRoomCache.js +8 -1
  207. package/lib/module/classes/HMSRoomCache.js.map +1 -1
  208. package/lib/module/classes/HMSRoomUpdate.js +1 -0
  209. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  210. package/lib/module/classes/HMSRtmpStreamingState.js +1 -1
  211. package/lib/module/classes/HMSRtmpVideoResolution.js +1 -1
  212. package/lib/module/classes/HMSSDK.js +104 -11
  213. package/lib/module/classes/HMSSDK.js.map +1 -1
  214. package/lib/module/classes/HMSServerRecordingState.js +1 -1
  215. package/lib/module/classes/HMSSessionStore.js +1 -1
  216. package/lib/module/classes/HMSSimulcastLayerDefinition.js +1 -1
  217. package/lib/module/classes/HMSSimulcastLayerSettings.js +1 -1
  218. package/lib/module/classes/HMSSimulcastLayerSettingsPolicy.js +1 -1
  219. package/lib/module/classes/HMSSimulcastSettings.js +1 -1
  220. package/lib/module/classes/HMSSimulcastSettingsPolicy.js +1 -1
  221. package/lib/module/classes/HMSSpeaker.js +1 -1
  222. package/lib/module/classes/HMSSubscribeDegradationPolicy.js +1 -1
  223. package/lib/module/classes/HMSSubscribeSettings.js +1 -1
  224. package/lib/module/classes/HMSTrack.js +1 -1
  225. package/lib/module/classes/HMSTrackSettings.js +1 -1
  226. package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
  227. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  228. package/lib/module/classes/HMSVideoResolution.js +1 -1
  229. package/lib/module/classes/HMSVideoSettings.js +1 -1
  230. package/lib/module/classes/HMSVideoTrack.js +1 -1
  231. package/lib/module/classes/HMSVideoTrackSettings.js +1 -1
  232. package/lib/module/classes/transcriptions/HMSTranscript.js +2 -0
  233. package/lib/module/classes/transcriptions/HMSTranscript.js.map +1 -0
  234. package/lib/module/classes/transcriptions/OnTranscriptionError.js +2 -0
  235. package/lib/module/classes/transcriptions/OnTranscriptionError.js.map +1 -0
  236. package/lib/module/classes/transcriptions/TranscriptionState.js +8 -0
  237. package/lib/module/classes/transcriptions/TranscriptionState.js.map +1 -0
  238. package/lib/module/classes/transcriptions/Transcriptions.js +2 -0
  239. package/lib/module/classes/transcriptions/Transcriptions.js.map +1 -0
  240. package/lib/module/classes/transcriptions/TranscriptionsMode.js +6 -0
  241. package/lib/module/classes/transcriptions/TranscriptionsMode.js.map +1 -0
  242. package/lib/module/classes/transcriptions/index.js +6 -0
  243. package/lib/module/classes/transcriptions/index.js.map +1 -0
  244. package/lib/module/index.js +1 -0
  245. package/lib/module/index.js.map +1 -1
  246. package/lib/module/modules/HMSManagerModule.js.map +1 -1
  247. package/lib/module/utils/emitter/EventEmitter.js +1 -1
  248. package/lib/module/utils/emitter/_EmitterSubscription.js +1 -1
  249. package/lib/module/utils/emitter/_EventSubscription.js +1 -1
  250. package/lib/module/utils/emitter/_EventSubscriptionVendor.js +1 -1
  251. package/lib/typescript/classes/HMSEncoder.d.ts +3 -0
  252. package/lib/typescript/classes/HMSPIPConfig.d.ts +3 -0
  253. package/lib/typescript/classes/HMSPeer.d.ts +3 -1
  254. package/lib/typescript/classes/HMSPermissions.d.ts +7 -0
  255. package/lib/typescript/classes/HMSRoom.d.ts +2 -0
  256. package/lib/typescript/classes/HMSRoomUpdate.d.ts +2 -1
  257. package/lib/typescript/classes/HMSSDK.d.ts +7 -0
  258. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
  259. package/lib/typescript/classes/transcriptions/HMSTranscript.d.ts +8 -0
  260. package/lib/typescript/classes/transcriptions/OnTranscriptionError.d.ts +4 -0
  261. package/lib/typescript/classes/transcriptions/TranscriptionState.d.ts +6 -0
  262. package/lib/typescript/classes/transcriptions/Transcriptions.d.ts +12 -0
  263. package/lib/typescript/classes/transcriptions/TranscriptionsMode.d.ts +4 -0
  264. package/lib/typescript/classes/transcriptions/index.d.ts +5 -0
  265. package/lib/typescript/index.d.ts +1 -0
  266. package/package.json +1 -1
  267. package/sdk-versions.json +2 -2
  268. package/src/classes/HMSEncoder.ts +35 -0
  269. package/src/classes/HMSPIPConfig.ts +30 -0
  270. package/src/classes/HMSPeer.ts +29 -2
  271. package/src/classes/HMSPermissions.ts +10 -0
  272. package/src/classes/HMSRoom.ts +14 -0
  273. package/src/classes/HMSRoomCache.ts +9 -0
  274. package/src/classes/HMSRoomUpdate.ts +1 -0
  275. package/src/classes/HMSSDK.tsx +121 -21
  276. package/src/classes/HMSUpdateListenerActions.ts +1 -0
  277. package/src/classes/transcriptions/HMSTranscript.ts +13 -0
  278. package/src/classes/transcriptions/OnTranscriptionError.ts +5 -0
  279. package/src/classes/transcriptions/TranscriptionState.ts +6 -0
  280. package/src/classes/transcriptions/Transcriptions.ts +19 -0
  281. package/src/classes/transcriptions/TranscriptionsMode.ts +4 -0
  282. package/src/classes/transcriptions/index.ts +5 -0
  283. package/src/index.ts +2 -0
@@ -41,6 +41,7 @@ import { HMSSimulcastLayerDefinition } from './HMSSimulcastLayerDefinition';
41
41
  import { HMSQualityLimitationReasons } from './HMSQualityLimitationReasons';
42
42
  import { HMSTrackType } from './HMSTrackType';
43
43
  import { HMSHLSPlaylistType } from './HMSHLSPlaylistType';
44
+ import type { Transcriptions } from './transcriptions';
44
45
 
45
46
  interface InitialData {
46
47
  roles: Record<string, HMSRole>;
@@ -700,4 +701,38 @@ export class HMSEncoder {
700
701
 
701
702
  return transformed;
702
703
  }
704
+
705
+ static encodeTranscriptions(data: Array<any>): Array<Transcriptions> {
706
+ if (Array.isArray(data)) {
707
+ data.forEach((transcriptions: Transcriptions) => {
708
+ if ('initialisedAt' in transcriptions) {
709
+ transcriptions.initialisedAt = this.encodeDate(
710
+ transcriptions.initialisedAt
711
+ );
712
+ }
713
+ if ('startedAt' in transcriptions) {
714
+ transcriptions.startedAt = this.encodeDate(transcriptions.startedAt);
715
+ }
716
+ if ('stoppedAt' in transcriptions) {
717
+ transcriptions.stoppedAt = this.encodeDate(transcriptions.stoppedAt);
718
+ }
719
+ if ('updatedAt' in transcriptions) {
720
+ transcriptions.updatedAt = this.encodeDate(transcriptions.updatedAt);
721
+ }
722
+ });
723
+ return data as Array<Transcriptions>;
724
+ } else {
725
+ return [];
726
+ }
727
+ }
728
+
729
+ static transformTranscripts(data: Array<any>) {
730
+ data.forEach((encodedTranscript) => {
731
+ if ('peerId' in encodedTranscript) {
732
+ encodedTranscript.peer = HMSEncoder.encodeHmsPeer({
733
+ peerID: encodedTranscript.peerId,
734
+ });
735
+ }
736
+ });
737
+ }
703
738
  }
@@ -1,7 +1,37 @@
1
+ import type { HMSVideoViewMode } from './HMSVideoViewMode';
2
+
1
3
  export interface HMSPIPConfig {
4
+ /*
5
+ * Whether to automatically enter PIP mode when app enters background.
6
+ */
2
7
  autoEnterPipMode?: boolean;
8
+
9
+ /*
10
+ * The aspect ratio of the PIP window. Default is [9, 16]. Other values can be [3, 4], [1, 1], [4, 3], [16, 9].
11
+ */
3
12
  aspectRatio?: [number, number];
13
+
14
+ /*
15
+ * The scale type of the PIP window. Default is ASPECT_FILL. Other values can be ASPECT_FIT, ASPECT_BALANCED. iOS Only.
16
+ */
17
+ scaleType?: HMSVideoViewMode;
18
+
19
+ /*
20
+ * Whether to show the Active Speaker in the PIP window. Default is true. iOS only.
21
+ */
22
+ useActiveSpeaker?: boolean;
23
+ /*
24
+ * Whether to show the end button in the PIP window. Default is true. Android only.
25
+ */
4
26
  endButton?: boolean;
27
+
28
+ /*
29
+ * Whether to show the audio mute/unmute button in the PIP window. Default is true. Android only.
30
+ */
5
31
  audioButton?: boolean;
32
+
33
+ /*
34
+ * Whether to show the video mute/unmute button in the PIP window. Default is true. Android only.
35
+ */
6
36
  videoButton?: boolean;
7
37
  }
@@ -9,7 +9,7 @@ import { HMSPeerType } from './HMSPeerType';
9
9
 
10
10
  export class HMSPeer {
11
11
  peerID: string;
12
- name: string;
12
+ private _name: string | undefined;
13
13
  private _isLocal: boolean | undefined;
14
14
  private _customerUserID: string | undefined;
15
15
  private _metadata: string | undefined;
@@ -17,6 +17,13 @@ export class HMSPeer {
17
17
  private _isHandRaised: boolean = false;
18
18
  private _type: HMSPeerType = HMSPeerType.REGULAR;
19
19
 
20
+ private _updateName(value: string) {
21
+ // If `_isLocal` is outdated, update it
22
+ if (this._name !== value) {
23
+ this._name = value;
24
+ }
25
+ }
26
+
20
27
  private _updateIsLocal(value: boolean) {
21
28
  // If `_isLocal` is outdated, update it
22
29
  if (this._isLocal !== value) {
@@ -61,7 +68,27 @@ export class HMSPeer {
61
68
 
62
69
  constructor(params: { peerID: string; name: string }) {
63
70
  this.peerID = params.peerID;
64
- this.name = params.name;
71
+ this._name = params.name;
72
+ }
73
+
74
+ get name(): string | undefined {
75
+ if (this._name) {
76
+ return this._name;
77
+ }
78
+ const hmsPeersCache = getHmsPeersCache();
79
+
80
+ const value = hmsPeersCache
81
+ ? hmsPeersCache.getProperty(this.peerID, 'name')
82
+ : getPeerPropertyFromNative(
83
+ HMSConstants.DEFAULT_SDK_ID,
84
+ this.peerID,
85
+ 'name'
86
+ );
87
+
88
+ if (typeof value === 'string') {
89
+ this._updateName(value);
90
+ }
91
+ return value ?? this._name;
65
92
  }
66
93
 
67
94
  get isLocal(): boolean | undefined {
@@ -1,9 +1,16 @@
1
+ import type { TranscriptionsMode } from './transcriptions';
2
+
1
3
  export interface HMSWhiteboardPermission {
2
4
  admin?: boolean;
3
5
  write?: boolean;
4
6
  read?: boolean;
5
7
  }
6
8
 
9
+ export interface HMSTranscriptionPermissions {
10
+ admin: boolean;
11
+ mode?: TranscriptionsMode;
12
+ }
13
+
7
14
  export class HMSPermissions {
8
15
  endRoom?: boolean;
9
16
  removeOthers?: boolean;
@@ -16,6 +23,7 @@ export class HMSPermissions {
16
23
  pollRead?: boolean;
17
24
  pollWrite?: boolean;
18
25
  whiteboard?: HMSWhiteboardPermission;
26
+ transcriptions?: Array<HMSTranscriptionPermissions>;
19
27
 
20
28
  constructor(params?: {
21
29
  endRoom?: boolean;
@@ -29,6 +37,7 @@ export class HMSPermissions {
29
37
  pollRead?: boolean;
30
38
  pollWrite?: boolean;
31
39
  whiteboard?: HMSWhiteboardPermission;
40
+ transcriptions?: Array<HMSTranscriptionPermissions>;
32
41
  }) {
33
42
  if (params) {
34
43
  this.endRoom = params.endRoom;
@@ -42,6 +51,7 @@ export class HMSPermissions {
42
51
  this.pollRead = params.pollRead;
43
52
  this.pollWrite = params.pollWrite;
44
53
  this.whiteboard = params.whiteboard;
54
+ this.transcriptions = params.transcriptions;
45
55
  }
46
56
  }
47
57
  }
@@ -7,6 +7,7 @@ import type { HMSHLSRecordingState } from './HMSHLSRecordingState';
7
7
  import type { HMSLocalPeer } from './HMSLocalPeer';
8
8
  import { getHmsRoomCache, getHMSRoomPropertyFromNative } from './HMSRoomCache';
9
9
  import { HMSConstants } from './HMSConstants';
10
+ import type { Transcriptions } from './transcriptions/Transcriptions';
10
11
 
11
12
  export class HMSRoom {
12
13
  id: string;
@@ -166,4 +167,17 @@ export class HMSRoom {
166
167
  'isLargeRoom'
167
168
  );
168
169
  }
170
+
171
+ get transcriptions(): Array<Transcriptions> {
172
+ const hmsRoomCache = getHmsRoomCache();
173
+
174
+ if (hmsRoomCache) {
175
+ return hmsRoomCache.getProperty('transcriptions');
176
+ }
177
+
178
+ return getHMSRoomPropertyFromNative(
179
+ HMSConstants.DEFAULT_SDK_ID,
180
+ 'transcriptions'
181
+ );
182
+ }
169
183
  }
@@ -99,6 +99,13 @@ export class HMSRoomCache {
99
99
  );
100
100
  break;
101
101
  }
102
+ case HMSRoomUpdate.TRANSCRIPTIONS_UPDATED: {
103
+ this._data.set(
104
+ 'transcriptions',
105
+ encodeHMSRoomProperty(this.id, 'transcriptions', data)
106
+ );
107
+ break;
108
+ }
102
109
  default: {
103
110
  for (const key in data) {
104
111
  const property = key as keyof HMSRoomCacheProps;
@@ -153,6 +160,8 @@ function encodeHMSRoomProperty<T extends keyof HMSRoomCacheProps>(
153
160
  value = HMSEncoder.encodeHLSStreamingState(data.hlsStreamingState);
154
161
  } else if (property === 'hlsRecordingState') {
155
162
  value = HMSEncoder.encodeHLSRecordingState(data.hlsRecordingState);
163
+ } else if (property === 'transcriptions') {
164
+ value = HMSEncoder.encodeTranscriptions(data.transcriptions);
156
165
  } else if (property === 'localPeer') {
157
166
  value = HMSEncoder.encodeHmsLocalPeer(data.localPeer, id);
158
167
  } else if (property === 'peerCount') {
@@ -7,4 +7,5 @@ export enum HMSRoomUpdate {
7
7
  HLS_STREAMING_STATE_UPDATED = 'HLS_STREAMING_STATE_UPDATED',
8
8
  HLS_RECORDING_STATE_UPDATED = 'HLS_RECORDING_STATE_UPDATED',
9
9
  ROOM_PEER_COUNT_UPDATED = 'ROOM_PEER_COUNT_UPDATED',
10
+ TRANSCRIPTIONS_UPDATED = 'TRANSCRIPTIONS_UPDATED',
10
11
  }
@@ -18,7 +18,6 @@ import type { HMSRole } from './HMSRole';
18
18
  import type { HMSTrack } from './HMSTrack';
19
19
  import type { HMSLogger } from './HMSLogger';
20
20
  import type { HMSPeer } from './HMSPeer';
21
- import type { HMSVideoViewMode } from './HMSVideoViewMode';
22
21
  import type { HMSTrackSettings } from './HMSTrackSettings';
23
22
  import type { HMSRTMPConfig } from './HMSRTMPConfig';
24
23
  import type { HMSHLSConfig } from './HMSHLSConfig';
@@ -48,6 +47,7 @@ import { HMSPeerListIterator } from './HMSPeerListIterator';
48
47
  import type { HMSPIPConfig } from './HMSPIPConfig';
49
48
  import { HMSInteractivityCenter } from './HMSInteractivityCenter';
50
49
  import type { HMSHLSTimedMetadata } from './HMSHLSTimedMetadata';
50
+ import type { HMSVideoTrack } from './HMSVideoTrack';
51
51
 
52
52
  type HmsViewProps = Omit<HmsComponentProps, 'id'>;
53
53
 
@@ -63,6 +63,7 @@ export class HMSSDK {
63
63
  private onPreviewDelegate?: any;
64
64
  private onJoinDelegate?: any;
65
65
  private onRoomDelegate?: any;
66
+ private onTranscriptsDelegate?: any;
66
67
  private onPeerDelegate?: any;
67
68
  private onPeerListUpdatedDelegate?: any;
68
69
  private onTrackDelegate?: any;
@@ -1288,6 +1289,24 @@ export class HMSSDK {
1288
1289
  this.onRoomDelegate = callback;
1289
1290
  break;
1290
1291
  }
1292
+ case HMSUpdateListenerActions.ON_TRANSCRIPTS: {
1293
+ // Checking if we already have ON_TRANSCRIPTS subscription
1294
+ if (
1295
+ !this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRANSCRIPTS]
1296
+ ) {
1297
+ // Adding ON_TRANSCRIPTS native listener
1298
+ const transcriptsSubscription = HMSNativeEventListener.addListener(
1299
+ this.id,
1300
+ HMSUpdateListenerActions.ON_TRANSCRIPTS,
1301
+ this.onTranscriptsListener
1302
+ );
1303
+ this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRANSCRIPTS] =
1304
+ transcriptsSubscription;
1305
+ }
1306
+ // Adding App Delegate listener
1307
+ this.onTranscriptsDelegate = callback;
1308
+ break;
1309
+ }
1291
1310
  case HMSUpdateListenerActions.ON_PEER_UPDATE: {
1292
1311
  // Checking if we already have ON_PEER_UPDATE subscription
1293
1312
  if (
@@ -1654,26 +1673,21 @@ export class HMSSDK {
1654
1673
  break;
1655
1674
  }
1656
1675
  case HMSPIPListenerActions.ON_PIP_MODE_CHANGED: {
1657
- if (Platform.OS === 'android') {
1658
- // Checking if we already have ON_PIP_MODE_CHANGED subscription
1659
- if (
1660
- !this.emitterSubscriptions[
1661
- HMSPIPListenerActions.ON_PIP_MODE_CHANGED
1662
- ]
1663
- ) {
1664
- const pipModeChangedSubscription =
1665
- HMSNativeEventListener.addListener(
1666
- this.id,
1667
- HMSPIPListenerActions.ON_PIP_MODE_CHANGED,
1668
- this.onPIPModeChangedListener
1669
- );
1670
- this.emitterSubscriptions[
1671
- HMSPIPListenerActions.ON_PIP_MODE_CHANGED
1672
- ] = pipModeChangedSubscription;
1673
- }
1674
- // Adding PIP mode changed Delegate listener
1675
- this.onPIPModeChangedDelegate = callback;
1676
+ // Checking if we already have ON_PIP_MODE_CHANGED subscription
1677
+ if (
1678
+ !this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED]
1679
+ ) {
1680
+ const pipModeChangedSubscription = HMSNativeEventListener.addListener(
1681
+ this.id,
1682
+ HMSPIPListenerActions.ON_PIP_MODE_CHANGED,
1683
+ this.onPIPModeChangedListener
1684
+ );
1685
+ this.emitterSubscriptions[HMSPIPListenerActions.ON_PIP_MODE_CHANGED] =
1686
+ pipModeChangedSubscription;
1676
1687
  }
1688
+ // Adding PIP mode changed Delegate listener
1689
+ this.onPIPModeChangedDelegate = callback;
1690
+
1677
1691
  break;
1678
1692
  }
1679
1693
  default:
@@ -1734,6 +1748,20 @@ export class HMSSDK {
1734
1748
  this.onRoomDelegate = null;
1735
1749
  break;
1736
1750
  }
1751
+ case HMSUpdateListenerActions.ON_TRANSCRIPTS: {
1752
+ const subscription =
1753
+ this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRANSCRIPTS];
1754
+ // Removing ON_TRANSCRIPTS native listener
1755
+ if (subscription) {
1756
+ subscription.remove();
1757
+
1758
+ this.emitterSubscriptions[HMSUpdateListenerActions.ON_TRANSCRIPTS] =
1759
+ undefined;
1760
+ }
1761
+ // Removing App Delegate listener
1762
+ this.onTranscriptsDelegate = null;
1763
+ break;
1764
+ }
1737
1765
  case HMSUpdateListenerActions.ON_PEER_UPDATE: {
1738
1766
  const subscription =
1739
1767
  this.emitterSubscriptions[HMSUpdateListenerActions.ON_PEER_UPDATE];
@@ -2139,6 +2167,18 @@ export class HMSSDK {
2139
2167
  }
2140
2168
  };
2141
2169
 
2170
+ onTranscriptsListener = (data: any) => {
2171
+ if (data.id !== this.id) {
2172
+ return;
2173
+ }
2174
+ HMSEncoder.transformTranscripts(data.transcripts);
2175
+
2176
+ if (this.onTranscriptsDelegate) {
2177
+ logger?.verbose('#Listener ON_TRANSCRIPTS_LISTENER_CALL', data);
2178
+ this.onTranscriptsDelegate(data);
2179
+ }
2180
+ };
2181
+
2142
2182
  onPeerListener = (peerData: any) => {
2143
2183
  const data: { peer: any; type: any } = {
2144
2184
  peer: peerData,
@@ -2475,6 +2515,9 @@ export class HMSSDK {
2475
2515
  }
2476
2516
  };
2477
2517
 
2518
+ /*
2519
+ * - This listener is fired when Room is left from the Picture in Picture mode. Android only.
2520
+ */
2478
2521
  onPIPRoomLeaveListener = (data: { id: string }) => {
2479
2522
  if (data.id !== this.id) {
2480
2523
  return;
@@ -2490,6 +2533,9 @@ export class HMSSDK {
2490
2533
  }
2491
2534
  };
2492
2535
 
2536
+ /*
2537
+ * - Attach this listener to get notified when Picture in Picture mode is changed
2538
+ */
2493
2539
  onPIPModeChangedListener = (data: { isInPictureInPictureMode: boolean }) => {
2494
2540
  if (this.onPIPModeChangedDelegate) {
2495
2541
  logger?.verbose('#Listener onPIPModeChanged_CALL', data);
@@ -2498,17 +2544,29 @@ export class HMSSDK {
2498
2544
  }
2499
2545
  };
2500
2546
 
2547
+ /*
2548
+ * - This function is used to check if Picture in Picture mode is supported on the device
2549
+ */
2501
2550
  async isPipModeSupported(): Promise<undefined | boolean> {
2502
- return HMSManager.handlePipActions('isPipModeSupported', { id: this.id });
2551
+ const data = { id: this.id };
2552
+ logger?.verbose('#Function isPipModeSupported', data);
2553
+ return HMSManager.handlePipActions('isPipModeSupported', data);
2503
2554
  }
2504
2555
 
2556
+ /*
2557
+ * - This function can be used to manually enter Picture in Picture mode
2558
+ */
2505
2559
  async enterPipMode(data?: HMSPIPConfig): Promise<undefined | boolean> {
2560
+ logger?.verbose('#Function enterPipMode', data);
2506
2561
  return HMSManager.handlePipActions('enterPipMode', {
2507
2562
  ...data,
2508
2563
  id: this.id,
2509
2564
  });
2510
2565
  }
2511
2566
 
2567
+ /*
2568
+ * - This function is to be used to configure the Picture in Picture window
2569
+ */
2512
2570
  async setPipParams(data?: HMSPIPConfig): Promise<undefined | boolean> {
2513
2571
  return HMSManager.handlePipActions('setPictureInPictureParams', {
2514
2572
  ...data,
@@ -2516,6 +2574,48 @@ export class HMSSDK {
2516
2574
  });
2517
2575
  }
2518
2576
 
2577
+ /*
2578
+ * - Use this function to set Video Track for Picture in Picture mode. iOS Only.
2579
+ */
2580
+ async changeIOSPIPVideoTrack(track: HMSVideoTrack) {
2581
+ const data = {
2582
+ id: this.id,
2583
+ trackId: track.trackId,
2584
+ };
2585
+ logger?.verbose('#Function changeIOSPIPVideoTrack', data);
2586
+ return await HMSManager.changeIOSPIPVideoTrack(data);
2587
+ }
2588
+
2589
+ /*
2590
+ * - Use this function to automatically show the current Active Speaker Peer video in the PIP Mode window. iOS Only.
2591
+ */
2592
+ async setActiveSpeakerInIOSPIP(enable: boolean) {
2593
+ const data = {
2594
+ id: this.id,
2595
+ enable,
2596
+ };
2597
+ logger?.verbose('#Function setActiveSpeakerInIOSPIP', data);
2598
+ return await HMSManager.setActiveSpeakerInIOSPIP(data);
2599
+ }
2600
+
2601
+ async startRealTimeTranscription() {
2602
+ const data = {
2603
+ id: this.id,
2604
+ action: 'start',
2605
+ };
2606
+ logger?.verbose('#Function startRealTimeTranscription', data);
2607
+ return HMSManager.handleRealTimeTranscription(data);
2608
+ }
2609
+
2610
+ async stopRealTimeTranscription() {
2611
+ const data = {
2612
+ id: this.id,
2613
+ action: 'stop',
2614
+ };
2615
+ logger?.verbose('#Function stopRealTimeTranscription', data);
2616
+ return HMSManager.handleRealTimeTranscription(data);
2617
+ }
2618
+
2519
2619
  get interactivityCenter() {
2520
2620
  if (!this._interactivityCenter) {
2521
2621
  this._interactivityCenter = new HMSInteractivityCenter();
@@ -27,4 +27,5 @@ export enum HMSUpdateListenerActions {
27
27
  ON_SESSION_STORE_AVAILABLE = 'ON_SESSION_STORE_AVAILABLE',
28
28
  ON_SESSION_STORE_CHANGED = 'ON_SESSION_STORE_CHANGED',
29
29
  ON_PEER_LIST_UPDATED = 'ON_PEER_LIST_UPDATED',
30
+ ON_TRANSCRIPTS = 'ON_TRANSCRIPTS',
30
31
  }
@@ -0,0 +1,13 @@
1
+ import type { HMSPeer } from '../HMSPeer';
2
+
3
+ export interface HMSTranscript {
4
+ transcript: string;
5
+
6
+ peer: HMSPeer;
7
+
8
+ end: number;
9
+
10
+ start: number;
11
+
12
+ isFinal: boolean;
13
+ }
@@ -0,0 +1,5 @@
1
+ export interface OnTranscriptionError {
2
+ code?: number;
3
+
4
+ message?: string;
5
+ }
@@ -0,0 +1,6 @@
1
+ export enum TranscriptionState {
2
+ FAILED = 'FAILED',
3
+ INITIALIZED = 'INITIALIZED',
4
+ STARTED = 'STARTED',
5
+ STOPPED = 'STOPPED',
6
+ }
@@ -0,0 +1,19 @@
1
+ import type { OnTranscriptionError } from './OnTranscriptionError';
2
+ import type { TranscriptionState } from './TranscriptionState';
3
+ import type { TranscriptionsMode } from './TranscriptionsMode';
4
+
5
+ export interface Transcriptions {
6
+ error?: OnTranscriptionError;
7
+
8
+ mode?: TranscriptionsMode;
9
+
10
+ state?: TranscriptionState;
11
+
12
+ initialisedAt?: Date;
13
+
14
+ startedAt?: Date;
15
+
16
+ stoppedAt?: Date;
17
+
18
+ updatedAt?: Date;
19
+ }
@@ -0,0 +1,4 @@
1
+ export enum TranscriptionsMode {
2
+ CAPTION = 'CAPTION',
3
+ LIVE = 'LIVE',
4
+ }
@@ -0,0 +1,5 @@
1
+ export * from './OnTranscriptionError';
2
+ export * from './TranscriptionState';
3
+ export * from './TranscriptionsMode';
4
+ export * from './Transcriptions';
5
+ export * from './HMSTranscript';
package/src/index.ts CHANGED
@@ -114,6 +114,8 @@ export { PollLeaderboardResponse } from './classes/polls/PollLeaderboardResponse
114
114
  export { HMSPollLeaderboardEntry } from './classes/polls/HMSPollLeaderboardEntry';
115
115
  export { HMSPollLeaderboardSummary } from './classes/polls/HMSPollLeaderboardSummary';
116
116
 
117
+ export * from './classes/transcriptions';
118
+
117
119
  import { HMSSDK as HmsManager } from './classes/HMSSDK';
118
120
 
119
121
  // 100ms React Native Module