@100mslive/react-native-hms 1.2.0 → 1.4.0
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.
- package/README.md +61 -7
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +121 -53
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +21 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +177 -31
- package/ios/HMSDecoder.swift +113 -50
- package/ios/HMSManager.m +5 -0
- package/ios/HMSManager.swift +22 -1
- package/ios/HMSRNSDK.swift +157 -26
- package/ios/HMSView.swift +1 -1
- package/lib/commonjs/classes/HMSAudioCodec.js +4 -4
- package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioDevice.js +4 -4
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMixingMode.js +4 -4
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMode.js +4 -4
- package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioNode.js +2 -1
- package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioTrackSettings.js +1 -1
- package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSCameraFacing.js +4 -4
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSConstants.js +11 -0
- package/lib/commonjs/classes/HMSConstants.js.map +1 -0
- package/lib/commonjs/classes/HMSEncoder.js +21 -43
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +3 -4
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
- package/lib/commonjs/classes/HMSHelper.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js +0 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +5 -6
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogAlarmManager.js +4 -4
- package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
- package/lib/commonjs/classes/HMSLogLevel.js +4 -4
- package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
- package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +17 -25
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSMessage.js +1 -2
- package/lib/commonjs/classes/HMSMessage.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageRecipientType.js +4 -4
- package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageType.js +4 -4
- package/lib/commonjs/classes/HMSMessageType.js.map +1 -1
- package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
- package/lib/commonjs/classes/HMSNativeEventEmitter.js +0 -5
- package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
- package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
- package/lib/commonjs/classes/HMSPIPListenerActions.js +4 -4
- package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +68 -22
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +7 -5
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js +229 -0
- package/lib/commonjs/classes/HMSPeersCache.js.map +1 -0
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
- package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemotePeer.js +0 -1
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +0 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRole.js.map +1 -1
- package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +79 -22
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomCache.js +128 -0
- package/lib/commonjs/classes/HMSRoomCache.js.map +1 -0
- package/lib/commonjs/classes/HMSRoomUpdate.js +4 -4
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +501 -33
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
- package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js +4 -4
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSource.js +4 -4
- package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackType.js +4 -4
- package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackUpdate.js +4 -4
- package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -5
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoViewMode.js +4 -4
- package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +2 -1
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioCodec.js +3 -3
- package/lib/module/classes/HMSAudioCodec.js.map +1 -1
- package/lib/module/classes/HMSAudioDevice.js +3 -3
- package/lib/module/classes/HMSAudioDevice.js.map +1 -1
- package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
- package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
- package/lib/module/classes/HMSAudioMixingMode.js +3 -3
- package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
- package/lib/module/classes/HMSAudioMode.js +3 -3
- package/lib/module/classes/HMSAudioMode.js.map +1 -1
- package/lib/module/classes/HMSAudioNode.js +2 -1
- package/lib/module/classes/HMSAudioNode.js.map +1 -1
- package/lib/module/classes/HMSAudioSettings.js.map +1 -1
- package/lib/module/classes/HMSAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSAudioTrackSettings.js +1 -1
- package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
- package/lib/module/classes/HMSCameraFacing.js +3 -3
- package/lib/module/classes/HMSCameraFacing.js.map +1 -1
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSConstants.js +4 -0
- package/lib/module/classes/HMSConstants.js.map +1 -0
- package/lib/module/classes/HMSEncoder.js +21 -43
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +3 -4
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js.map +1 -1
- package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
- package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
- package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
- package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
- package/lib/module/classes/HMSHLSVariant.js.map +1 -1
- package/lib/module/classes/HMSHelper.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js +0 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +5 -6
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSLogAlarmManager.js +3 -3
- package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
- package/lib/module/classes/HMSLogLevel.js +3 -3
- package/lib/module/classes/HMSLogLevel.js.map +1 -1
- package/lib/module/classes/HMSLogSettings.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +17 -25
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSMessage.js +1 -2
- package/lib/module/classes/HMSMessage.js.map +1 -1
- package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
- package/lib/module/classes/HMSMessageRecipientType.js +3 -3
- package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
- package/lib/module/classes/HMSMessageType.js +3 -3
- package/lib/module/classes/HMSMessageType.js.map +1 -1
- package/lib/module/classes/HMSMicNode.js.map +1 -1
- package/lib/module/classes/HMSNativeEventEmitter.js +1 -6
- package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -1
- package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
- package/lib/module/classes/HMSPIPListenerActions.js +3 -3
- package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +68 -22
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +4 -3
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPeersCache.js +216 -0
- package/lib/module/classes/HMSPeersCache.js.map +1 -0
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSPublishSettings.js.map +1 -1
- package/lib/module/classes/HMSRTCStats.js.map +1 -1
- package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemotePeer.js +0 -1
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +0 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRole.js.map +1 -1
- package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +79 -22
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRoomCache.js +115 -0
- package/lib/module/classes/HMSRoomCache.js.map +1 -0
- package/lib/module/classes/HMSRoomUpdate.js +3 -3
- package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
- package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +501 -33
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
- package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
- package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
- package/lib/module/classes/HMSSpeaker.js.map +1 -1
- package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
- package/lib/module/classes/HMSTrack.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSTrackSettingsInitState.js +3 -3
- package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
- package/lib/module/classes/HMSTrackSource.js +3 -3
- package/lib/module/classes/HMSTrackSource.js.map +1 -1
- package/lib/module/classes/HMSTrackType.js +3 -3
- package/lib/module/classes/HMSTrackType.js.map +1 -1
- package/lib/module/classes/HMSTrackUpdate.js +3 -3
- package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +4 -4
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/classes/HMSVideoCodec.js +3 -3
- package/lib/module/classes/HMSVideoCodec.js.map +1 -1
- package/lib/module/classes/HMSVideoResolution.js.map +1 -1
- package/lib/module/classes/HMSVideoSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoViewMode.js +3 -3
- package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
- package/lib/module/classes/HmsView.js +2 -1
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/typescript/classes/HMSConstants.d.ts +3 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +7 -6
- package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -14
- package/lib/typescript/classes/HMSLogger.d.ts +1 -7
- package/lib/typescript/classes/HMSPeer.d.ts +12 -18
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
- package/lib/typescript/classes/HMSPeersCache.d.ts +17 -0
- package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -14
- package/lib/typescript/classes/HMSRoom.d.ts +11 -22
- package/lib/typescript/classes/HMSRoomCache.d.ts +16 -0
- package/lib/typescript/classes/HMSSDK.d.ts +20 -12
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +1 -1
- package/package.json +2 -2
- package/sdk-versions.json +3 -3
- package/src/classes/HMSAudioNode.ts +3 -1
- package/src/classes/HMSConstants.ts +3 -0
- package/src/classes/HMSEncoder.ts +24 -69
- package/src/classes/HMSLocalPeer.ts +0 -15
- package/src/classes/HMSLogger.ts +20 -19
- package/src/classes/HMSNativeEventEmitter.ts +35 -12
- package/src/classes/HMSPeer.ts +133 -34
- package/src/classes/HMSPeerUpdate.ts +9 -0
- package/src/classes/HMSPeersCache.ts +252 -0
- package/src/classes/HMSRemotePeer.ts +0 -16
- package/src/classes/HMSRoom.ts +141 -37
- package/src/classes/HMSRoomCache.ts +157 -0
- package/src/classes/HMSSDK.tsx +102 -43
- package/src/classes/HMSUpdateListenerActions.ts +1 -1
- package/src/classes/HmsView.tsx +2 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import type { HMSRoom } from './HMSRoom';
|
|
3
|
+
import { HMSEncoder } from './HMSEncoder';
|
|
4
|
+
import { HMSRoomUpdate } from './HMSRoomUpdate';
|
|
5
|
+
|
|
6
|
+
const { HMSManager } = NativeModules;
|
|
7
|
+
|
|
8
|
+
export let hmsRoomCache: HMSRoomCache | undefined;
|
|
9
|
+
|
|
10
|
+
export const getHmsRoomCache = () => hmsRoomCache;
|
|
11
|
+
|
|
12
|
+
export const setHmsRoomCache = (_hmsRoomCache: HMSRoomCache) => {
|
|
13
|
+
hmsRoomCache = _hmsRoomCache;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const clearHmsRoomCache = () => {
|
|
17
|
+
if (hmsRoomCache) {
|
|
18
|
+
hmsRoomCache.cleanup();
|
|
19
|
+
}
|
|
20
|
+
hmsRoomCache = undefined;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export type HMSRoomCacheProps = Partial<Omit<HMSRoom, 'id'>>;
|
|
24
|
+
|
|
25
|
+
export class HMSRoomCache {
|
|
26
|
+
private _data = new Map<
|
|
27
|
+
keyof HMSRoomCacheProps,
|
|
28
|
+
HMSRoomCacheProps[keyof HMSRoomCacheProps]
|
|
29
|
+
>();
|
|
30
|
+
private id: string;
|
|
31
|
+
|
|
32
|
+
constructor(id: string) {
|
|
33
|
+
this.id = id;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getProperty<T extends keyof Required<HMSRoomCacheProps>>(
|
|
37
|
+
property: T
|
|
38
|
+
): Required<HMSRoomCacheProps>[T] {
|
|
39
|
+
const value: any = this._data.get(property);
|
|
40
|
+
|
|
41
|
+
if (value) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const encodedValue = getHMSRoomPropertyFromNative(this.id, property);
|
|
46
|
+
|
|
47
|
+
this._data.set(property, encodedValue);
|
|
48
|
+
|
|
49
|
+
return encodedValue;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
updateRoomCache(
|
|
53
|
+
data: Record<keyof HMSRoomCacheProps, any>,
|
|
54
|
+
updateType?: HMSRoomUpdate
|
|
55
|
+
) {
|
|
56
|
+
switch (updateType) {
|
|
57
|
+
case HMSRoomUpdate.ROOM_MUTED:
|
|
58
|
+
case HMSRoomUpdate.ROOM_UNMUTED: {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED: {
|
|
62
|
+
this._data.set(
|
|
63
|
+
'serverRecordingState',
|
|
64
|
+
HMSEncoder.encodeServerRecordingState(data.serverRecordingState)
|
|
65
|
+
);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED: {
|
|
69
|
+
this._data.set(
|
|
70
|
+
'rtmpHMSRtmpStreamingState',
|
|
71
|
+
HMSEncoder.encodeRTMPStreamingState(data.rtmpHMSRtmpStreamingState)
|
|
72
|
+
);
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED: {
|
|
76
|
+
this._data.set(
|
|
77
|
+
'browserRecordingState',
|
|
78
|
+
HMSEncoder.encodeBrowserRecordingState(data.browserRecordingState)
|
|
79
|
+
);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED: {
|
|
83
|
+
this._data.set(
|
|
84
|
+
'hlsStreamingState',
|
|
85
|
+
HMSEncoder.encodeHLSStreamingState(data.hlsStreamingState)
|
|
86
|
+
);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case HMSRoomUpdate.HLS_RECORDING_STATE_UPDATED: {
|
|
90
|
+
this._data.set(
|
|
91
|
+
'hlsRecordingState',
|
|
92
|
+
HMSEncoder.encodeHLSRecordingState(data.hlsRecordingState)
|
|
93
|
+
);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
default: {
|
|
97
|
+
for (const key in data) {
|
|
98
|
+
const property = key as keyof HMSRoomCacheProps;
|
|
99
|
+
|
|
100
|
+
if (Object.prototype.hasOwnProperty.call(data, property)) {
|
|
101
|
+
const value = encodeHMSRoomProperty(this.id, property, data);
|
|
102
|
+
this._data.set(property, value);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
cleanup() {
|
|
111
|
+
this._data.clear();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function getHMSRoomPropertyFromNative<T extends keyof HMSRoomCacheProps>(
|
|
116
|
+
id: string,
|
|
117
|
+
property: T
|
|
118
|
+
): Required<HMSRoomCacheProps>[T] {
|
|
119
|
+
const data: any = HMSManager.getRoomProperty({
|
|
120
|
+
id,
|
|
121
|
+
property,
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
if (!data) return data;
|
|
125
|
+
|
|
126
|
+
const value = encodeHMSRoomProperty(id, property, data);
|
|
127
|
+
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function encodeHMSRoomProperty<T extends keyof HMSRoomCacheProps>(
|
|
132
|
+
id: string,
|
|
133
|
+
property: T,
|
|
134
|
+
data: Record<string, any>
|
|
135
|
+
): Required<HMSRoomCacheProps>[T] {
|
|
136
|
+
let value;
|
|
137
|
+
|
|
138
|
+
if (property === 'peers') {
|
|
139
|
+
value = HMSEncoder.encodeHmsPeers(data.peers);
|
|
140
|
+
} else if (property === 'browserRecordingState') {
|
|
141
|
+
value = HMSEncoder.encodeBrowserRecordingState(data.browserRecordingState);
|
|
142
|
+
} else if (property === 'rtmpHMSRtmpStreamingState') {
|
|
143
|
+
value = HMSEncoder.encodeRTMPStreamingState(data.rtmpHMSRtmpStreamingState);
|
|
144
|
+
} else if (property === 'serverRecordingState') {
|
|
145
|
+
value = HMSEncoder.encodeServerRecordingState(data.serverRecordingState);
|
|
146
|
+
} else if (property === 'hlsStreamingState') {
|
|
147
|
+
value = HMSEncoder.encodeHLSStreamingState(data.hlsStreamingState);
|
|
148
|
+
} else if (property === 'hlsRecordingState') {
|
|
149
|
+
value = HMSEncoder.encodeHLSRecordingState(data.hlsRecordingState);
|
|
150
|
+
} else if (property === 'localPeer') {
|
|
151
|
+
value = HMSEncoder.encodeHmsLocalPeer(data.localPeer, id);
|
|
152
|
+
} else {
|
|
153
|
+
value = data[property];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return value;
|
|
157
|
+
}
|
package/src/classes/HMSSDK.tsx
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
AppState,
|
|
4
|
-
NativeModules,
|
|
5
|
-
Platform,
|
|
6
|
-
ViewStyle,
|
|
7
|
-
} from 'react-native';
|
|
2
|
+
import { AppState, NativeModules, Platform, ViewStyle } from 'react-native';
|
|
8
3
|
import { HMSEncoder } from './HMSEncoder';
|
|
9
4
|
import { HMSHelper } from './HMSHelper';
|
|
10
5
|
import { HMSLocalAudioStats } from './HMSLocalAudioStats';
|
|
@@ -34,7 +29,23 @@ import type { HMSAudioMixingMode } from './HMSAudioMixingMode';
|
|
|
34
29
|
import type { HMSLogSettings } from './HMSLogSettings';
|
|
35
30
|
import { HMSMessageType } from './HMSMessageType';
|
|
36
31
|
import { HMSPIPListenerActions } from './HMSPIPListenerActions';
|
|
37
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
type HMSEventSubscription,
|
|
34
|
+
HMSNativeEventEmitter,
|
|
35
|
+
} from './HMSNativeEventEmitter';
|
|
36
|
+
import {
|
|
37
|
+
clearHmsPeersCache,
|
|
38
|
+
getHmsPeersCache,
|
|
39
|
+
HMSPeersCache,
|
|
40
|
+
setHmsPeersCache,
|
|
41
|
+
} from './HMSPeersCache';
|
|
42
|
+
import {
|
|
43
|
+
clearHmsRoomCache,
|
|
44
|
+
getHmsRoomCache,
|
|
45
|
+
HMSRoomCache,
|
|
46
|
+
setHmsRoomCache,
|
|
47
|
+
} from './HMSRoomCache';
|
|
48
|
+
import { HMSPeerUpdateOrdinals } from './HMSPeerUpdate';
|
|
38
49
|
|
|
39
50
|
interface HmsViewProps {
|
|
40
51
|
trackId: string;
|
|
@@ -68,7 +79,6 @@ export class HMSSDK {
|
|
|
68
79
|
id: string;
|
|
69
80
|
private muteStatus: boolean | undefined;
|
|
70
81
|
private appStateSubscription?: any;
|
|
71
|
-
|
|
72
82
|
private onPreviewDelegate?: any;
|
|
73
83
|
private onJoinDelegate?: any;
|
|
74
84
|
private onRoomDelegate?: any;
|
|
@@ -140,24 +150,6 @@ export class HMSSDK {
|
|
|
140
150
|
return HmsSdk;
|
|
141
151
|
}
|
|
142
152
|
|
|
143
|
-
/**
|
|
144
|
-
* - Returns the instance of logger which can be used to manipulate log levels.
|
|
145
|
-
* @returns @instance HMSLogger
|
|
146
|
-
* @memberof HMSSDK
|
|
147
|
-
*/
|
|
148
|
-
static getLogger() {
|
|
149
|
-
return getLogger();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* - Updates the logger for this instance of HMSSDK
|
|
154
|
-
* @param {HMSLogger} hmsLogger
|
|
155
|
-
* @memberof HMSSDK
|
|
156
|
-
*/
|
|
157
|
-
setLogger = (hmsLogger?: HMSLogger) => {
|
|
158
|
-
setLogger(this.id, hmsLogger);
|
|
159
|
-
};
|
|
160
|
-
|
|
161
153
|
/**
|
|
162
154
|
* - Calls removeListeners that in turn breaks all connections with native listeners.
|
|
163
155
|
*
|
|
@@ -165,10 +157,39 @@ export class HMSSDK {
|
|
|
165
157
|
*/
|
|
166
158
|
destroy = async () => {
|
|
167
159
|
logger?.verbose('#Function destroy', { id: this.id });
|
|
160
|
+
clearHmsPeersCache();
|
|
161
|
+
clearHmsRoomCache();
|
|
168
162
|
this.removeAllListeners();
|
|
169
163
|
return await HMSManager.destroy({ id: this.id });
|
|
170
164
|
};
|
|
171
165
|
|
|
166
|
+
/**
|
|
167
|
+
* - getAuthTokenByRoomCode function is used to get the Auth Token by Room Code
|
|
168
|
+
*
|
|
169
|
+
* checkout {@link https://www.100ms.live/docs/concepts/v2/concepts/rooms/room-codes/room-codes} for more info
|
|
170
|
+
*
|
|
171
|
+
* @memberof HMSSDK
|
|
172
|
+
*/
|
|
173
|
+
getAuthTokenByRoomCode = async (
|
|
174
|
+
roomCode: string,
|
|
175
|
+
userId?: string,
|
|
176
|
+
endpoint?: string
|
|
177
|
+
): Promise<string> => {
|
|
178
|
+
logger?.verbose('#Function getAuthTokenByRoomCode', {
|
|
179
|
+
id: this.id,
|
|
180
|
+
roomCode,
|
|
181
|
+
userId,
|
|
182
|
+
endpoint,
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
return HMSManager.getAuthTokenByRoomCode({
|
|
186
|
+
id: this.id,
|
|
187
|
+
roomCode,
|
|
188
|
+
userId,
|
|
189
|
+
endpoint,
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
|
|
172
193
|
/**
|
|
173
194
|
* takes an instance of [HMSConfig]{@link HMSConfig} and joins the room.
|
|
174
195
|
* after joining the room user will start receiving the events and updates of the room.
|
|
@@ -181,6 +202,8 @@ export class HMSSDK {
|
|
|
181
202
|
join = async (config: HMSConfig) => {
|
|
182
203
|
logger?.verbose('#Function join', { config, id: this.id });
|
|
183
204
|
this.addAppStateListener();
|
|
205
|
+
setHmsPeersCache(new HMSPeersCache(this.id));
|
|
206
|
+
setHmsRoomCache(new HMSRoomCache(this.id));
|
|
184
207
|
await HMSManager.join({ ...config, id: this.id });
|
|
185
208
|
};
|
|
186
209
|
|
|
@@ -251,6 +274,8 @@ export class HMSSDK {
|
|
|
251
274
|
roomLeaveCleanup = () => {
|
|
252
275
|
this.muteStatus = undefined;
|
|
253
276
|
this?.appStateSubscription?.remove();
|
|
277
|
+
clearHmsPeersCache();
|
|
278
|
+
clearHmsRoomCache();
|
|
254
279
|
HMSEncoder.clearData(); // Clearing cached data in encoder
|
|
255
280
|
};
|
|
256
281
|
|
|
@@ -680,6 +705,8 @@ export class HMSSDK {
|
|
|
680
705
|
});
|
|
681
706
|
const hmsRoom = await HMSManager.getRoom({ id: this.id });
|
|
682
707
|
|
|
708
|
+
getHmsRoomCache()?.updateRoomCache(hmsRoom);
|
|
709
|
+
|
|
683
710
|
const encodedHmsRoom = HMSEncoder.encodeHmsRoom(hmsRoom, this.id);
|
|
684
711
|
return encodedHmsRoom;
|
|
685
712
|
};
|
|
@@ -1881,6 +1908,8 @@ export class HMSSDK {
|
|
|
1881
1908
|
const room: HMSRoom = HMSEncoder.encodeHmsRoom(data.room, this.id);
|
|
1882
1909
|
const type = data.type;
|
|
1883
1910
|
|
|
1911
|
+
getHmsRoomCache()?.updateRoomCache(data.room, data.type);
|
|
1912
|
+
|
|
1884
1913
|
if (this.onRoomDelegate) {
|
|
1885
1914
|
logger?.verbose('#Listener ON_ROOM_LISTENER_CALL', {
|
|
1886
1915
|
room,
|
|
@@ -1890,12 +1919,24 @@ export class HMSSDK {
|
|
|
1890
1919
|
}
|
|
1891
1920
|
};
|
|
1892
1921
|
|
|
1893
|
-
onPeerListener = (
|
|
1894
|
-
|
|
1895
|
-
|
|
1922
|
+
onPeerListener = (peerData: any) => {
|
|
1923
|
+
const data: { peer: any; type: any } = {
|
|
1924
|
+
peer: peerData,
|
|
1925
|
+
type: null,
|
|
1926
|
+
};
|
|
1927
|
+
|
|
1928
|
+
for (const ordinal of HMSPeerUpdateOrdinals.keys()) {
|
|
1929
|
+
if (ordinal in peerData) {
|
|
1930
|
+
data.peer.peerID = peerData[ordinal];
|
|
1931
|
+
data.type = ordinal;
|
|
1932
|
+
break;
|
|
1933
|
+
}
|
|
1896
1934
|
}
|
|
1897
|
-
|
|
1898
|
-
const
|
|
1935
|
+
|
|
1936
|
+
const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
1937
|
+
const type = HMSEncoder.encodeHmsPeerUpdate(data.type) || data.type;
|
|
1938
|
+
|
|
1939
|
+
getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);
|
|
1899
1940
|
|
|
1900
1941
|
if (this.onPeerDelegate) {
|
|
1901
1942
|
logger?.verbose('#Listener ON_PEER_LISTENER_CALL', {
|
|
@@ -1911,9 +1952,11 @@ export class HMSSDK {
|
|
|
1911
1952
|
return;
|
|
1912
1953
|
}
|
|
1913
1954
|
const track: HMSTrack = HMSEncoder.encodeHmsTrack(data.track, this.id);
|
|
1914
|
-
const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer
|
|
1955
|
+
const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
1915
1956
|
const type = data.type;
|
|
1916
1957
|
|
|
1958
|
+
getHmsPeersCache()?.updatePeerCache(data.peer.peerID, { track }, data.type);
|
|
1959
|
+
|
|
1917
1960
|
if (
|
|
1918
1961
|
this.muteStatus &&
|
|
1919
1962
|
data?.type === 'TRACK_ADDED' &&
|
|
@@ -1940,7 +1983,7 @@ export class HMSSDK {
|
|
|
1940
1983
|
if (data.id !== this.id) {
|
|
1941
1984
|
return;
|
|
1942
1985
|
}
|
|
1943
|
-
const message = HMSEncoder.encodeHMSMessage(data
|
|
1986
|
+
const message = HMSEncoder.encodeHMSMessage(data);
|
|
1944
1987
|
if (this.onMessageDelegate) {
|
|
1945
1988
|
logger?.verbose('#Listener ON_MESSAGE_LISTENER_CALL', message);
|
|
1946
1989
|
this.onMessageDelegate(message);
|
|
@@ -1975,10 +2018,8 @@ export class HMSSDK {
|
|
|
1975
2018
|
return;
|
|
1976
2019
|
}
|
|
1977
2020
|
if (this.onRoleChangeRequestDelegate) {
|
|
1978
|
-
const encodedRoleChangeRequest =
|
|
1979
|
-
data
|
|
1980
|
-
this.id
|
|
1981
|
-
);
|
|
2021
|
+
const encodedRoleChangeRequest =
|
|
2022
|
+
HMSEncoder.encodeHmsRoleChangeRequest(data);
|
|
1982
2023
|
logger?.verbose(
|
|
1983
2024
|
'#Listener ON_ROLE_CHANGE_LISTENER_CALL',
|
|
1984
2025
|
encodedRoleChangeRequest
|
|
@@ -1993,7 +2034,7 @@ export class HMSSDK {
|
|
|
1993
2034
|
}
|
|
1994
2035
|
if (this.onChangeTrackStateRequestDelegate) {
|
|
1995
2036
|
const encodedRoleChangeRequest =
|
|
1996
|
-
HMSEncoder.encodeHmsChangeTrackStateRequest(data
|
|
2037
|
+
HMSEncoder.encodeHmsChangeTrackStateRequest(data);
|
|
1997
2038
|
logger?.verbose(
|
|
1998
2039
|
'#Listener ON_CHANGE_TRACK_STATE_REQUEST_LISTENER_CALL',
|
|
1999
2040
|
encodedRoleChangeRequest
|
|
@@ -2011,7 +2052,7 @@ export class HMSSDK {
|
|
|
2011
2052
|
if (this.onRemovedFromRoomDelegate) {
|
|
2012
2053
|
let requestedBy = null;
|
|
2013
2054
|
if (data.requestedBy) {
|
|
2014
|
-
requestedBy = HMSEncoder.encodeHmsPeer(data.requestedBy
|
|
2055
|
+
requestedBy = HMSEncoder.encodeHmsPeer(data.requestedBy);
|
|
2015
2056
|
}
|
|
2016
2057
|
const reason = data.reason;
|
|
2017
2058
|
const roomEnded = data.roomEnded;
|
|
@@ -2065,7 +2106,7 @@ export class HMSSDK {
|
|
|
2065
2106
|
}
|
|
2066
2107
|
|
|
2067
2108
|
let localAudioStats = new HMSLocalAudioStats(data.localAudioStats);
|
|
2068
|
-
let peer = HMSEncoder.encodeHmsPeer(data.peer
|
|
2109
|
+
let peer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
2069
2110
|
let track = HMSEncoder.encodeHmsLocalAudioTrack(data.track, this.id);
|
|
2070
2111
|
|
|
2071
2112
|
if (this.onLocalAudioStatsDelegate) {
|
|
@@ -2085,7 +2126,7 @@ export class HMSSDK {
|
|
|
2085
2126
|
}
|
|
2086
2127
|
|
|
2087
2128
|
let localVideoStats = new HMSLocalVideoStats(data.localVideoStats);
|
|
2088
|
-
let peer = HMSEncoder.encodeHmsPeer(data.peer
|
|
2129
|
+
let peer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
2089
2130
|
let track = HMSEncoder.encodeHmsLocalVideoTrack(data.track, this.id);
|
|
2090
2131
|
|
|
2091
2132
|
if (this.onLocalVideoStatsDelegate) {
|
|
@@ -2105,7 +2146,7 @@ export class HMSSDK {
|
|
|
2105
2146
|
}
|
|
2106
2147
|
|
|
2107
2148
|
let remoteAudioStats = new HMSRemoteAudioStats(data.remoteAudioStats);
|
|
2108
|
-
let peer = HMSEncoder.encodeHmsPeer(data.peer
|
|
2149
|
+
let peer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
2109
2150
|
let track = HMSEncoder.encodeHmsRemoteAudioTrack(data.track, this.id);
|
|
2110
2151
|
|
|
2111
2152
|
if (this.onRemoteAudioStatsDelegate) {
|
|
@@ -2130,7 +2171,7 @@ export class HMSSDK {
|
|
|
2130
2171
|
}
|
|
2131
2172
|
|
|
2132
2173
|
let remoteVideoStats = new HMSRemoteVideoStats(data.remoteVideoStats);
|
|
2133
|
-
let peer = HMSEncoder.encodeHmsPeer(data.peer
|
|
2174
|
+
let peer = HMSEncoder.encodeHmsPeer(data.peer);
|
|
2134
2175
|
let track = HMSEncoder.encodeHmsRemoteVideoTrack(data.track, this.id);
|
|
2135
2176
|
|
|
2136
2177
|
if (this.onRemoteVideoStatsDelegate) {
|
|
@@ -2197,4 +2238,22 @@ export class HMSSDK {
|
|
|
2197
2238
|
id: this.id,
|
|
2198
2239
|
});
|
|
2199
2240
|
}
|
|
2241
|
+
|
|
2242
|
+
/**
|
|
2243
|
+
* - Returns the instance of logger which can be used to manipulate log levels.
|
|
2244
|
+
* @returns @instance HMSLogger
|
|
2245
|
+
* @memberof HMSSDK
|
|
2246
|
+
*/
|
|
2247
|
+
static getLogger() {
|
|
2248
|
+
return getLogger();
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
/**
|
|
2252
|
+
* - Updates the logger for this instance of HMSSDK
|
|
2253
|
+
* @param {HMSLogger} hmsLogger
|
|
2254
|
+
* @memberof HMSSDK
|
|
2255
|
+
*/
|
|
2256
|
+
setLogger = (hmsLogger?: HMSLogger) => {
|
|
2257
|
+
setLogger(this.id, hmsLogger);
|
|
2258
|
+
};
|
|
2200
2259
|
}
|
|
@@ -2,7 +2,7 @@ export enum HMSUpdateListenerActions {
|
|
|
2
2
|
ON_PREVIEW = 'ON_PREVIEW',
|
|
3
3
|
ON_JOIN = 'ON_JOIN',
|
|
4
4
|
ON_ROOM_UPDATE = 'ON_ROOM_UPDATE',
|
|
5
|
-
ON_PEER_UPDATE = '
|
|
5
|
+
ON_PEER_UPDATE = '3',
|
|
6
6
|
ON_TRACK_UPDATE = 'ON_TRACK_UPDATE',
|
|
7
7
|
ON_ERROR = 'ON_ERROR',
|
|
8
8
|
ON_MESSAGE = 'ON_MESSAGE',
|
package/src/classes/HmsView.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
UIManager,
|
|
7
7
|
ViewStyle,
|
|
8
8
|
} from 'react-native';
|
|
9
|
+
import { HMSConstants } from './HMSConstants';
|
|
9
10
|
import { HMSVideoViewMode } from './HMSVideoViewMode';
|
|
10
11
|
|
|
11
12
|
interface HmsViewProps {
|
|
@@ -39,7 +40,7 @@ export const HmsViewComponent = React.forwardRef<any, HmsComponentProps>(
|
|
|
39
40
|
const {
|
|
40
41
|
trackId,
|
|
41
42
|
style = temporaryStyles.customStyle,
|
|
42
|
-
id =
|
|
43
|
+
id = HMSConstants.DEFAULT_SDK_ID,
|
|
43
44
|
mirror = false,
|
|
44
45
|
setZOrderMediaOverlay = false,
|
|
45
46
|
scaleType = HMSVideoViewMode.ASPECT_FILL,
|