@100mslive/react-native-hms 0.7.3 → 0.8.2

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 (211) hide show
  1. package/README.md +37 -39
  2. package/android/.gradle/checksums/checksums.lock +0 -0
  3. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  4. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  5. package/android/.project +34 -0
  6. package/android/build.gradle +1 -2
  7. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +268 -232
  8. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +122 -12
  9. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +143 -508
  10. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +935 -0
  11. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +34 -22
  12. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  13. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +9 -13
  14. package/ios/HmsDecoder.swift +168 -33
  15. package/ios/HmsHelper.swift +121 -1
  16. package/ios/HmsManager.m +20 -14
  17. package/ios/HmsManager.swift +122 -394
  18. package/ios/HmsSDK.swift +784 -0
  19. package/ios/HmsView.swift +16 -8
  20. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  21. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
  22. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  23. package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
  24. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
  25. package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
  26. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
  27. package/lib/commonjs/classes/HMSConfig.js +3 -7
  28. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  29. package/lib/commonjs/classes/HMSEncoder.js +65 -35
  30. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  31. package/lib/commonjs/classes/HMSException.js +30 -0
  32. package/lib/commonjs/classes/HMSException.js.map +1 -0
  33. package/lib/commonjs/classes/HMSHelper.js +2 -2
  34. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  35. package/lib/commonjs/classes/HMSLocalAudioTrack.js +39 -1
  36. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  37. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  38. package/lib/commonjs/classes/HMSLocalVideoTrack.js +28 -2
  39. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  40. package/lib/commonjs/classes/HMSLogger.js +28 -1
  41. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  42. package/lib/commonjs/classes/HMSPeer.js +3 -0
  43. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  44. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  45. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  46. package/lib/commonjs/classes/HMSPermissions.js +6 -0
  47. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  48. package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
  49. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
  50. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +21 -0
  51. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  52. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  53. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +21 -0
  54. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  55. package/lib/commonjs/classes/HMSRoom.js +9 -0
  56. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  57. package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
  58. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
  59. package/lib/commonjs/classes/HMSSDK.js +419 -151
  60. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  61. package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
  62. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
  63. package/lib/commonjs/classes/HMSTrack.js +8 -18
  64. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  65. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  66. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  67. package/lib/commonjs/classes/HMSTrackType.js +14 -0
  68. package/lib/commonjs/classes/HMSTrackType.js.map +1 -0
  69. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  70. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  71. package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
  72. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
  73. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  74. package/lib/commonjs/classes/HMSVideoTrack.js +2 -0
  75. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  76. package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
  77. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  78. package/lib/commonjs/classes/HmsView.js +10 -7
  79. package/lib/commonjs/classes/HmsView.js.map +1 -1
  80. package/lib/commonjs/index.js +112 -0
  81. package/lib/commonjs/index.js.map +1 -1
  82. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  83. package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
  84. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  85. package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
  86. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
  87. package/lib/module/classes/HMSCameraFacing.js +7 -0
  88. package/lib/module/classes/HMSCameraFacing.js.map +1 -0
  89. package/lib/module/classes/HMSConfig.js +3 -7
  90. package/lib/module/classes/HMSConfig.js.map +1 -1
  91. package/lib/module/classes/HMSEncoder.js +64 -35
  92. package/lib/module/classes/HMSEncoder.js.map +1 -1
  93. package/lib/module/classes/HMSException.js +21 -0
  94. package/lib/module/classes/HMSException.js.map +1 -0
  95. package/lib/module/classes/HMSHelper.js +2 -2
  96. package/lib/module/classes/HMSHelper.js.map +1 -1
  97. package/lib/module/classes/HMSLocalAudioTrack.js +37 -2
  98. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  99. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  100. package/lib/module/classes/HMSLocalVideoTrack.js +25 -2
  101. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  102. package/lib/module/classes/HMSLogger.js +28 -1
  103. package/lib/module/classes/HMSLogger.js.map +1 -1
  104. package/lib/module/classes/HMSPeer.js +3 -0
  105. package/lib/module/classes/HMSPeer.js.map +1 -1
  106. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  107. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  108. package/lib/module/classes/HMSPermissions.js +6 -0
  109. package/lib/module/classes/HMSPermissions.js.map +1 -1
  110. package/lib/module/classes/HMSRTMPConfig.js +17 -0
  111. package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
  112. package/lib/module/classes/HMSRemoteAudioTrack.js +18 -0
  113. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  114. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  115. package/lib/module/classes/HMSRemoteVideoTrack.js +18 -0
  116. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  117. package/lib/module/classes/HMSRoom.js +9 -0
  118. package/lib/module/classes/HMSRoom.js.map +1 -1
  119. package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
  120. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
  121. package/lib/module/classes/HMSSDK.js +408 -151
  122. package/lib/module/classes/HMSSDK.js.map +1 -1
  123. package/lib/module/classes/HMSServerRecordingState.js +14 -0
  124. package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
  125. package/lib/module/classes/HMSTrack.js +8 -16
  126. package/lib/module/classes/HMSTrack.js.map +1 -1
  127. package/lib/module/classes/HMSTrackSettings.js +3 -0
  128. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  129. package/lib/module/classes/HMSTrackType.js +7 -0
  130. package/lib/module/classes/HMSTrackType.js.map +1 -0
  131. package/lib/module/classes/HMSVideoCodec.js +4 -4
  132. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  133. package/lib/module/classes/HMSVideoResolution.js +14 -0
  134. package/lib/module/classes/HMSVideoResolution.js.map +1 -0
  135. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  136. package/lib/module/classes/HMSVideoTrack.js +2 -0
  137. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  138. package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
  139. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  140. package/lib/module/classes/HmsView.js +10 -7
  141. package/lib/module/classes/HmsView.js.map +1 -1
  142. package/lib/module/index.js +8 -0
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/typescript/classes/HMSAudioTrack.d.ts +3 -0
  145. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
  146. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
  147. package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
  148. package/lib/typescript/classes/HMSConfig.d.ts +2 -4
  149. package/lib/typescript/classes/HMSEncoder.d.ts +14 -12
  150. package/lib/typescript/classes/HMSException.d.ts +22 -0
  151. package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +5 -0
  152. package/lib/typescript/classes/HMSLocalPeer.d.ts +6 -0
  153. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +4 -0
  154. package/lib/typescript/classes/HMSLogger.d.ts +11 -4
  155. package/lib/typescript/classes/HMSPeer.d.ts +2 -0
  156. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  157. package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
  158. package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
  159. package/lib/typescript/classes/HMSRemoteAudioTrack.d.ts +4 -0
  160. package/lib/typescript/classes/HMSRemotePeer.d.ts +3 -0
  161. package/lib/typescript/classes/HMSRemoteVideoTrack.d.ts +4 -0
  162. package/lib/typescript/classes/HMSRoom.d.ts +9 -0
  163. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
  164. package/lib/typescript/classes/HMSSDK.d.ts +41 -11
  165. package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
  166. package/lib/typescript/classes/HMSTrack.d.ts +6 -1
  167. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  168. package/lib/typescript/classes/HMSTrackType.d.ts +4 -0
  169. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  170. package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
  171. package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
  172. package/lib/typescript/classes/HMSVideoTrack.d.ts +5 -1
  173. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
  174. package/lib/typescript/classes/HmsView.d.ts +2 -1
  175. package/lib/typescript/index.d.ts +8 -0
  176. package/package.json +1 -1
  177. package/src/classes/HMSAudioTrack.ts +3 -0
  178. package/src/classes/HMSAudioTrackSettings.ts +9 -1
  179. package/src/classes/HMSBrowserRecordingState.ts +11 -0
  180. package/src/classes/HMSCameraFacing.ts +4 -0
  181. package/src/classes/HMSConfig.ts +3 -7
  182. package/src/classes/HMSEncoder.ts +64 -28
  183. package/src/classes/HMSException.ts +33 -0
  184. package/src/classes/HMSHelper.ts +2 -2
  185. package/src/classes/HMSLocalAudioTrack.ts +35 -2
  186. package/src/classes/HMSLocalPeer.ts +6 -0
  187. package/src/classes/HMSLocalVideoTrack.ts +22 -2
  188. package/src/classes/HMSLogger.ts +19 -6
  189. package/src/classes/HMSPeer.ts +3 -0
  190. package/src/classes/HMSPeerUpdate.ts +1 -0
  191. package/src/classes/HMSPermissions.ts +6 -0
  192. package/src/classes/HMSRTMPConfig.ts +15 -0
  193. package/src/classes/HMSRemoteAudioTrack.ts +29 -2
  194. package/src/classes/HMSRemotePeer.ts +3 -0
  195. package/src/classes/HMSRemoteVideoTrack.ts +29 -2
  196. package/src/classes/HMSRoom.ts +12 -0
  197. package/src/classes/HMSRtmpStreamingState.ts +11 -0
  198. package/src/classes/{HMSSDK.ts → HMSSDK.tsx} +396 -97
  199. package/src/classes/HMSServerRecordingState.ts +11 -0
  200. package/src/classes/HMSTrack.ts +9 -15
  201. package/src/classes/HMSTrackSettings.ts +3 -0
  202. package/src/classes/HMSTrackType.ts +4 -0
  203. package/src/classes/HMSVideoCodec.ts +4 -4
  204. package/src/classes/HMSVideoResolution.ts +9 -0
  205. package/src/classes/HMSVideoSettings.ts +3 -3
  206. package/src/classes/HMSVideoTrack.ts +6 -1
  207. package/src/classes/HMSVideoTrackSettings.ts +13 -10
  208. package/src/classes/HmsView.tsx +4 -0
  209. package/src/index.ts +8 -0
  210. package/ios/Hmssdk.m +0 -8
  211. package/ios/Hmssdk.swift +0 -8
