@100mslive/react-native-hms 1.9.1 → 1.9.3-beta.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 +0 -1
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +21 -11
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +72 -20
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +63 -28
- package/ios/HMSDecoder.swift +1 -3
- package/ios/HMSHelper.swift +2 -2
- package/ios/HMSRNSDK.swift +23 -7
- package/lib/commonjs/classes/HMSCameraControl.js +2 -3
- package/lib/commonjs/classes/HMSCameraControl.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +1 -1
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSNativeEventListener.js +1 -1
- package/lib/commonjs/classes/HMSNativeEventListener.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerListIterator.js +1 -1
- package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomCache.js +1 -1
- package/lib/commonjs/classes/HMSRoomCache.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +17 -57
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSSessionStore.js +1 -1
- package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +3 -4
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +13 -16
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/commonjs/hooks/useHMSPeerUpdates.js +1 -2
- package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
- package/lib/commonjs/index.js +11 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stores/hms-store.js +4 -6
- package/lib/commonjs/stores/hms-store.js.map +1 -1
- package/lib/commonjs/utils/emitter/EventEmitter.js +1 -4
- package/lib/commonjs/utils/emitter/EventEmitter.js.map +1 -1
- package/lib/commonjs/utils/notification.js +13 -0
- package/lib/commonjs/utils/notification.js.map +1 -0
- package/lib/module/classes/HMSCameraControl.js +2 -3
- package/lib/module/classes/HMSCameraControl.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +1 -1
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSNativeEventListener.js +1 -1
- package/lib/module/classes/HMSNativeEventListener.js.map +1 -1
- package/lib/module/classes/HMSPeerListIterator.js +1 -1
- package/lib/module/classes/HMSPeerListIterator.js.map +1 -1
- package/lib/module/classes/HMSPeersCache.js +1 -1
- package/lib/module/classes/HMSPeersCache.js.map +1 -1
- package/lib/module/classes/HMSRoomCache.js +1 -1
- package/lib/module/classes/HMSRoomCache.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +18 -58
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSSessionStore.js +1 -1
- package/lib/module/classes/HMSSessionStore.js.map +1 -1
- package/lib/module/classes/HmsView.js +3 -4
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +13 -16
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/module/hooks/useHMSPeerUpdates.js +1 -2
- package/lib/module/hooks/useHMSPeerUpdates.js.map +1 -1
- package/lib/module/index.js +5 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/stores/hms-store.js +4 -6
- package/lib/module/stores/hms-store.js.map +1 -1
- package/lib/module/utils/emitter/EventEmitter.js +1 -4
- package/lib/module/utils/emitter/EventEmitter.js.map +1 -1
- package/lib/module/utils/notification.js +5 -0
- package/lib/module/utils/notification.js.map +1 -0
- package/lib/typescript/classes/HMSSDK.d.ts +1 -11
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/utils/notification.d.ts +5 -0
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSCameraControl.ts +1 -1
- package/src/classes/HMSEncoder.ts +1 -1
- package/src/classes/HMSNativeEventListener.ts +1 -1
- package/src/classes/HMSPeerListIterator.ts +8 -6
- package/src/classes/HMSPeersCache.ts +1 -1
- package/src/classes/HMSRoomCache.ts +1 -1
- package/src/classes/HMSSDK.tsx +35 -61
- package/src/classes/HMSSessionStore.ts +1 -1
- package/src/index.ts +5 -1
- package/src/utils/notification.ts +10 -0
- /package/lib/commonjs/{classes → modules}/HMSManagerModule.js +0 -0
- /package/lib/commonjs/{classes → modules}/HMSManagerModule.js.map +0 -0
- /package/lib/module/{classes → modules}/HMSManagerModule.js +0 -0
- /package/lib/module/{classes → modules}/HMSManagerModule.js.map +0 -0
- /package/lib/typescript/{classes → modules}/HMSManagerModule.d.ts +0 -0
- /package/src/{classes → modules}/HMSManagerModule.ts +0 -0
|
@@ -2,7 +2,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
2
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
4
|
import { DeviceEventEmitter } from 'react-native';
|
|
5
|
-
import HMSManager from '
|
|
5
|
+
import HMSManager from '../modules/HMSManagerModule';
|
|
6
6
|
import { HMSConstants } from './HMSConstants';
|
|
7
7
|
import { getLogger } from './HMSLogger';
|
|
8
8
|
import { HMSUpdateListenerActions } from './HMSUpdateListenerActions';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeviceEventEmitter","HMSManager","HMSConstants","getLogger","HMSUpdateListenerActions","EventEmitter","HMSSessionStore","constructor","_defineProperty","set","value","key","data","setSessionMetadataForKey","id","DEFAULT_SDK_ID","get","getSessionMetadataForKey","addKeyChangeListener","forKeys","callback","_deviceEventEmitterSubscription","addListener","ON_SESSION_STORE_CHANGED","_deviceEventEmitterListener","bind","_eventEmitter","uniqueId","join","Date","now","toString","eventEmitter","subscriptions","map","cleanupHandler","_cleanup","keys","catch","err","_addedKeyChangeListenerCount","remove","subscriptionsToRemove","length","context","forEach","subscription","removeKeyChangeListener","error","logger","verbose","Object","getOwnPropertyNames","includes","removeListener","undefined","_getLogger","_this$_eventEmitter","emit"],"sources":["HMSSessionStore.ts"],"sourcesContent":["import { DeviceEventEmitter } from 'react-native';\nimport type { EmitterSubscription as RNEmitterSubscription } from 'react-native';\n\nimport HMSManager from './HMSManagerModule';\n\nimport { HMSConstants } from './HMSConstants';\nimport { getLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { EventEmitter } from '../utils';\nimport type { EmitterSubscription } from '../utils';\n\ntype Nullable<T> = T | null | undefined;\n\nexport type HMSSessionStoreValue = Nullable<string>;\n\n/**\n * Session store is a shared realtime key-value store that is accessible by everyone in the room.\n * It can be utilized to implement features such as pinned text, spotlight (which brings a particular\n * peer to the center stage for everyone in the room) and more.\n *\n * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE`\n * event on the `HMSSDK` instance\n *\n * For example:\n * ```\n * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE, <your callback function>);\n * ```\n *\n * Checkout Session Store docs fore more details ${@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store}\n */\nexport class HMSSessionStore {\n private _deviceEventEmitterSubscription?: RNEmitterSubscription;\n private _eventEmitter?: EventEmitter;\n private _addedKeyChangeListenerCount = 0;\n\n /**\n * This method sets a value for a specific key on session store.\n * Once a value is assigned, it will be available for other peers in the room\n * who are listening for changes in value for that specific key.\n *\n * @param {HMSSessionStoreValue} value\n * @param {string} key\n * @returns {Promise}\n */\n async set(value: HMSSessionStoreValue, key: string) {\n const data: { success: true; finalValue: HMSSessionStoreValue } =\n await HMSManager.setSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n value,\n });\n return data;\n }\n\n /**\n * This method returns the value of any specified key on session store.\n * Note that you will not get updates for any change in value of the specified key,\n * It returns the latest value at the time it was called.\n *\n * To listen to value change updates use `addKeyChangeListener` method instead.\n *\n * @param {string} key\n * @returns {Promise}\n */\n async get(key: string) {\n const data: HMSSessionStoreValue =\n await HMSManager.getSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n });\n return data;\n }\n\n /**\n * This method registers a callback function for listening to value changes of a particular key.\n * Registered Callback function will be called initially with latest value and whenever the value updates\n *\n * @param {string[]} forKeys\n * @param {Function} callback\n * @returns {Object} subscription object\n */\n addKeyChangeListener<T extends string[]>(\n forKeys: T,\n callback: (\n error: string | null,\n data: { key: T[number]; value: HMSSessionStoreValue } | null\n ) => void\n ) {\n // Add Native Device Event Emitter if it is not already added\n if (!this._deviceEventEmitterSubscription) {\n this._deviceEventEmitterSubscription = DeviceEventEmitter.addListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener.bind(this)\n );\n }\n\n // Create JS side EventEmitter\n if (!this._eventEmitter) {\n this._eventEmitter = new EventEmitter();\n }\n\n // Unique Identifier for adding native event listener\n const uniqueId = forKeys.join('') + '_' + Date.now().toString();\n\n const eventEmitter = this._eventEmitter;\n\n // Add listeners on eventEmitter for each key\n const subscriptions = forKeys.map((key) =>\n eventEmitter.addListener(key, callback, { uniqueId })\n );\n\n //\n let cleanupHandler: (() => void) | null = () => {\n this._cleanup(subscriptions);\n };\n\n // Adding 'KeyChangeListener' on native side\n HMSManager.addKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n keys: forKeys,\n uniqueId,\n })\n // Adding 'KeyChangeListener' fails on native side\n .catch((err: any) => {\n if (typeof cleanupHandler === 'function') {\n callback(err, null);\n cleanupHandler();\n cleanupHandler = null;\n }\n });\n\n this._addedKeyChangeListenerCount += 1;\n\n return {\n remove: () => {\n if (typeof cleanupHandler === 'function') {\n cleanupHandler();\n cleanupHandler = null;\n }\n },\n };\n }\n\n private _cleanup(subscriptionsToRemove: EmitterSubscription[]) {\n // Extracting `uniqueId` from first subscription (all subscriptions have same uniqueId)\n // this `uniqueId` will be used to remove 'KeyChangeListener' from native side\n const uniqueId =\n subscriptionsToRemove.length > 0\n ? (subscriptionsToRemove[0]!.context as { uniqueId: string }).uniqueId\n : null;\n\n // Removing required subscriptions from 'eventEmitter'\n subscriptionsToRemove.forEach((subscription) => subscription.remove());\n\n // Removing 'KeyChangeListener' from native side\n HMSManager.removeKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n uniqueId,\n }).catch((error: any) => {\n const logger = getLogger();\n logger?.verbose(\n \"Error while removing key change listener, Listener didn't get registerred at first place or was already removed\",\n error\n );\n });\n\n this._addedKeyChangeListenerCount -= 1;\n\n if (this._addedKeyChangeListenerCount <= 0) {\n this._addedKeyChangeListenerCount = 0;\n if (\n this._deviceEventEmitterSubscription &&\n Object.getOwnPropertyNames(\n this._deviceEventEmitterSubscription\n ).includes('remove') &&\n typeof this._deviceEventEmitterSubscription.remove === 'function'\n ) {\n this._deviceEventEmitterSubscription.remove();\n } else {\n DeviceEventEmitter.removeListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener\n );\n }\n\n this._deviceEventEmitterSubscription = undefined;\n\n this._eventEmitter = undefined;\n }\n }\n\n private _deviceEventEmitterListener(data: {\n id: string;\n key: string;\n value: HMSSessionStoreValue;\n }) {\n // if id is different from default sdk_id, return early\n if (data.id !== HMSConstants.DEFAULT_SDK_ID) {\n return;\n }\n\n // emit event for the key\n getLogger()?.verbose('#Listener ON_SESSION_STORE_CHANGED event: ', data);\n\n this._eventEmitter?.emit(data.key, null, data);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DeviceEventEmitter","HMSManager","HMSConstants","getLogger","HMSUpdateListenerActions","EventEmitter","HMSSessionStore","constructor","_defineProperty","set","value","key","data","setSessionMetadataForKey","id","DEFAULT_SDK_ID","get","getSessionMetadataForKey","addKeyChangeListener","forKeys","callback","_deviceEventEmitterSubscription","addListener","ON_SESSION_STORE_CHANGED","_deviceEventEmitterListener","bind","_eventEmitter","uniqueId","join","Date","now","toString","eventEmitter","subscriptions","map","cleanupHandler","_cleanup","keys","catch","err","_addedKeyChangeListenerCount","remove","subscriptionsToRemove","length","context","forEach","subscription","removeKeyChangeListener","error","logger","verbose","Object","getOwnPropertyNames","includes","removeListener","undefined","_getLogger","_this$_eventEmitter","emit"],"sources":["HMSSessionStore.ts"],"sourcesContent":["import { DeviceEventEmitter } from 'react-native';\nimport type { EmitterSubscription as RNEmitterSubscription } from 'react-native';\n\nimport HMSManager from '../modules/HMSManagerModule';\n\nimport { HMSConstants } from './HMSConstants';\nimport { getLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { EventEmitter } from '../utils';\nimport type { EmitterSubscription } from '../utils';\n\ntype Nullable<T> = T | null | undefined;\n\nexport type HMSSessionStoreValue = Nullable<string>;\n\n/**\n * Session store is a shared realtime key-value store that is accessible by everyone in the room.\n * It can be utilized to implement features such as pinned text, spotlight (which brings a particular\n * peer to the center stage for everyone in the room) and more.\n *\n * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE`\n * event on the `HMSSDK` instance\n *\n * For example:\n * ```\n * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE, <your callback function>);\n * ```\n *\n * Checkout Session Store docs fore more details ${@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store}\n */\nexport class HMSSessionStore {\n private _deviceEventEmitterSubscription?: RNEmitterSubscription;\n private _eventEmitter?: EventEmitter;\n private _addedKeyChangeListenerCount = 0;\n\n /**\n * This method sets a value for a specific key on session store.\n * Once a value is assigned, it will be available for other peers in the room\n * who are listening for changes in value for that specific key.\n *\n * @param {HMSSessionStoreValue} value\n * @param {string} key\n * @returns {Promise}\n */\n async set(value: HMSSessionStoreValue, key: string) {\n const data: { success: true; finalValue: HMSSessionStoreValue } =\n await HMSManager.setSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n value,\n });\n return data;\n }\n\n /**\n * This method returns the value of any specified key on session store.\n * Note that you will not get updates for any change in value of the specified key,\n * It returns the latest value at the time it was called.\n *\n * To listen to value change updates use `addKeyChangeListener` method instead.\n *\n * @param {string} key\n * @returns {Promise}\n */\n async get(key: string) {\n const data: HMSSessionStoreValue =\n await HMSManager.getSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n });\n return data;\n }\n\n /**\n * This method registers a callback function for listening to value changes of a particular key.\n * Registered Callback function will be called initially with latest value and whenever the value updates\n *\n * @param {string[]} forKeys\n * @param {Function} callback\n * @returns {Object} subscription object\n */\n addKeyChangeListener<T extends string[]>(\n forKeys: T,\n callback: (\n error: string | null,\n data: { key: T[number]; value: HMSSessionStoreValue } | null\n ) => void\n ) {\n // Add Native Device Event Emitter if it is not already added\n if (!this._deviceEventEmitterSubscription) {\n this._deviceEventEmitterSubscription = DeviceEventEmitter.addListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener.bind(this)\n );\n }\n\n // Create JS side EventEmitter\n if (!this._eventEmitter) {\n this._eventEmitter = new EventEmitter();\n }\n\n // Unique Identifier for adding native event listener\n const uniqueId = forKeys.join('') + '_' + Date.now().toString();\n\n const eventEmitter = this._eventEmitter;\n\n // Add listeners on eventEmitter for each key\n const subscriptions = forKeys.map((key) =>\n eventEmitter.addListener(key, callback, { uniqueId })\n );\n\n //\n let cleanupHandler: (() => void) | null = () => {\n this._cleanup(subscriptions);\n };\n\n // Adding 'KeyChangeListener' on native side\n HMSManager.addKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n keys: forKeys,\n uniqueId,\n })\n // Adding 'KeyChangeListener' fails on native side\n .catch((err: any) => {\n if (typeof cleanupHandler === 'function') {\n callback(err, null);\n cleanupHandler();\n cleanupHandler = null;\n }\n });\n\n this._addedKeyChangeListenerCount += 1;\n\n return {\n remove: () => {\n if (typeof cleanupHandler === 'function') {\n cleanupHandler();\n cleanupHandler = null;\n }\n },\n };\n }\n\n private _cleanup(subscriptionsToRemove: EmitterSubscription[]) {\n // Extracting `uniqueId` from first subscription (all subscriptions have same uniqueId)\n // this `uniqueId` will be used to remove 'KeyChangeListener' from native side\n const uniqueId =\n subscriptionsToRemove.length > 0\n ? (subscriptionsToRemove[0]!.context as { uniqueId: string }).uniqueId\n : null;\n\n // Removing required subscriptions from 'eventEmitter'\n subscriptionsToRemove.forEach((subscription) => subscription.remove());\n\n // Removing 'KeyChangeListener' from native side\n HMSManager.removeKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n uniqueId,\n }).catch((error: any) => {\n const logger = getLogger();\n logger?.verbose(\n \"Error while removing key change listener, Listener didn't get registerred at first place or was already removed\",\n error\n );\n });\n\n this._addedKeyChangeListenerCount -= 1;\n\n if (this._addedKeyChangeListenerCount <= 0) {\n this._addedKeyChangeListenerCount = 0;\n if (\n this._deviceEventEmitterSubscription &&\n Object.getOwnPropertyNames(\n this._deviceEventEmitterSubscription\n ).includes('remove') &&\n typeof this._deviceEventEmitterSubscription.remove === 'function'\n ) {\n this._deviceEventEmitterSubscription.remove();\n } else {\n DeviceEventEmitter.removeListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener\n );\n }\n\n this._deviceEventEmitterSubscription = undefined;\n\n this._eventEmitter = undefined;\n }\n }\n\n private _deviceEventEmitterListener(data: {\n id: string;\n key: string;\n value: HMSSessionStoreValue;\n }) {\n // if id is different from default sdk_id, return early\n if (data.id !== HMSConstants.DEFAULT_SDK_ID) {\n return;\n }\n\n // emit event for the key\n getLogger()?.verbose('#Listener ON_SESSION_STORE_CHANGED event: ', data);\n\n this._eventEmitter?.emit(data.key, null, data);\n }\n}\n"],"mappings":"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"}
|
|
@@ -29,10 +29,9 @@ export const HmsViewComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
29
29
|
* This method is passed to `onChange` prop of `HmsView` Native Component.
|
|
30
30
|
* It is invoked when `HmsView` emits 'topChange' event.
|
|
31
31
|
*/
|
|
32
|
-
const onChange =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
} = _ref;
|
|
32
|
+
const onChange = ({
|
|
33
|
+
nativeEvent
|
|
34
|
+
}) => {
|
|
36
35
|
const {
|
|
37
36
|
event,
|
|
38
37
|
data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useImperativeHandle","useRef","findNodeHandle","requireNativeComponent","StyleSheet","UIManager","Platform","HMSConstants","HMSVideoViewMode","setHmsViewsResolutionsState","HmsView","_nextRequestId","_requestMap","Map","HmsViewComponent","forwardRef","props","ref","trackId","style","styles","hmsView","id","DEFAULT_SDK_ID","mirror","setZOrderMediaOverlay","autoSimulcast","scaleType","ASPECT_FILL","hmsViewRef","applyStyles_ANDROID","setApplyStyles_ANDROID","data","onChange","
|
|
1
|
+
{"version":3,"names":["React","useState","useImperativeHandle","useRef","findNodeHandle","requireNativeComponent","StyleSheet","UIManager","Platform","HMSConstants","HMSVideoViewMode","setHmsViewsResolutionsState","HmsView","_nextRequestId","_requestMap","Map","HmsViewComponent","forwardRef","props","ref","trackId","style","styles","hmsView","id","DEFAULT_SDK_ID","mirror","setZOrderMediaOverlay","autoSimulcast","scaleType","ASPECT_FILL","hmsViewRef","applyStyles_ANDROID","setApplyStyles_ANDROID","data","onChange","nativeEvent","event","_onDataReturned","requestId","result","error","promise","get","resolve","reject","delete","capture","viewManagerConfig","getViewManagerConfig","requestMap","Promise","set","dispatchViewManagerCommand","current","Commands","createElement","OS","onDataReturned","create","flex"],"sources":["HmsView.tsx"],"sourcesContent":["import React, { useState, useImperativeHandle, useRef } from 'react';\nimport {\n findNodeHandle,\n requireNativeComponent,\n StyleSheet,\n UIManager,\n Platform,\n} from 'react-native';\nimport type { NativeSyntheticEvent, ViewStyle } from 'react-native';\nimport { HMSConstants } from './HMSConstants';\nimport { HMSVideoViewMode } from './HMSVideoViewMode';\nimport { setHmsViewsResolutionsState } from '../hooks/hmsviews';\n\ninterface HmsViewProps {\n data: {\n trackId: string;\n id: string;\n mirror: boolean;\n scaleType: HMSVideoViewMode;\n };\n autoSimulcast: boolean;\n setZOrderMediaOverlay: boolean;\n scaleType: HMSVideoViewMode;\n style: ViewStyle;\n onChange: Function;\n onDataReturned: Function;\n}\n\nconst HmsView = requireNativeComponent<HmsViewProps>('HMSView');\nlet _nextRequestId = 1;\nlet _requestMap = new Map();\n\nexport interface HmsComponentProps {\n trackId: string;\n style?: ViewStyle;\n mirror?: boolean;\n autoSimulcast?: boolean;\n scaleType?: HMSVideoViewMode;\n setZOrderMediaOverlay?: boolean;\n id: string;\n}\n\nexport const HmsViewComponent = React.forwardRef<any, HmsComponentProps>(\n (props, ref) => {\n const {\n trackId,\n style = styles.hmsView,\n id = HMSConstants.DEFAULT_SDK_ID,\n mirror = false,\n setZOrderMediaOverlay = false,\n autoSimulcast = true,\n scaleType = HMSVideoViewMode.ASPECT_FILL,\n } = props;\n\n const hmsViewRef: any = useRef();\n const [applyStyles_ANDROID, setApplyStyles_ANDROID] = useState(false);\n const data = {\n trackId,\n id,\n mirror,\n scaleType,\n };\n\n /**\n * This method is passed to `onChange` prop of `HmsView` Native Component.\n * It is invoked when `HmsView` emits 'topChange' event.\n */\n const onChange = ({\n nativeEvent,\n }: NativeSyntheticEvent<{\n data: { height: number; width: number };\n event: 'ON_RESOLUTION_CHANGE_EVENT';\n }>) => {\n const { event, data } = nativeEvent;\n\n setApplyStyles_ANDROID(true);\n\n if (event === 'ON_RESOLUTION_CHANGE_EVENT') {\n setHmsViewsResolutionsState(trackId, data);\n }\n };\n\n /**\n * This method is passed to `onDataReturned` prop of `HmsView` Native Component.\n * It is invoked when `HmsView` emits 'captureFrame' event.\n */\n const _onDataReturned = (event: {\n nativeEvent: { requestId: any; result: any; error: any };\n }) => {\n // We grab the relevant data out of our event.\n let { requestId, result, error } = event.nativeEvent;\n // Then we get the promise we saved earlier for the given request ID.\n let promise = _requestMap.get(requestId);\n if (result) {\n // If it was successful, we resolve the promise.\n promise.resolve(result);\n } else {\n // Otherwise, we reject it.\n promise.reject(error);\n }\n // Finally, we clean up our request map.\n _requestMap.delete(requestId);\n };\n\n const capture = async () => {\n const viewManagerConfig = UIManager.getViewManagerConfig('HMSView');\n\n let requestId = _nextRequestId++;\n let requestMap = _requestMap;\n\n // We create a promise here that will be resolved once `_onRequestDone` is\n // called.\n let promise = new Promise(function (resolve, reject) {\n requestMap.set(requestId, { resolve, reject });\n });\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsViewRef.current),\n viewManagerConfig.Commands.capture,\n [requestId]\n );\n return promise;\n };\n\n useImperativeHandle(ref, () => {\n return {\n capture,\n };\n });\n\n return (\n <HmsView\n ref={hmsViewRef}\n onChange={onChange}\n data={data}\n style={\n Platform.OS === 'android' ? (applyStyles_ANDROID ? style : {}) : style\n }\n autoSimulcast={autoSimulcast}\n scaleType={scaleType}\n setZOrderMediaOverlay={setZOrderMediaOverlay}\n onDataReturned={_onDataReturned}\n />\n );\n }\n);\n\nconst styles = StyleSheet.create({\n hmsView: {\n flex: 1,\n },\n});\n"],"mappings":"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"}
|
|
@@ -4,14 +4,13 @@ import { setHMSHLSPlayerCue, setHMSHLSPlayerPlaybackError, setHMSHLSPlayerPlayba
|
|
|
4
4
|
import { RCTHMSHLSPlayer, RCTHMSHLSPlayerViewManagerConfig } from './RCTHMSHLSPlayer';
|
|
5
5
|
import { HMSHLSPlayerPlaybackEventTypes, HMSHLSPlayerStatsEventTypes } from '../../types';
|
|
6
6
|
import { HMSEncoder } from '../../classes/HMSEncoder';
|
|
7
|
-
const _HMSHLSPlayer = (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} = _ref;
|
|
7
|
+
const _HMSHLSPlayer = ({
|
|
8
|
+
url = '',
|
|
9
|
+
style,
|
|
10
|
+
containerStyle,
|
|
11
|
+
enableStats,
|
|
12
|
+
enableControls = false
|
|
13
|
+
}, ref) => {
|
|
15
14
|
const hmsHlsPlayerRef = useRef(null);
|
|
16
15
|
const [aspectRatio, setAspectRatio] = useState(16 / 9);
|
|
17
16
|
useImperativeHandle(ref, () => ({
|
|
@@ -67,10 +66,9 @@ const _HMSHLSPlayer = (_ref, ref) => {
|
|
|
67
66
|
}), []);
|
|
68
67
|
|
|
69
68
|
// Handle HLS Playback events
|
|
70
|
-
const handleHLSPlaybackEvent =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
} = _ref2;
|
|
69
|
+
const handleHLSPlaybackEvent = ({
|
|
70
|
+
nativeEvent
|
|
71
|
+
}) => {
|
|
74
72
|
const {
|
|
75
73
|
event,
|
|
76
74
|
data
|
|
@@ -94,10 +92,9 @@ const _HMSHLSPlayer = (_ref, ref) => {
|
|
|
94
92
|
};
|
|
95
93
|
|
|
96
94
|
// Handle HLS Stats events
|
|
97
|
-
const handleHLSStatsEvent =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
} = _ref3;
|
|
95
|
+
const handleHLSStatsEvent = ({
|
|
96
|
+
nativeEvent
|
|
97
|
+
}) => {
|
|
101
98
|
const {
|
|
102
99
|
event,
|
|
103
100
|
data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useImperativeHandle","useRef","useState","View","StyleSheet","UIManager","findNodeHandle","setHMSHLSPlayerCue","setHMSHLSPlayerPlaybackError","setHMSHLSPlayerPlaybackState","setHMSHLSPlayerResolution","setHMSHLSPlayerStats","setHMSHLSPlayerStatsError","RCTHMSHLSPlayer","RCTHMSHLSPlayerViewManagerConfig","HMSHLSPlayerPlaybackEventTypes","HMSHLSPlayerStatsEventTypes","HMSEncoder","_HMSHLSPlayer","_ref","ref","url","style","containerStyle","enableStats","enableControls","hmsHlsPlayerRef","aspectRatio","setAspectRatio","play","current","Commands","dispatchViewManagerCommand","stop","undefined","pause","resume","seekForward","seconds","Error","seekBackward","seekToLivePosition","setVolume","level","handleHLSPlaybackEvent","_ref2","nativeEvent","event","data","ON_PLAYBACK_CUE_EVENT","transformedData","transformHMSHLSCueEventData","ON_PLAYBACK_FAILURE_EVENT","error","ON_PLAYBACK_RESOLUTION_CHANGE_EVENT","width","height","isNaN","state","handleHLSStatsEvent","_ref3","ON_STATS_EVENT_ERROR","createElement","styles","container","playerWrapper","player","flex","onHmsHlsPlaybackEvent","onHmsHlsStatsEvent","HMSHLSPlayer","forwardRef","create","alignItems","justifyContent","backgroundColor"],"sources":["HMSHLSPlayer.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState } from 'react';\nimport { View, StyleSheet, UIManager, findNodeHandle } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport {\n setHMSHLSPlayerCue,\n setHMSHLSPlayerPlaybackError,\n setHMSHLSPlayerPlaybackState,\n setHMSHLSPlayerResolution,\n setHMSHLSPlayerStats,\n setHMSHLSPlayerStatsError,\n} from './hooks';\nimport {\n RCTHMSHLSPlayer,\n RCTHMSHLSPlayerViewManagerConfig,\n} from './RCTHMSHLSPlayer';\nimport type {\n HmsHlsPlaybackEventHandler,\n HmsHlsStatsEventHandler,\n RCTHMSHLSPlayerRef,\n} from './RCTHMSHLSPlayer';\nimport {\n HMSHLSPlayerPlaybackEventTypes,\n HMSHLSPlayerStatsEventTypes,\n} from '../../types';\nimport type { HMSHLSPlayerPlaybackCueEventData } from '../../types';\nimport { HMSEncoder } from '../../classes/HMSEncoder';\nimport type { HMSHLSPlayerPlaybackCue } from '../../stores/types';\n\nexport interface HMSHLSPlayerProps {\n url?: string;\n style?: StyleProp<ViewStyle>;\n containerStyle?: StyleProp<ViewStyle>;\n aspectRatio?: number;\n enableStats?: boolean;\n enableControls?: boolean;\n}\n\nexport interface HMSHLSPlayerRefProperties {\n play: (url?: string) => void;\n stop: () => void;\n pause: () => void;\n resume: () => void;\n seekForward: (seconds: number) => void;\n seekBackward: (seconds: number) => void;\n seekToLivePosition: () => void;\n setVolume: (level: number) => void;\n}\n\nconst _HMSHLSPlayer: React.ForwardRefRenderFunction<\n HMSHLSPlayerRefProperties,\n HMSHLSPlayerProps\n> = (\n { url = '', style, containerStyle, enableStats, enableControls = false },\n ref\n) => {\n const hmsHlsPlayerRef = useRef<RCTHMSHLSPlayerRef | null>(null);\n\n const [aspectRatio, setAspectRatio] = useState(16 / 9);\n\n useImperativeHandle(\n ref,\n () => ({\n play: (url?: string) => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.play\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.play,\n url ? [url] : ['']\n );\n }\n },\n stop: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.stop\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.stop,\n undefined\n );\n }\n },\n pause: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.pause\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.pause,\n undefined\n );\n }\n },\n resume: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.resume\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.resume,\n undefined\n );\n }\n },\n seekForward: (seconds: number) => {\n if (typeof seconds !== 'number') {\n throw new Error(\n seconds\n ? 'seconds must be a `number` type'\n : 'seconds was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekForward\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekForward,\n [seconds]\n );\n }\n },\n seekBackward: (seconds: number) => {\n if (typeof seconds !== 'number') {\n throw new Error(\n seconds\n ? 'seconds must be a `number` type'\n : 'seconds was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekBackward\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekBackward,\n [seconds]\n );\n }\n },\n seekToLivePosition: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekToLivePosition\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekToLivePosition,\n undefined\n );\n }\n },\n setVolume: (level: number) => {\n if (typeof level !== 'number') {\n throw new Error(\n level ? 'level must be a `number` type' : 'level was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.setVolume\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.setVolume,\n [level]\n );\n }\n },\n }),\n []\n );\n\n // Handle HLS Playback events\n const handleHLSPlaybackEvent: HmsHlsPlaybackEventHandler = ({\n nativeEvent,\n }) => {\n const { event, data } = nativeEvent;\n\n if (event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_CUE_EVENT) {\n const transformedData = HMSEncoder.transformHMSHLSCueEventData<\n HMSHLSPlayerPlaybackCueEventData,\n HMSHLSPlayerPlaybackCue\n >(data);\n setHMSHLSPlayerCue(transformedData);\n } else if (\n event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_FAILURE_EVENT\n ) {\n setHMSHLSPlayerPlaybackError(data.error);\n } else if (\n event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_RESOLUTION_CHANGE_EVENT\n ) {\n setHMSHLSPlayerResolution({...data});\n\n const aspectRatio = data.width / data.height;\n\n if (typeof aspectRatio === 'number' && !isNaN(aspectRatio)) {\n setAspectRatio(aspectRatio);\n }\n } else {\n setHMSHLSPlayerPlaybackState(data.state);\n }\n };\n\n // Handle HLS Stats events\n const handleHLSStatsEvent: HmsHlsStatsEventHandler = ({ nativeEvent }) => {\n const { event, data } = nativeEvent;\n\n if (event === HMSHLSPlayerStatsEventTypes.ON_STATS_EVENT_ERROR) {\n setHMSHLSPlayerStatsError(data);\n } else {\n setHMSHLSPlayerStats(data);\n }\n };\n\n return (\n <View style={[styles.container, containerStyle]}>\n <View style={[styles.playerWrapper, style]}>\n <RCTHMSHLSPlayer\n ref={hmsHlsPlayerRef}\n url={url}\n style={[\n styles.player,\n { aspectRatio: aspectRatio, flex: aspectRatio < 1 ? 1 : undefined },\n ]}\n enableStats={enableStats}\n enableControls={enableControls}\n onHmsHlsPlaybackEvent={handleHLSPlaybackEvent}\n onHmsHlsStatsEvent={handleHLSStatsEvent}\n />\n </View>\n </View>\n );\n};\n\nexport const HMSHLSPlayer = React.forwardRef<\n HMSHLSPlayerRefProperties,\n HMSHLSPlayerProps\n>(_HMSHLSPlayer);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n playerWrapper: {\n backgroundColor: '#000000',\n alignItems: 'center',\n justifyContent: 'center',\n },\n player: {\n width: '100%',\n aspectRatio: 16 / 9,\n flex: 1,\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useImperativeHandle","useRef","useState","View","StyleSheet","UIManager","findNodeHandle","setHMSHLSPlayerCue","setHMSHLSPlayerPlaybackError","setHMSHLSPlayerPlaybackState","setHMSHLSPlayerResolution","setHMSHLSPlayerStats","setHMSHLSPlayerStatsError","RCTHMSHLSPlayer","RCTHMSHLSPlayerViewManagerConfig","HMSHLSPlayerPlaybackEventTypes","HMSHLSPlayerStatsEventTypes","HMSEncoder","_HMSHLSPlayer","url","style","containerStyle","enableStats","enableControls","ref","hmsHlsPlayerRef","aspectRatio","setAspectRatio","play","current","Commands","dispatchViewManagerCommand","stop","undefined","pause","resume","seekForward","seconds","Error","seekBackward","seekToLivePosition","setVolume","level","handleHLSPlaybackEvent","nativeEvent","event","data","ON_PLAYBACK_CUE_EVENT","transformedData","transformHMSHLSCueEventData","ON_PLAYBACK_FAILURE_EVENT","error","ON_PLAYBACK_RESOLUTION_CHANGE_EVENT","width","height","isNaN","state","handleHLSStatsEvent","ON_STATS_EVENT_ERROR","createElement","styles","container","playerWrapper","player","flex","onHmsHlsPlaybackEvent","onHmsHlsStatsEvent","HMSHLSPlayer","forwardRef","create","alignItems","justifyContent","backgroundColor"],"sources":["HMSHLSPlayer.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState } from 'react';\nimport { View, StyleSheet, UIManager, findNodeHandle } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport {\n setHMSHLSPlayerCue,\n setHMSHLSPlayerPlaybackError,\n setHMSHLSPlayerPlaybackState,\n setHMSHLSPlayerResolution,\n setHMSHLSPlayerStats,\n setHMSHLSPlayerStatsError,\n} from './hooks';\nimport {\n RCTHMSHLSPlayer,\n RCTHMSHLSPlayerViewManagerConfig,\n} from './RCTHMSHLSPlayer';\nimport type {\n HmsHlsPlaybackEventHandler,\n HmsHlsStatsEventHandler,\n RCTHMSHLSPlayerRef,\n} from './RCTHMSHLSPlayer';\nimport {\n HMSHLSPlayerPlaybackEventTypes,\n HMSHLSPlayerStatsEventTypes,\n} from '../../types';\nimport type { HMSHLSPlayerPlaybackCueEventData } from '../../types';\nimport { HMSEncoder } from '../../classes/HMSEncoder';\nimport type { HMSHLSPlayerPlaybackCue } from '../../stores/types';\n\nexport interface HMSHLSPlayerProps {\n url?: string;\n style?: StyleProp<ViewStyle>;\n containerStyle?: StyleProp<ViewStyle>;\n aspectRatio?: number;\n enableStats?: boolean;\n enableControls?: boolean;\n}\n\nexport interface HMSHLSPlayerRefProperties {\n play: (url?: string) => void;\n stop: () => void;\n pause: () => void;\n resume: () => void;\n seekForward: (seconds: number) => void;\n seekBackward: (seconds: number) => void;\n seekToLivePosition: () => void;\n setVolume: (level: number) => void;\n}\n\nconst _HMSHLSPlayer: React.ForwardRefRenderFunction<\n HMSHLSPlayerRefProperties,\n HMSHLSPlayerProps\n> = (\n { url = '', style, containerStyle, enableStats, enableControls = false },\n ref\n) => {\n const hmsHlsPlayerRef = useRef<RCTHMSHLSPlayerRef | null>(null);\n\n const [aspectRatio, setAspectRatio] = useState(16 / 9);\n\n useImperativeHandle(\n ref,\n () => ({\n play: (url?: string) => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.play\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.play,\n url ? [url] : ['']\n );\n }\n },\n stop: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.stop\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.stop,\n undefined\n );\n }\n },\n pause: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.pause\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.pause,\n undefined\n );\n }\n },\n resume: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.resume\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.resume,\n undefined\n );\n }\n },\n seekForward: (seconds: number) => {\n if (typeof seconds !== 'number') {\n throw new Error(\n seconds\n ? 'seconds must be a `number` type'\n : 'seconds was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekForward\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekForward,\n [seconds]\n );\n }\n },\n seekBackward: (seconds: number) => {\n if (typeof seconds !== 'number') {\n throw new Error(\n seconds\n ? 'seconds must be a `number` type'\n : 'seconds was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekBackward\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekBackward,\n [seconds]\n );\n }\n },\n seekToLivePosition: () => {\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekToLivePosition\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.seekToLivePosition,\n undefined\n );\n }\n },\n setVolume: (level: number) => {\n if (typeof level !== 'number') {\n throw new Error(\n level ? 'level must be a `number` type' : 'level was not provided'\n );\n }\n\n if (\n hmsHlsPlayerRef.current &&\n RCTHMSHLSPlayerViewManagerConfig.Commands.setVolume\n ) {\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(hmsHlsPlayerRef.current),\n RCTHMSHLSPlayerViewManagerConfig.Commands.setVolume,\n [level]\n );\n }\n },\n }),\n []\n );\n\n // Handle HLS Playback events\n const handleHLSPlaybackEvent: HmsHlsPlaybackEventHandler = ({\n nativeEvent,\n }) => {\n const { event, data } = nativeEvent;\n\n if (event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_CUE_EVENT) {\n const transformedData = HMSEncoder.transformHMSHLSCueEventData<\n HMSHLSPlayerPlaybackCueEventData,\n HMSHLSPlayerPlaybackCue\n >(data);\n setHMSHLSPlayerCue(transformedData);\n } else if (\n event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_FAILURE_EVENT\n ) {\n setHMSHLSPlayerPlaybackError(data.error);\n } else if (\n event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_RESOLUTION_CHANGE_EVENT\n ) {\n setHMSHLSPlayerResolution({...data});\n\n const aspectRatio = data.width / data.height;\n\n if (typeof aspectRatio === 'number' && !isNaN(aspectRatio)) {\n setAspectRatio(aspectRatio);\n }\n } else {\n setHMSHLSPlayerPlaybackState(data.state);\n }\n };\n\n // Handle HLS Stats events\n const handleHLSStatsEvent: HmsHlsStatsEventHandler = ({ nativeEvent }) => {\n const { event, data } = nativeEvent;\n\n if (event === HMSHLSPlayerStatsEventTypes.ON_STATS_EVENT_ERROR) {\n setHMSHLSPlayerStatsError(data);\n } else {\n setHMSHLSPlayerStats(data);\n }\n };\n\n return (\n <View style={[styles.container, containerStyle]}>\n <View style={[styles.playerWrapper, style]}>\n <RCTHMSHLSPlayer\n ref={hmsHlsPlayerRef}\n url={url}\n style={[\n styles.player,\n { aspectRatio: aspectRatio, flex: aspectRatio < 1 ? 1 : undefined },\n ]}\n enableStats={enableStats}\n enableControls={enableControls}\n onHmsHlsPlaybackEvent={handleHLSPlaybackEvent}\n onHmsHlsStatsEvent={handleHLSStatsEvent}\n />\n </View>\n </View>\n );\n};\n\nexport const HMSHLSPlayer = React.forwardRef<\n HMSHLSPlayerRefProperties,\n HMSHLSPlayerProps\n>(_HMSHLSPlayer);\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n playerWrapper: {\n backgroundColor: '#000000',\n alignItems: 'center',\n justifyContent: 'center',\n },\n player: {\n width: '100%',\n aspectRatio: 16 / 9,\n flex: 1,\n },\n});\n"],"mappings":"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"}
|
|
@@ -11,8 +11,7 @@ const eventType = HMSUpdateListenerActions.ON_PEER_UPDATE;
|
|
|
11
11
|
|
|
12
12
|
// TODO: How to handle events which have already been received?
|
|
13
13
|
// TODO(DOUBT): add HMSInstance as dependency because of actions enabling/disabling events on HMSInstance?
|
|
14
|
-
export const useHMSPeerUpdates =
|
|
15
|
-
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
14
|
+
export const useHMSPeerUpdates = (effect, deps = []) => {
|
|
16
15
|
React.useEffect(() => {
|
|
17
16
|
if (HMSEventEmitter.listenerCount(eventType) <= 0) {
|
|
18
17
|
addPeerUpdateSubscription();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","HMSConstants","HMSEncoder","HMSEventEmitter","getLogger","HMSNativeEventListener","HMSPeerUpdateOrdinals","getHmsPeersCache","HMSUpdateListenerActions","eventType","ON_PEER_UPDATE","useHMSPeerUpdates","effect","deps","
|
|
1
|
+
{"version":3,"names":["React","HMSConstants","HMSEncoder","HMSEventEmitter","getLogger","HMSNativeEventListener","HMSPeerUpdateOrdinals","getHmsPeersCache","HMSUpdateListenerActions","eventType","ON_PEER_UPDATE","useHMSPeerUpdates","effect","deps","useEffect","listenerCount","addPeerUpdateSubscription","subscription","addListener","remove","removePeerUpdateSubscription","peerUpdateSubscription","DEFAULT_SDK_ID","peerData","_getHmsPeersCache","_getLogger","data","peer","type","ordinal","keys","peerID","encodeHmsPeer","encodeHmsPeerUpdate","updatePeerCache","verbose","emit"],"sources":["useHMSPeerUpdates.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { HMSConstants } from '../classes/HMSConstants';\nimport { HMSEncoder } from '../classes/HMSEncoder';\nimport { HMSEventEmitter } from '../classes/HMSEventEmitter';\nimport { getLogger } from '../classes/HMSLogger';\nimport HMSNativeEventListener from '../classes/HMSNativeEventListener';\nimport type { HMSNativeEventSubscription } from '../classes/HMSNativeEventListener';\nimport type { HMSPeer } from '../classes/HMSPeer';\nimport { HMSPeerUpdate, HMSPeerUpdateOrdinals } from '../classes/HMSPeerUpdate';\nimport { getHmsPeersCache } from '../classes/HMSPeersCache';\nimport { HMSUpdateListenerActions } from '../classes/HMSUpdateListenerActions';\n\nconst eventType = HMSUpdateListenerActions.ON_PEER_UPDATE;\n\n// TODO: How to handle events which have already been received?\n// TODO(DOUBT): add HMSInstance as dependency because of actions enabling/disabling events on HMSInstance?\nexport const useHMSPeerUpdates = (\n effect: (data: { peer: HMSPeer; type: HMSPeerUpdate }) => void,\n deps: React.DependencyList | undefined = []\n) => {\n React.useEffect(() => {\n if (HMSEventEmitter.listenerCount(eventType) <= 0) {\n addPeerUpdateSubscription();\n }\n\n const subscription = HMSEventEmitter.addListener(eventType, effect, null);\n\n return () => {\n subscription.remove();\n\n if (HMSEventEmitter.listenerCount(eventType) <= 0) {\n removePeerUpdateSubscription();\n }\n };\n }, deps);\n};\n\nlet peerUpdateSubscription: HMSNativeEventSubscription | null = null;\n\nfunction addPeerUpdateSubscription() {\n if (peerUpdateSubscription !== null) {\n return;\n }\n\n peerUpdateSubscription = HMSNativeEventListener.addListener(\n HMSConstants.DEFAULT_SDK_ID,\n HMSUpdateListenerActions.ON_PEER_UPDATE,\n (peerData: any) => {\n const data: { peer: any; type: any } = {\n peer: peerData,\n type: null,\n };\n\n for (const ordinal of HMSPeerUpdateOrdinals.keys()) {\n if (ordinal in peerData) {\n data.peer.peerID = peerData[ordinal];\n data.type = ordinal;\n break;\n }\n }\n\n const peer: HMSPeer = HMSEncoder.encodeHmsPeer(data.peer);\n const type = HMSEncoder.encodeHmsPeerUpdate(data.type) || data.type;\n\n getHmsPeersCache()?.updatePeerCache(data.peer.peerID, data.peer, type);\n\n getLogger()?.verbose('#Listener ON_PEER_LISTENER_CALL', {\n peer,\n type,\n });\n\n HMSEventEmitter.emit(eventType, { peer, type });\n }\n );\n}\n\nfunction removePeerUpdateSubscription() {\n if (peerUpdateSubscription === null) {\n return;\n }\n\n peerUpdateSubscription.remove();\n peerUpdateSubscription = null;\n}\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAOC,sBAAsB,MAAM,mCAAmC;AAGtE,SAAwBC,qBAAqB,QAAQ,0BAA0B;AAC/E,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,wBAAwB,QAAQ,qCAAqC;AAE9E,MAAMC,SAAS,GAAGD,wBAAwB,CAACE,cAAc;;AAEzD;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAC/BC,MAA8D,EAC9DC,IAAsC,GAAG,EAAE,KACxC;EACHb,KAAK,CAACc,SAAS,CAAC,MAAM;IACpB,IAAIX,eAAe,CAACY,aAAa,CAACN,SAAS,CAAC,IAAI,CAAC,EAAE;MACjDO,yBAAyB,CAAC,CAAC;IAC7B;IAEA,MAAMC,YAAY,GAAGd,eAAe,CAACe,WAAW,CAACT,SAAS,EAAEG,MAAM,EAAE,IAAI,CAAC;IAEzE,OAAO,MAAM;MACXK,YAAY,CAACE,MAAM,CAAC,CAAC;MAErB,IAAIhB,eAAe,CAACY,aAAa,CAACN,SAAS,CAAC,IAAI,CAAC,EAAE;QACjDW,4BAA4B,CAAC,CAAC;MAChC;IACF,CAAC;EACH,CAAC,EAAEP,IAAI,CAAC;AACV,CAAC;AAED,IAAIQ,sBAAyD,GAAG,IAAI;AAEpE,SAASL,yBAAyBA,CAAA,EAAG;EACnC,IAAIK,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EAEAA,sBAAsB,GAAGhB,sBAAsB,CAACa,WAAW,CACzDjB,YAAY,CAACqB,cAAc,EAC3Bd,wBAAwB,CAACE,cAAc,EACtCa,QAAa,IAAK;IAAA,IAAAC,iBAAA,EAAAC,UAAA;IACjB,MAAMC,IAA8B,GAAG;MACrCC,IAAI,EAAEJ,QAAQ;MACdK,IAAI,EAAE;IACR,CAAC;IAED,KAAK,MAAMC,OAAO,IAAIvB,qBAAqB,CAACwB,IAAI,CAAC,CAAC,EAAE;MAClD,IAAID,OAAO,IAAIN,QAAQ,EAAE;QACvBG,IAAI,CAACC,IAAI,CAACI,MAAM,GAAGR,QAAQ,CAACM,OAAO,CAAC;QACpCH,IAAI,CAACE,IAAI,GAAGC,OAAO;QACnB;MACF;IACF;IAEA,MAAMF,IAAa,GAAGzB,UAAU,CAAC8B,aAAa,CAACN,IAAI,CAACC,IAAI,CAAC;IACzD,MAAMC,IAAI,GAAG1B,UAAU,CAAC+B,mBAAmB,CAACP,IAAI,CAACE,IAAI,CAAC,IAAIF,IAAI,CAACE,IAAI;IAEnE,CAAAJ,iBAAA,GAAAjB,gBAAgB,CAAC,CAAC,cAAAiB,iBAAA,eAAlBA,iBAAA,CAAoBU,eAAe,CAACR,IAAI,CAACC,IAAI,CAACI,MAAM,EAAEL,IAAI,CAACC,IAAI,EAAEC,IAAI,CAAC;IAEtE,CAAAH,UAAA,GAAArB,SAAS,CAAC,CAAC,cAAAqB,UAAA,eAAXA,UAAA,CAAaU,OAAO,CAAC,iCAAiC,EAAE;MACtDR,IAAI;MACJC;IACF,CAAC,CAAC;IAEFzB,eAAe,CAACiC,IAAI,CAAC3B,SAAS,EAAE;MAAEkB,IAAI;MAAEC;IAAK,CAAC,CAAC;EACjD,CACF,CAAC;AACH;AAEA,SAASR,4BAA4BA,CAAA,EAAG;EACtC,IAAIC,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EAEAA,sBAAsB,CAACF,MAAM,CAAC,CAAC;EAC/BE,sBAAsB,GAAG,IAAI;AAC/B"}
|
package/lib/module/index.js
CHANGED
|
@@ -83,7 +83,7 @@ export * from './classes/HMSIOSAudioMode';
|
|
|
83
83
|
import { HMSSDK as HmsManager } from './classes/HMSSDK';
|
|
84
84
|
|
|
85
85
|
// 100ms React Native Native Module
|
|
86
|
-
export { default as HMSManagerModule } from './
|
|
86
|
+
export { default as HMSManagerModule } from './modules/HMSManagerModule';
|
|
87
87
|
|
|
88
88
|
// 100ms Components
|
|
89
89
|
export * from './components/HMSHLSPlayer';
|
|
@@ -92,6 +92,10 @@ export * from './components/HMSHLSPlayer';
|
|
|
92
92
|
export * from './hooks/useHMSPeerUpdates';
|
|
93
93
|
export { useHmsViewsResolutionsState } from './hooks/hmsviews';
|
|
94
94
|
|
|
95
|
+
// 100ms Utilities
|
|
96
|
+
|
|
97
|
+
export { checkNotifications } from './utils/notification';
|
|
98
|
+
|
|
95
99
|
// 100ms types
|
|
96
100
|
export * from './types';
|
|
97
101
|
export * from './stores/types';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HMSSDK","HmsManager","default","HMSManagerModule","useHmsViewsResolutionsState"],"sources":["index.ts"],"sourcesContent":["export * from './classes/HMSConfig';\nexport * from './classes/HMSUpdateListenerActions';\nexport * from './classes/HMSMessage';\nexport * from './classes/HMSVideoTrackSettings';\nexport * from './classes/HMSVideoTrack';\nexport * from './classes/HMSVideoSettings';\nexport * from './classes/HMSVideoCodec';\nexport * from './classes/HMSTrackSettings';\nexport * from './classes/HMSTrack';\nexport * from './classes/HMSTrackType';\nexport * from './classes/HMSTrackSource';\nexport * from './classes/HMSSubscribeSettings';\nexport * from './classes/HMSSimulcastSettings';\nexport * from './classes/HMSSimulcastLayerSettings';\nexport * from './classes/HMSSDK';\nexport * from './classes/HMSRoom';\nexport * from './classes/HMSRoleChangeRequest';\nexport * from './classes/HMSRole';\nexport * from './classes/HMSRemoteVideoTrack';\nexport * from './classes/HMSRemotePeer';\nexport * from './classes/HMSRemoteAudioTrack';\nexport * from './classes/HMSPublishSettings';\nexport * from './classes/HMSPermissions';\nexport * from './classes/HMSPeer';\nexport * from './classes/HMSLocalVideoTrack';\nexport * from './classes/HMSLocalPeer';\nexport * from './classes/HMSLocalAudioTrack';\nexport * from './classes/HMSHelper';\nexport * from './classes/HMSEncoder';\nexport * from './classes/HMSAudioTrackSettings';\nexport * from './classes/HMSAudioTrack';\nexport * from './classes/HMSAudioSettings';\nexport * from './classes/HMSAudioCodec';\nexport * from './classes/HMSPeerUpdate';\nexport * from './classes/HMSRoomUpdate';\nexport * from './classes/HMSTrackUpdate';\nexport * from './classes/HMSLogger';\nexport * from './classes/HMSLogLevel';\nexport * from './classes/HMSVideoViewMode';\nexport * from './classes/HMSChangeTrackStateRequest';\nexport * from './classes/HMSSpeaker';\nexport * from './classes/HMSCameraFacing';\nexport * from './classes/HMSException';\nexport * from './classes/HMSRtmpStreamingState';\nexport * from './classes/HMSServerRecordingState';\nexport * from './classes/HMSBrowserRecordingState';\nexport * from './classes/HMSRTMPConfig';\nexport * from './classes/HMSHLSConfig';\nexport * from './classes/HMSHLSMeetingURLVariant';\nexport * from './classes/HMSHLSVariant';\nexport * from './classes/HMSHLSStreamingState';\nexport * from './classes/HMSVideoResolution';\nexport * from './classes/HMSLocalAudioStats';\nexport * from './classes/HMSLocalVideoStats';\nexport * from './classes/HMSRTCStats';\nexport * from './classes/HMSRTCStatsReport';\nexport * from './classes/HMSRemoteAudioStats';\nexport * from './classes/HMSRemoteVideoStats';\nexport * from './classes/HMSHLSRecordingConfig';\nexport * from './classes/HMSHLSRecordingState';\nexport * from './classes/HMSMessageRecipient';\nexport * from './classes/HMSMessageRecipientType';\nexport * from './classes/HMSNetworkQuality';\nexport * from './classes/HMSRtmpVideoResolution';\nexport * from './classes/HMSAudioDevice';\nexport * from './classes/HMSAudioMode';\nexport * from './classes/HMSAudioMixingMode';\nexport * from './classes/HMSAudioNode';\nexport * from './classes/HMSMicNode';\nexport * from './classes/HMSScreenBroadcastAudioReceiverNode';\nexport * from './classes/HMSAudioFilePlayerNode';\nexport * from './classes/HMSAudioMixerSource';\nexport * from './classes/HMSTrackSettingsInitState';\nexport * from './classes/HMSLogSettings';\nexport * from './classes/HMSLogAlarmManager';\nexport * from './classes/HMSPIPListenerActions';\nexport * from './classes/HMSLayer';\nexport * from './classes/HMSSimulcastLayerDefinition';\nexport * from './classes/HMSQualityLimitationReasons';\nexport * from './classes/HMSQualityLimitationReason';\nexport * from './classes/HMSCameraControl';\nexport * from './classes/HMSIOSAudioMode';\nexport type {\n HMSSessionStore,\n HMSSessionStoreValue,\n} from './classes/HMSSessionStore';\nexport type {\n HmsViewComponent as HMSView,\n HmsComponentProps as HMSViewProps,\n} from './classes/HmsView';\nexport type { HMSPIPConfig } from './classes/HMSPIPConfig';\n\nimport { HMSSDK as HmsManager } from './classes/HMSSDK';\n\n// 100ms React Native Native Module\nexport { default as HMSManagerModule } from './
|
|
1
|
+
{"version":3,"names":["HMSSDK","HmsManager","default","HMSManagerModule","useHmsViewsResolutionsState","checkNotifications"],"sources":["index.ts"],"sourcesContent":["export * from './classes/HMSConfig';\nexport * from './classes/HMSUpdateListenerActions';\nexport * from './classes/HMSMessage';\nexport * from './classes/HMSVideoTrackSettings';\nexport * from './classes/HMSVideoTrack';\nexport * from './classes/HMSVideoSettings';\nexport * from './classes/HMSVideoCodec';\nexport * from './classes/HMSTrackSettings';\nexport * from './classes/HMSTrack';\nexport * from './classes/HMSTrackType';\nexport * from './classes/HMSTrackSource';\nexport * from './classes/HMSSubscribeSettings';\nexport * from './classes/HMSSimulcastSettings';\nexport * from './classes/HMSSimulcastLayerSettings';\nexport * from './classes/HMSSDK';\nexport * from './classes/HMSRoom';\nexport * from './classes/HMSRoleChangeRequest';\nexport * from './classes/HMSRole';\nexport * from './classes/HMSRemoteVideoTrack';\nexport * from './classes/HMSRemotePeer';\nexport * from './classes/HMSRemoteAudioTrack';\nexport * from './classes/HMSPublishSettings';\nexport * from './classes/HMSPermissions';\nexport * from './classes/HMSPeer';\nexport * from './classes/HMSLocalVideoTrack';\nexport * from './classes/HMSLocalPeer';\nexport * from './classes/HMSLocalAudioTrack';\nexport * from './classes/HMSHelper';\nexport * from './classes/HMSEncoder';\nexport * from './classes/HMSAudioTrackSettings';\nexport * from './classes/HMSAudioTrack';\nexport * from './classes/HMSAudioSettings';\nexport * from './classes/HMSAudioCodec';\nexport * from './classes/HMSPeerUpdate';\nexport * from './classes/HMSRoomUpdate';\nexport * from './classes/HMSTrackUpdate';\nexport * from './classes/HMSLogger';\nexport * from './classes/HMSLogLevel';\nexport * from './classes/HMSVideoViewMode';\nexport * from './classes/HMSChangeTrackStateRequest';\nexport * from './classes/HMSSpeaker';\nexport * from './classes/HMSCameraFacing';\nexport * from './classes/HMSException';\nexport * from './classes/HMSRtmpStreamingState';\nexport * from './classes/HMSServerRecordingState';\nexport * from './classes/HMSBrowserRecordingState';\nexport * from './classes/HMSRTMPConfig';\nexport * from './classes/HMSHLSConfig';\nexport * from './classes/HMSHLSMeetingURLVariant';\nexport * from './classes/HMSHLSVariant';\nexport * from './classes/HMSHLSStreamingState';\nexport * from './classes/HMSVideoResolution';\nexport * from './classes/HMSLocalAudioStats';\nexport * from './classes/HMSLocalVideoStats';\nexport * from './classes/HMSRTCStats';\nexport * from './classes/HMSRTCStatsReport';\nexport * from './classes/HMSRemoteAudioStats';\nexport * from './classes/HMSRemoteVideoStats';\nexport * from './classes/HMSHLSRecordingConfig';\nexport * from './classes/HMSHLSRecordingState';\nexport * from './classes/HMSMessageRecipient';\nexport * from './classes/HMSMessageRecipientType';\nexport * from './classes/HMSNetworkQuality';\nexport * from './classes/HMSRtmpVideoResolution';\nexport * from './classes/HMSAudioDevice';\nexport * from './classes/HMSAudioMode';\nexport * from './classes/HMSAudioMixingMode';\nexport * from './classes/HMSAudioNode';\nexport * from './classes/HMSMicNode';\nexport * from './classes/HMSScreenBroadcastAudioReceiverNode';\nexport * from './classes/HMSAudioFilePlayerNode';\nexport * from './classes/HMSAudioMixerSource';\nexport * from './classes/HMSTrackSettingsInitState';\nexport * from './classes/HMSLogSettings';\nexport * from './classes/HMSLogAlarmManager';\nexport * from './classes/HMSPIPListenerActions';\nexport * from './classes/HMSLayer';\nexport * from './classes/HMSSimulcastLayerDefinition';\nexport * from './classes/HMSQualityLimitationReasons';\nexport * from './classes/HMSQualityLimitationReason';\nexport * from './classes/HMSCameraControl';\nexport * from './classes/HMSIOSAudioMode';\nexport type {\n HMSSessionStore,\n HMSSessionStoreValue,\n} from './classes/HMSSessionStore';\nexport type {\n HmsViewComponent as HMSView,\n HmsComponentProps as HMSViewProps,\n} from './classes/HmsView';\nexport type { HMSPIPConfig } from './classes/HMSPIPConfig';\n\nimport { HMSSDK as HmsManager } from './classes/HMSSDK';\n\n// 100ms React Native Native Module\nexport { default as HMSManagerModule } from './modules/HMSManagerModule';\n\n// 100ms Components\nexport * from './components/HMSHLSPlayer';\n\n// 100ms Hooks\nexport * from './hooks/useHMSPeerUpdates';\nexport { useHmsViewsResolutionsState } from './hooks/hmsviews';\n\n// 100ms Utilities\nexport type { NotificationResult } from './utils/notification';\nexport { checkNotifications } from './utils/notification';\n\n// 100ms types\nexport * from './types';\nexport * from './stores/types';\n\nexport default HmsManager;\n"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,oCAAoC;AAClD,cAAc,sBAAsB;AACpC,cAAc,iCAAiC;AAC/C,cAAc,yBAAyB;AACvC,cAAc,4BAA4B;AAC1C,cAAc,yBAAyB;AACvC,cAAc,4BAA4B;AAC1C,cAAc,oBAAoB;AAClC,cAAc,wBAAwB;AACtC,cAAc,0BAA0B;AACxC,cAAc,gCAAgC;AAC9C,cAAc,gCAAgC;AAC9C,cAAc,qCAAqC;AACnD,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,gCAAgC;AAC9C,cAAc,mBAAmB;AACjC,cAAc,+BAA+B;AAC7C,cAAc,yBAAyB;AACvC,cAAc,+BAA+B;AAC7C,cAAc,8BAA8B;AAC5C,cAAc,0BAA0B;AACxC,cAAc,mBAAmB;AACjC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,8BAA8B;AAC5C,cAAc,qBAAqB;AACnC,cAAc,sBAAsB;AACpC,cAAc,iCAAiC;AAC/C,cAAc,yBAAyB;AACvC,cAAc,4BAA4B;AAC1C,cAAc,yBAAyB;AACvC,cAAc,yBAAyB;AACvC,cAAc,yBAAyB;AACvC,cAAc,0BAA0B;AACxC,cAAc,qBAAqB;AACnC,cAAc,uBAAuB;AACrC,cAAc,4BAA4B;AAC1C,cAAc,sCAAsC;AACpD,cAAc,sBAAsB;AACpC,cAAc,2BAA2B;AACzC,cAAc,wBAAwB;AACtC,cAAc,iCAAiC;AAC/C,cAAc,mCAAmC;AACjD,cAAc,oCAAoC;AAClD,cAAc,yBAAyB;AACvC,cAAc,wBAAwB;AACtC,cAAc,mCAAmC;AACjD,cAAc,yBAAyB;AACvC,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,uBAAuB;AACrC,cAAc,6BAA6B;AAC3C,cAAc,+BAA+B;AAC7C,cAAc,+BAA+B;AAC7C,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,cAAc,mCAAmC;AACjD,cAAc,6BAA6B;AAC3C,cAAc,kCAAkC;AAChD,cAAc,0BAA0B;AACxC,cAAc,wBAAwB;AACtC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,sBAAsB;AACpC,cAAc,+CAA+C;AAC7D,cAAc,kCAAkC;AAChD,cAAc,+BAA+B;AAC7C,cAAc,qCAAqC;AACnD,cAAc,0BAA0B;AACxC,cAAc,8BAA8B;AAC5C,cAAc,iCAAiC;AAC/C,cAAc,oBAAoB;AAClC,cAAc,uCAAuC;AACrD,cAAc,uCAAuC;AACrD,cAAc,sCAAsC;AACpD,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AAWzC,SAASA,MAAM,IAAIC,UAAU,QAAQ,kBAAkB;;AAEvD;AACA,SAASC,OAAO,IAAIC,gBAAgB,QAAQ,4BAA4B;;AAExE;AACA,cAAc,2BAA2B;;AAEzC;AACA,cAAc,2BAA2B;AACzC,SAASC,2BAA2B,QAAQ,kBAAkB;;AAE9D;;AAEA,SAASC,kBAAkB,QAAQ,sBAAsB;;AAEzD;AACA,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAE9B,eAAeJ,UAAU"}
|
|
@@ -2,10 +2,8 @@ import { create } from 'zustand';
|
|
|
2
2
|
import { subscribeWithSelector } from 'zustand/middleware';
|
|
3
3
|
import { createHMSHLSPlayerPlaybackSlice } from './hls-player-playback-slice';
|
|
4
4
|
import { createHMSViewsSlice } from './hmsviews-slice';
|
|
5
|
-
export const useHMSStore = create()(subscribeWithSelector(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
}));
|
|
5
|
+
export const useHMSStore = create()(subscribeWithSelector((...a) => ({
|
|
6
|
+
...createHMSHLSPlayerPlaybackSlice(...a),
|
|
7
|
+
...createHMSViewsSlice(...a)
|
|
8
|
+
})));
|
|
11
9
|
//# sourceMappingURL=hms-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","subscribeWithSelector","createHMSHLSPlayerPlaybackSlice","createHMSViewsSlice","useHMSStore","
|
|
1
|
+
{"version":3,"names":["create","subscribeWithSelector","createHMSHLSPlayerPlaybackSlice","createHMSViewsSlice","useHMSStore","a"],"sources":["hms-store.ts"],"sourcesContent":["import { create } from 'zustand';\nimport { subscribeWithSelector } from 'zustand/middleware';\n\nimport { createHMSHLSPlayerPlaybackSlice } from './hls-player-playback-slice';\nimport { createHMSViewsSlice } from './hmsviews-slice';\nimport type { HMSStore } from './types';\n\nexport const useHMSStore = create<HMSStore>()(\n subscribeWithSelector((...a) => ({\n ...createHMSHLSPlayerPlaybackSlice(...a),\n ...createHMSViewsSlice(...a)\n }))\n);\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SAASC,qBAAqB,QAAQ,oBAAoB;AAE1D,SAASC,+BAA+B,QAAQ,6BAA6B;AAC7E,SAASC,mBAAmB,QAAQ,kBAAkB;AAGtD,OAAO,MAAMC,WAAW,GAAGJ,MAAM,CAAW,CAAC,CAC3CC,qBAAqB,CAAC,CAAC,GAAGI,CAAC,MAAM;EAC/B,GAAGH,+BAA+B,CAAC,GAAGG,CAAC,CAAC;EACxC,GAAGF,mBAAmB,CAAC,GAAGE,CAAC;AAC7B,CAAC,CAAC,CACJ,CAAC"}
|
|
@@ -103,12 +103,9 @@ export class EventEmitter {
|
|
|
103
103
|
*
|
|
104
104
|
* emitter.emit('someEvent', 'abc'); // logs 'abc'
|
|
105
105
|
*/
|
|
106
|
-
emit(eventType) {
|
|
106
|
+
emit(eventType, ...args) {
|
|
107
107
|
const subscriptions = this._subscriber.getSubscriptionsForType(eventType);
|
|
108
108
|
if (subscriptions) {
|
|
109
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
110
|
-
args[_key - 1] = arguments[_key];
|
|
111
|
-
}
|
|
112
109
|
for (let i = 0, l = subscriptions.length; i < l; i++) {
|
|
113
110
|
const subscription = subscriptions[i];
|
|
114
111
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EmitterSubscription","EventSubscriptionVendor","sparseFilterPredicate","EventEmitter","constructor","subscriber","_defineProperty","_subscriber","addListener","eventType","listener","context","addSubscription","removeAllListeners","removeAllSubscriptions","removeSubscription","subscription","emitter","console","warn","listenerCount","subscriptions","getSubscriptionsForType","filter","length","emit","
|
|
1
|
+
{"version":3,"names":["EmitterSubscription","EventSubscriptionVendor","sparseFilterPredicate","EventEmitter","constructor","subscriber","_defineProperty","_subscriber","addListener","eventType","listener","context","addSubscription","removeAllListeners","removeAllSubscriptions","removeSubscription","subscription","emitter","console","warn","listenerCount","subscriptions","getSubscriptionsForType","filter","length","emit","args","i","l","apply","removeListener","remove"],"sources":["EventEmitter.ts"],"sourcesContent":["import { EmitterSubscription } from './_EmitterSubscription';\nimport { EventSubscriptionVendor } from './_EventSubscriptionVendor';\n\nconst sparseFilterPredicate = () => true;\n\nexport { EmitterSubscription } from './_EmitterSubscription';\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nexport class EventEmitter {\n _subscriber: EventSubscriptionVendor;\n\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n constructor(subscriber?: EventSubscriptionVendor | null) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n addListener(\n eventType: string,\n listener: Function,\n context: Object | null | undefined\n ): EmitterSubscription {\n return this._subscriber.addSubscription(\n eventType,\n new EmitterSubscription(this, this._subscriber, listener, context)\n ) as EmitterSubscription;\n }\n\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n removeAllListeners(eventType: string | undefined | null) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n\n /**\n * Removes a specific subscription. Called by the `remove()` method of the\n * subscription itself to ensure any necessary cleanup is performed.\n */\n removeSubscription(subscription: EmitterSubscription) {\n if (subscription.emitter !== this) {\n console.warn('Subscription does not belong to this emitter.'); // TODO: use HMSLogger here\n return;\n }\n\n this._subscriber.removeSubscription(subscription);\n }\n\n /**\n * Returns the number of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {number}\n */\n listenerCount(eventType: string): number {\n const subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n return subscriptions\n ? // We filter out missing entries because the array is sparse.\n // \"callbackfn is called only for elements of the array which actually\n // exist; it is not called for missing elements of the array.\"\n // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n subscriptions.filter(sparseFilterPredicate).length\n : 0;\n }\n\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n emit(eventType: string, ...args: any[]) {\n const subscriptions = this._subscriber.getSubscriptionsForType(\n eventType\n ) as EmitterSubscription[] | null | undefined;\n if (subscriptions) {\n for (let i = 0, l = subscriptions.length; i < l; i++) {\n const subscription = subscriptions[i];\n\n // The subscription may have been removed during this event loop.\n if (subscription && subscription.listener) {\n subscription.listener.apply(subscription.context, args);\n }\n }\n }\n }\n\n /**\n * Removes the given listener for event of specific type.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n *\n * @example\n * emitter.removeListener('someEvent', function(message) {\n * console.log(message);\n * }); // removes the listener if already registered\n *\n */\n removeListener(eventType: string, listener: Function) {\n const subscriptions = this._subscriber.getSubscriptionsForType(\n eventType\n ) as EmitterSubscription[] | null | undefined;\n if (subscriptions) {\n for (let i = 0, l = subscriptions.length; i < l; i++) {\n const subscription = subscriptions[i];\n\n // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HMSManager","checkNotifications"],"sources":["notification.ts"],"sourcesContent":["import HMSManager from '../modules/HMSManagerModule';\n\nexport type NotificationResult = {\n status: 'granted' | 'blocked';\n settings: {};\n};\n\nexport const checkNotifications = async (): Promise<NotificationResult> => {\n return HMSManager.checkNotifications();\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,6BAA6B;AAOpD,OAAO,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAyC;EACzE,OAAOD,UAAU,CAACC,kBAAkB,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { HMSTrackType } from './HMSTrackType';
|
|
3
2
|
import { HMSUpdateListenerActions } from './HMSUpdateListenerActions';
|
|
3
|
+
import type { HMSTrackType } from './HMSTrackType';
|
|
4
4
|
import type { HmsComponentProps } from './HmsView';
|
|
5
5
|
import type { HMSConfig } from './HMSConfig';
|
|
6
6
|
import type { HMSLocalPeer } from './HMSLocalPeer';
|
|
@@ -24,7 +24,6 @@ import type { HMSPIPConfig } from './HMSPIPConfig';
|
|
|
24
24
|
type HmsViewProps = Omit<HmsComponentProps, 'id'>;
|
|
25
25
|
export declare class HMSSDK {
|
|
26
26
|
id: string;
|
|
27
|
-
private muteStatus;
|
|
28
27
|
private appStateSubscription?;
|
|
29
28
|
private onPreviewDelegate?;
|
|
30
29
|
private onJoinDelegate?;
|
|
@@ -396,15 +395,6 @@ export declare class HMSSDK {
|
|
|
396
395
|
* @memberof HMSSDK
|
|
397
396
|
*/
|
|
398
397
|
setVolume: (track: HMSTrack, volume: number) => void;
|
|
399
|
-
resetVolume: () => void;
|
|
400
|
-
/**
|
|
401
|
-
* - This is a temporary solution for the situation when mic access is taken from the app and
|
|
402
|
-
* user returns to the app with no mic access. It will re-acquire the mic by setting the volume
|
|
403
|
-
* from native side
|
|
404
|
-
*
|
|
405
|
-
* @memberof HMSSDK
|
|
406
|
-
*/
|
|
407
|
-
addAppStateListener: () => void;
|
|
408
398
|
/**
|
|
409
399
|
* - This function is used to start screenshare, currently available only for android
|
|
410
400
|
*
|
|
@@ -84,10 +84,12 @@ export type { HMSSessionStore, HMSSessionStoreValue, } from './classes/HMSSessio
|
|
|
84
84
|
export type { HmsViewComponent as HMSView, HmsComponentProps as HMSViewProps, } from './classes/HmsView';
|
|
85
85
|
export type { HMSPIPConfig } from './classes/HMSPIPConfig';
|
|
86
86
|
import { HMSSDK as HmsManager } from './classes/HMSSDK';
|
|
87
|
-
export { default as HMSManagerModule } from './
|
|
87
|
+
export { default as HMSManagerModule } from './modules/HMSManagerModule';
|
|
88
88
|
export * from './components/HMSHLSPlayer';
|
|
89
89
|
export * from './hooks/useHMSPeerUpdates';
|
|
90
90
|
export { useHmsViewsResolutionsState } from './hooks/hmsviews';
|
|
91
|
+
export type { NotificationResult } from './utils/notification';
|
|
92
|
+
export { checkNotifications } from './utils/notification';
|
|
91
93
|
export * from './types';
|
|
92
94
|
export * from './stores/types';
|
|
93
95
|
export default HmsManager;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@100mslive/react-native-hms",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.3-beta.0",
|
|
4
4
|
"description": "Integrate Real Time Audio and Video conferencing, Interactive Live Streaming, and Chat in your apps with 100ms React Native SDK. With support for HLS and RTMP Live Streaming and Recording, Picture-in-Picture (PiP), one-to-one Video Call Modes, Audio Rooms, Video Player and much more, add immersive real-time communications to your apps.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/sdk-versions.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// import type { HMSException } from "./HMSException";
|
|
2
2
|
import type { HMSPeer } from './HMSPeer';
|
|
3
|
-
import HMSManagerModule from '
|
|
3
|
+
import HMSManagerModule from '../modules/HMSManagerModule';
|
|
4
4
|
import { HMSEncoder, logger } from '@100mslive/react-native-hms';
|
|
5
5
|
import { HMSConstants } from './HMSConstants';
|
|
6
6
|
import { getHmsPeersCache } from './HMSPeersCache';
|
|
@@ -34,10 +34,12 @@ export class HMSPeerListIterator {
|
|
|
34
34
|
async next(): Promise<HMSPeer[]> {
|
|
35
35
|
logger?.verbose('#Function HMSPeerListIterator#next', this.uniqueId);
|
|
36
36
|
try {
|
|
37
|
-
const { totalCount, peers } = await HMSManagerModule.peerListIteratorNext(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const { totalCount, peers } = await HMSManagerModule.peerListIteratorNext(
|
|
38
|
+
{
|
|
39
|
+
id: HMSConstants.DEFAULT_SDK_ID,
|
|
40
|
+
uniqueId: this.uniqueId,
|
|
41
|
+
}
|
|
42
|
+
);
|
|
41
43
|
|
|
42
44
|
this._totalCount = totalCount;
|
|
43
45
|
|
|
@@ -45,7 +47,7 @@ export class HMSPeerListIterator {
|
|
|
45
47
|
const hmsPeersCache = getHmsPeersCache();
|
|
46
48
|
|
|
47
49
|
if (hmsPeersCache) {
|
|
48
|
-
peers.forEach(peer => {
|
|
50
|
+
peers.forEach((peer) => {
|
|
49
51
|
hmsPeersCache.updatePeerCache(peer.peerID, peer);
|
|
50
52
|
});
|
|
51
53
|
}
|