@@ -14,29 +14,33 @@ import { HMSLocalAudioTrack } from './HMSLocalAudioTrack';
14
14
  import { HMSRole } from './HMSRole';
15
15
  import { HMSRoleChangeRequest } from './HMSRoleChangeRequest';
16
16
  import { HMSChangeTrackStateRequest } from './HMSChangeTrackStateRequest';
17
+ import { HMSVideoResolution } from './HMSVideoResolution';
17
18
 
18
19
  export class HMSEncoder {
19
- static encodeHmsRoom(room: any) {
20
+ static encodeHmsRoom(room: HMSRoom, id: string) {
20
21
  const encodedObj = {
21
22
  id: room?.id,
22
23
  metaData: room?.metaData,
23
24
  name: room?.name,
24
- peers: HMSEncoder.encodeHmsPeers(room?.peers),
25
+ peers: HMSEncoder.encodeHmsPeers(room?.peers, id),
26
+ browserRecordingState: room?.browserRecordingState,
27
+ rtmpHMSRtmpStreamingState: room?.rtmpHMSRtmpStreamingState,
28
+ serverRecordingState: room?.serverRecordingState,
25
29
  };
26
30
 
27
31
  return new HMSRoom(encodedObj);
28
32
  }
29
33
 
30
- static encodeHmsPeers(peers: any) {
34
+ static encodeHmsPeers(peers: any, id: string) {
31
35
  const encodedPeers: HMSPeer[] = [];
32
36
  peers?.map((peer: any) => {
33
- encodedPeers.push(HMSEncoder.encodeHmsPeer(peer));
37
+ encodedPeers.push(HMSEncoder.encodeHmsPeer(peer, id));
34
38
  });
35
39
 
36
40
  return encodedPeers;
37
41
  }
38
42
 
39
- static encodeHmsPeer(peer: any) {
43
+ static encodeHmsPeer(peer: any, id: string) {
40
44
  const encodedObj = {
41
45
  peerID: peer?.peerID,
42
46
  name: peer?.name,
@@ -44,71 +48,83 @@ export class HMSEncoder {
44
48
  role: HMSEncoder.encodeHmsRole(peer?.role),
45
49
  customerUserID: peer?.customerUserID,
46
50
  customerDescription: peer?.customerDescription,
47
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack),
48
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer?.videoTrack),
51
+ metadata: peer?.metadata,
52
+ audioTrack: HMSEncoder.encodeHmsAudioTrack(peer?.audioTrack, id),
53
+ videoTrack: HMSEncoder.encodeHmsVideoTrack(peer?.videoTrack, id),
49
54
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
50
- peer?.auxiliaryTracks
55
+ peer?.auxiliaryTracks,
56
+ id
51
57
  ),
52
58
  };
53
59
 
54
60
  return new HMSPeer(encodedObj);
55
61
  }
56
62
 
57
- static encodeHmsAudioTrack(track: any) {
63
+ static encodeHmsAudioTrack(track: any, id: string) {
58
64
  const encodedObj = {
59
65
  trackId: track?.trackId,
60
66
  source: track?.source,
61
67
  trackDescription: track?.trackDescription,
62
68
  isMute: track?.isMute,
69
+ id: id,
70
+ type: track?.type,
63
71
  };
64
72
 
65
73
  return new HMSAudioTrack(encodedObj);
66
74
  }
67
75
 
68
- static encodeHmsVideoTrack(track: any) {
76
+ static encodeHmsVideoTrack(track: any, id: string) {
69
77
  const encodedObj = {
78
+ id: id,
70
79
  trackId: track?.trackId,
71
80
  source: track?.source,
72
81
  trackDescription: track?.trackDescription,
73
82
  isMute: track?.isMute,
83
+ isDegraded: track?.isDegraded,
84
+ type: track?.type,
74
85
  };
75
86
 
76
87
  return new HMSVideoTrack(encodedObj);
77
88
  }
78
89
 
79
- static encodeHmsAuxiliaryTracks(tracks: any) {
90
+ static encodeHmsAuxiliaryTracks(tracks: any, id: string) {
80
91
  const auxiliaryTracks: HMSTrack[] = [];
81
92
  tracks?.map((track: any) => {
82
- auxiliaryTracks.push(HMSEncoder.encodeHmsTrack(track));
93
+ auxiliaryTracks.push(HMSEncoder.encodeHmsTrack(track, id));
83
94
  });
84
95
  return auxiliaryTracks;
85
96
  }
86
97
 
87
- static encodeHmsTrack(track: any) {
98
+ static encodeHmsTrack(track: any, id: string) {
88
99
  const encodedObj = {
89
100
  trackId: track?.trackId,
90
101
  source: track?.source,
91
102
  trackDescription: track?.trackDescription,
92
103
  isMute: track?.isMute,
104
+ id: id,
105
+ type: track?.type,
93
106
  };
94
107
 
95
108
  return new HMSTrack(encodedObj);
96
109
  }
97
110
 
98
- static encodeHmsLocalPeer(peer: any) {
111
+ static encodeHmsLocalPeer(peer: any, id: string) {
99
112
  const encodedObj = {
100
113
  peerID: peer.peerID,
101
114
  name: peer.name,
102
115
  isLocal: peer.isLocal,
103
116
  customerUserID: peer.customerUserID,
104
117
  customerDescription: peer.customerDescription,
118
+ metadata: peer.metadata,
105
119
  role: HMSEncoder.encodeHmsRole(peer?.role),
106
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack),
107
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack),
120
+ audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
121
+ videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
108
122
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
109
- peer.auxiliaryTracks
123
+ peer.auxiliaryTracks,
124
+ id
110
125
  ),
111
126
  localAudioTrackData: {
127
+ id: id,
112
128
  trackId: peer?.localAudioTrackData?.trackId,
113
129
  source: peer?.localAudioTrackData?.source,
114
130
  trackDescription: peer?.localAudioTrackData?.trackDescription,
@@ -116,8 +132,10 @@ export class HMSEncoder {
116
132
  settings: HMSEncoder.encodeHmsAudioTrackSettings(
117
133
  peer?.localAudioTrackData?.settings
118
134
  ),
135
+ type: peer?.localAudioTrackData?.type,
119
136
  },
120
137
  localVideoTrackData: {
138
+ id: id,
121
139
  trackId: peer?.localVideoTrackData?.trackId,
122
140
  source: peer?.localVideoTrackData?.source,
123
141
  trackDescription: peer?.localVideoTrackData?.trackDescription,
@@ -125,6 +143,7 @@ export class HMSEncoder {
125
143
  settings: HMSEncoder.encodeHmsVideoTrackSettings(
126
144
  peer?.localVideoTrackData?.settings
127
145
  ),
146
+ type: peer?.localVideoTrackData?.type,
128
147
  },
129
148
  };
130
149
 
@@ -135,6 +154,7 @@ export class HMSEncoder {
135
154
  const encodedObj = {
136
155
  maxBitrate: settings?.maxBitrate,
137
156
  trackDescription: settings?.trackDescription,
157
+ codec: settings?.codec,
138
158
  };
139
159
 
140
160
  return new HMSAudioTrackSettings(encodedObj);
@@ -143,7 +163,7 @@ export class HMSEncoder {
143
163
  static encodeHmsVideoTrackSettings(settings: any) {
144
164
  const encodedObj = {
145
165
  codec: settings?.codec,
146
- resolution: settings?.resolution,
166
+ resolution: HMSEncoder.encodeHmsVideoResolution(settings?.resolution),
147
167
  maxBitrate: settings?.maxBitrate,
148
168
  maxFrameRate: settings?.maxFrameRate,
149
169
  cameraFacing: settings?.cameraFacing,
@@ -153,11 +173,20 @@ export class HMSEncoder {
153
173
  return new HMSVideoTrackSettings(encodedObj);
154
174
  }
155
175
 
156
- static encodeHmsRemotePeers(peers: any) {
176
+ static encodeHmsVideoResolution(resolution: any) {
177
+ const encodedObj = {
178
+ height: resolution?.height,
179
+ width: resolution?.width,
180
+ };
181
+
182
+ return new HMSVideoResolution(encodedObj);
183
+ }
184
+
185
+ static encodeHmsRemotePeers(peers: any, id: string) {
157
186
  const hmsPeers: any[] = [];
158
187
 
159
188
  peers.map((peer: any) => {
160
- const encodedPeer = HMSEncoder.encodeHmsRemotePeer(peer);
189
+ const encodedPeer = HMSEncoder.encodeHmsRemotePeer(peer, id);
161
190
 
162
191
  hmsPeers.push(encodedPeer);
163
192
  });
@@ -165,20 +194,23 @@ export class HMSEncoder {
165
194
  return hmsPeers;
166
195
  }
167
196
 
168
- static encodeHmsRemotePeer(peer: any) {
197
+ static encodeHmsRemotePeer(peer: any, id: string) {
169
198
  const encodedObj = {
170
199
  peerID: peer.peerID,
171
200
  name: peer.name,
172
201
  isLocal: peer.isLocal,
173
202
  customerUserID: peer.customerUserID,
174
203
  customerDescription: peer.customerDescription,
204
+ metadata: peer.metadata,
175
205
  role: HMSEncoder.encodeHmsRole(peer?.role),
176
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack),
177
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack),
206
+ audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
207
+ videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
178
208
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(
179
- peer.auxiliaryTracks
209
+ peer.auxiliaryTracks,
210
+ id
180
211
  ),
181
212
  remoteAudioTrackData: {
213
+ id: id,
182
214
  trackId: peer?.remoteAudioTrackData?.trackId,
183
215
  source: peer?.remoteAudioTrackData?.source,
184
216
  trackDescription: peer?.remoteAudioTrackData?.trackDescription,
@@ -186,6 +218,7 @@ export class HMSEncoder {
186
218
  playbackAllowed: peer?.remoteAudioTrackData?.playbackAllowed,
187
219
  },
188
220
  remoteVideoTrackData: {
221
+ id: id,
189
222
  trackId: peer?.remoteVideoTrackData?.trackId,
190
223
  source: peer?.remoteVideoTrackData?.source,
191
224
  trackDescription: peer?.remoteVideoTrackData?.trackDescription,
@@ -227,18 +260,21 @@ export class HMSEncoder {
227
260
  return hmsRole;
228
261
  }
229
262
 
230
- static encodeHmsRoleChangeRequest(data: any) {
263
+ static encodeHmsRoleChangeRequest(data: any, id: string) {
231
264
  const encodedRoleChangeRequest = {
232
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy),
265
+ requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
233
266
  suggestedRole: HMSEncoder.encodeHmsRole(data.suggestedRole),
234
267
  };
235
268
 
236
269
  return new HMSRoleChangeRequest(encodedRoleChangeRequest);
237
270
  }
238
271
 
239
- static encodeHmsChangeTrackStateRequest(data: HMSChangeTrackStateRequest) {
272
+ static encodeHmsChangeTrackStateRequest(
273
+ data: HMSChangeTrackStateRequest,
274
+ id: string
275
+ ) {
240
276
  const encodedChangeTrackStateRequest = {
241
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy),
277
+ requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
242
278
  trackType: data.trackType,
243
279
  };
244
280
 
@@ -0,0 +1,33 @@
1
+ export class HMSException {
2
+ public error: {
3
+ code: number;
4
+ description: string;
5
+ localizedDescription: string;
6
+ message: string;
7
+ name: string;
8
+ action: string;
9
+ };
10
+ public event: string;
11
+
12
+ constructor(params: {
13
+ error: {
14
+ code: number;
15
+ description: string;
16
+ localizedDescription: string;
17
+ message: string;
18
+ name: string;
19
+ action: string;
20
+ };
21
+ event: string;
22
+ }) {
23
+ this.error = {
24
+ code: params.error.code,
25
+ description: params.error.description,
26
+ localizedDescription: params.error.localizedDescription,
27
+ message: params.error.message,
28
+ name: params.error.name,
29
+ action: params.error.action,
30
+ };
31
+ this.event = params.event;
32
+ }
33
+ }
@@ -5,8 +5,8 @@ export class HMSHelper {
5
5
  let names: string[] = [];
6
6
 
7
7
  roles?.map((item: HMSRole) => {
8
- if (item.name) {
9
- names.push(item.name);
8
+ if (item?.name) {
9
+ names.push(item?.name);
10
10
  }
11
11
  });
12
12
 
@@ -1,6 +1,8 @@
1
- import { NativeModules } from 'react-native';
1
+ import { NativeModules, Platform } from 'react-native';
2
2
  import { HMSAudioTrack } from './HMSAudioTrack';
3
+ import { HMSSDK } from './HMSSDK';
3
4
  import type { HMSAudioTrackSettings } from './HMSAudioTrackSettings';
5
+ import type { HMSTrackType } from './HMSTrackType';
4
6
 
5
7
  const {
6
8
  /**
@@ -11,6 +13,7 @@ const {
11
13
 
12
14
  export class HMSLocalAudioTrack extends HMSAudioTrack {
13
15
  settings?: HMSAudioTrackSettings;
16
+ id: string;
14
17
 
15
18
  /**
16
19
  * Switches Audio of current user on/off depending upon the value of isMute
@@ -19,17 +22,47 @@ export class HMSLocalAudioTrack extends HMSAudioTrack {
19
22
  * @memberof HMSLocalAudioTrack
20
23
  */
21
24
  setMute(isMute: boolean) {
22
- HmsManager.setLocalMute(isMute);
25
+ const logger = HMSSDK.getLogger();
26
+ logger?.verbose('#Function setMute', {
27
+ trackId: this.trackId,
28
+ id: this.id,
29
+ source: this.source,
30
+ type: this.type,
31
+ isMute,
32
+ });
33
+ HmsManager.setLocalMute({ isMute, id: this.id });
23
34
  }
24
35
 
36
+ getVolume = async () => {
37
+ const logger = HMSSDK.getLogger();
38
+ logger?.verbose('#Function getVolume', {
39
+ trackId: this.trackId,
40
+ id: this.id,
41
+ source: this.source,
42
+ type: this.type,
43
+ });
44
+ if (Platform.OS === 'ios') {
45
+ return 'This API not available for IOS';
46
+ }
47
+ const volume = await HmsManager.getVolume({
48
+ trackId: this.trackId,
49
+ id: this.id,
50
+ });
51
+
52
+ return volume;
53
+ };
54
+
25
55
  constructor(params: {
56
+ id: string;
26
57
  trackId: string;
27
58
  source?: number | string;
28
59
  trackDescription?: string;
29
60
  isMute?: boolean;
30
61
  settings?: HMSAudioTrackSettings;
62
+ type?: HMSTrackType;
31
63
  }) {
32
64
  super(params);
65
+ this.id = params.id;
33
66
  this.settings = params.settings;
34
67
  }
35
68
  }
@@ -7,6 +7,7 @@ import type { HMSAudioTrackSettings } from './HMSAudioTrackSettings';
7
7
  import { HMSLocalAudioTrack } from './HMSLocalAudioTrack';
8
8
  import { HMSLocalVideoTrack } from './HMSLocalVideoTrack';
9
9
  import type { HMSRole } from './HMSRole';
10
+ import type { HMSTrackType } from './HMSTrackType';
10
11
 
11
12
  export class HMSLocalPeer extends HMSPeer {
12
13
  private localAudio?: HMSLocalAudioTrack;
@@ -25,23 +26,28 @@ export class HMSLocalPeer extends HMSPeer {
25
26
  isLocal?: boolean;
26
27
  customerUserID?: string;
27
28
  customerDescription?: string;
29
+ metadata?: string;
28
30
  audioTrack?: HMSAudioTrack;
29
31
  videoTrack?: HMSVideoTrack;
30
32
  role?: HMSRole;
31
33
  auxiliaryTracks?: HMSTrack[];
32
34
  localAudioTrackData?: {
35
+ id: string;
33
36
  trackId: string;
34
37
  source?: number | string;
35
38
  trackDescription?: string;
36
39
  isMute?: boolean;
37
40
  settings?: HMSAudioTrackSettings;
41
+ type: HMSTrackType;
38
42
  };
39
43
  localVideoTrackData?: {
44
+ id: string;
40
45
  trackId: string;
41
46
  source?: number | string;
42
47
  trackDescription?: string;
43
48
  isMute?: boolean;
44
49
  settings?: HMSVideoTrackSettings;
50
+ type: HMSTrackType;
45
51
  };
46
52
  }) {
47
53
  super(params);
@@ -1,6 +1,8 @@
1
1
  import { NativeModules } from 'react-native';
2
2
  import { HMSVideoTrack } from './HMSVideoTrack';
3
+ import { HMSSDK } from './HMSSDK';
3
4
  import type { HMSVideoTrackSettings } from './HMSVideoTrackSettings';
5
+ import type { HMSTrackType } from './HMSTrackType';
4
6
 
5
7
  const {
6
8
  /**
@@ -13,6 +15,7 @@ export class HMSLocalVideoTrack extends HMSVideoTrack {
13
15
  settings?: HMSVideoTrackSettings;
14
16
  startCapturing?: Function;
15
17
  stopCapturing?: Function;
18
+ id: string;
16
19
 
17
20
  /**
18
21
  * switches camera between front/back
@@ -20,7 +23,14 @@ export class HMSLocalVideoTrack extends HMSVideoTrack {
20
23
  * @memberof HMSSDK
21
24
  */
22
25
  switchCamera = () => {
23
- HmsManager.switchCamera();
26
+ const logger = HMSSDK.getLogger();
27
+ logger?.verbose('#Function switchCamera', {
28
+ trackId: this.trackId,
29
+ source: this.source,
30
+ type: this.type,
31
+ id: this.id,
32
+ });
33
+ HmsManager.switchCamera({ id: this.id });
24
34
  };
25
35
 
26
36
  /**
@@ -30,17 +40,27 @@ export class HMSLocalVideoTrack extends HMSVideoTrack {
30
40
  * @memberof HMSLocalVideoTrack
31
41
  */
32
42
  setMute(isMute: boolean) {
33
- HmsManager.setLocalVideoMute(isMute);
43
+ const logger = HMSSDK.getLogger();
44
+ logger?.verbose('#Function setMute', {
45
+ trackId: this.trackId,
46
+ source: this.source,
47
+ type: this.type,
48
+ id: this.id,
49
+ });
50
+ HmsManager.setLocalVideoMute({ isMute, id: this.id });
34
51
  }
35
52
 
36
53
  constructor(params: {
54
+ id: string;
37
55
  trackId: string;
38
56
  source?: number | string;
39
57
  trackDescription?: string;
40
58
  isMute?: boolean;
41
59
  settings?: HMSVideoTrackSettings;
60
+ type?: HMSTrackType;
42
61
  }) {
43
62
  super(params);
44
63
  this.settings = params.settings;
64
+ this.id = params.id;
45
65
  }
46
66
  }
@@ -1,11 +1,17 @@
1
1
  import { HMSLogLevel } from './HMSLogLevel';
2
2
 
3
3
  export class HMSLogger {
4
- private _verbose: Boolean = false;
5
- private _warning: Boolean = false;
6
- private _error: Boolean = false;
4
+ private _verbose: boolean = false;
5
+ private _warning: boolean = false;
6
+ private _error: boolean = false;
7
+ private logs: {
8
+ type: 'verbose' | 'warn' | 'error';
9
+ message: string;
10
+ data: any;
11
+ id: string;
12
+ }[] = [];
7
13
 
8
- constructor(params?: { verbose: Boolean; warning: Boolean; error: Boolean }) {
14
+ constructor(params?: { verbose: boolean; warning: boolean; error: boolean }) {
9
15
  if (params) {
10
16
  this._verbose = params.verbose;
11
17
  this._warning = params.warning;
@@ -14,24 +20,31 @@ export class HMSLogger {
14
20
  }
15
21
 
16
22
  verbose(message: string, data: any) {
17
- if (this._verbose === true) {
23
+ if (this._verbose) {
18
24
  console.log(message, data);
19
25
  }
26
+ this.logs.push({ type: 'verbose', message, data, id: data?.id });
20
27
  }
21
28
 
22
29
  warn(message: string, data: any) {
23
30
  if (this._warning) {
24
31
  console.warn(message, data);
25
32
  }
33
+ this.logs.push({ type: 'warn', message, data, id: data?.id });
26
34
  }
27
35
 
28
36
  error(message: string, data: any) {
29
37
  if (this._error) {
30
38
  console.error(message, data);
31
39
  }
40
+ this.logs.push({ type: 'error', message, data, id: data?.id });
32
41
  }
33
42
 
34
- updateLogLevel(level: HMSLogLevel, value: Boolean) {
43
+ getLogs() {
44
+ return this.logs;
45
+ }
46
+
47
+ updateLogLevel(level: HMSLogLevel, value: boolean) {
35
48
  switch (level) {
36
49
  case HMSLogLevel.VERBOSE: {
37
50
  this._verbose = value;
@@ -9,6 +9,7 @@ export class HMSPeer {
9
9
  isLocal?: boolean;
10
10
  customerUserID?: string;
11
11
  customerDescription?: string;
12
+ metadata?: string;
12
13
  role?: HMSRole;
13
14
 
14
15
  audioTrack?: HMSAudioTrack;
@@ -22,6 +23,7 @@ export class HMSPeer {
22
23
  isLocal?: boolean;
23
24
  customerUserID?: string;
24
25
  customerDescription?: string;
26
+ metadata?: string;
25
27
  role?: HMSRole;
26
28
  audioTrack?: HMSAudioTrack;
27
29
  videoTrack?: HMSVideoTrack;
@@ -36,5 +38,6 @@ export class HMSPeer {
36
38
  this.videoTrack = params.videoTrack;
37
39
  this.auxiliaryTracks = params.auxiliaryTracks;
38
40
  this.role = params.role;
41
+ this.metadata = params.metadata;
39
42
  }
40
43
  }
@@ -3,6 +3,7 @@ export enum HMSPeerUpdate {
3
3
  PEER_LEFT = 'PEER_LEFT',
4
4
  AUDIO_TOGGLED = 'AUDIO_TOGGLED',
5
5
  VIDEO_TOGGLED = 'VIDEO_TOGGLED',
6
+ METADATA_CHANGED = 'METADATA_CHANGED',
6
7
  BECAME_DOMINANT_SPEAKER = 'BECAME_DOMINANT_SPEAKER',
7
8
  NO_DOMINANT_SPEAKER = 'NO_DOMINANT_SPEAKER',
8
9
  RESIGNED_DOMINANT_SPEAKER = 'RESIGNED_DOMINANT_SPEAKER',
@@ -4,6 +4,8 @@ export class HMSPermissions {
4
4
  unmute?: boolean;
5
5
  mute?: boolean;
6
6
  changeRole?: boolean;
7
+ recording?: boolean;
8
+ rtmp?: boolean;
7
9
 
8
10
  constructor(params?: {
9
11
  endRoom?: boolean;
@@ -11,6 +13,8 @@ export class HMSPermissions {
11
13
  unmute?: boolean;
12
14
  mute?: boolean;
13
15
  changeRole?: boolean;
16
+ recording?: boolean;
17
+ rtmp?: boolean;
14
18
  }) {
15
19
  if (params) {
16
20
  this.endRoom = params.endRoom;
@@ -18,6 +22,8 @@ export class HMSPermissions {
18
22
  this.unmute = params.unmute;
19
23
  this.mute = params.mute;
20
24
  this.changeRole = params.changeRole;
25
+ this.recording = params.recording;
26
+ this.rtmp = params.rtmp;
21
27
  }
22
28
  }
23
29
  }
@@ -0,0 +1,15 @@
1
+ export class HMSRTMPConfig {
2
+ meetingURL: string;
3
+ rtmpURLs?: Array<string>;
4
+ record: boolean;
5
+
6
+ constructor(params: {
7
+ meetingURL: string;
8
+ rtmpURLs?: Array<string>;
9
+ record: boolean;
10
+ }) {
11
+ this.meetingURL = params.meetingURL;
12
+ this.rtmpURLs = params.rtmpURLs;
13
+ this.record = params.record;
14
+ }
15
+ }
@@ -1,4 +1,6 @@
1
1
  import { NativeModules } from 'react-native';
2
+ import { HMSSDK } from './HMSSDK';
3
+ import type { HMSTrackType } from './HMSTrackType';
2
4
  import { HMSAudioTrack } from './HMSAudioTrack';
3
5
 
4
6
  const {
@@ -16,12 +18,34 @@ export class HMSRemoteAudioTrack extends HMSAudioTrack {
16
18
  * @memberof HMSRemoteAudioTrack
17
19
  */
18
20
  setPlaybackAllowed(playbackAllowed: boolean) {
19
- HmsManager.setPlaybackAllowed({ trackId: this.trackId, playbackAllowed });
21
+ const logger = HMSSDK.getLogger();
22
+ logger?.verbose('#Function setPlaybackAllowed', {
23
+ trackId: this.trackId,
24
+ id: this.id,
25
+ source: this.source,
26
+ type: this.type,
27
+ playbackAllowed,
28
+ });
29
+ HmsManager.setPlaybackAllowed({
30
+ id: this.id,
31
+ trackId: this.trackId,
32
+ playbackAllowed,
33
+ });
20
34
  }
21
35
 
22
36
  isPlaybackAllowed = async () => {
23
37
  try {
24
- const val = await HmsManager.isPlaybackAllowed({ trackId: this.trackId });
38
+ const logger = HMSSDK.getLogger();
39
+ logger?.verbose('#Function isPlaybackAllowed', {
40
+ trackId: this.trackId,
41
+ id: this.id,
42
+ source: this.source,
43
+ type: this.type,
44
+ });
45
+ const val = await HmsManager.isPlaybackAllowed({
46
+ id: this.id,
47
+ trackId: this.trackId,
48
+ });
25
49
  return val;
26
50
  } catch (e) {
27
51
  return true;
@@ -33,6 +57,9 @@ export class HMSRemoteAudioTrack extends HMSAudioTrack {
33
57
  source?: number | string;
34
58
  isMute?: boolean;
35
59
  trackDescription?: string;
60
+ playbackAllowed?: boolean;
61
+ id: string;
62
+ type?: HMSTrackType;
36
63
  }) {
37
64
  super(params);
38
65
  }
@@ -24,6 +24,7 @@ export class HMSRemotePeer extends HMSPeer {
24
24
  isLocal?: boolean;
25
25
  customerUserID?: string;
26
26
  customerDescription?: string;
27
+ metadata?: string;
27
28
  audioTrack?: HMSAudioTrack;
28
29
  videoTrack?: HMSVideoTrack;
29
30
  role?: HMSRole;
@@ -34,6 +35,7 @@ export class HMSRemotePeer extends HMSPeer {
34
35
  isMute?: boolean;
35
36
  trackDescription?: string;
36
37
  playbackAllowed?: boolean;
38
+ id: string;
37
39
  };
38
40
  remoteVideoTrackData?: {
39
41
  trackId: string;
@@ -42,6 +44,7 @@ export class HMSRemotePeer extends HMSPeer {
42
44
  isMute?: boolean;
43
45
  layer?: any;
44
46
  playbackAllowed?: boolean;
47
+ id: string;
45
48
  };
46
49
  }) {
47
50
  super(params);