@100mslive/react-native-hms 1.9.1-beta.1 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +1 -2
  2. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +0 -7
  3. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +0 -20
  4. package/ios/HMSHLSPlayerManager.swift +4 -0
  5. package/lib/commonjs/classes/HMSCameraControl.js +1 -2
  6. package/lib/commonjs/classes/HMSCameraControl.js.map +1 -1
  7. package/lib/commonjs/classes/HMSSDK.js +16 -49
  8. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  9. package/lib/commonjs/classes/HmsView.js +3 -4
  10. package/lib/commonjs/classes/HmsView.js.map +1 -1
  11. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +13 -16
  12. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  13. package/lib/commonjs/hooks/useHMSPeerUpdates.js +1 -2
  14. package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
  15. package/lib/commonjs/stores/hms-store.js +4 -6
  16. package/lib/commonjs/stores/hms-store.js.map +1 -1
  17. package/lib/commonjs/utils/emitter/EventEmitter.js +1 -4
  18. package/lib/commonjs/utils/emitter/EventEmitter.js.map +1 -1
  19. package/lib/module/classes/HMSCameraControl.js +1 -2
  20. package/lib/module/classes/HMSCameraControl.js.map +1 -1
  21. package/lib/module/classes/HMSSDK.js +17 -50
  22. package/lib/module/classes/HMSSDK.js.map +1 -1
  23. package/lib/module/classes/HmsView.js +3 -4
  24. package/lib/module/classes/HmsView.js.map +1 -1
  25. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +13 -16
  26. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  27. package/lib/module/hooks/useHMSPeerUpdates.js +1 -2
  28. package/lib/module/hooks/useHMSPeerUpdates.js.map +1 -1
  29. package/lib/module/stores/hms-store.js +4 -6
  30. package/lib/module/stores/hms-store.js.map +1 -1
  31. package/lib/module/utils/emitter/EventEmitter.js +1 -4
  32. package/lib/module/utils/emitter/EventEmitter.js.map +1 -1
  33. package/lib/typescript/classes/HMSSDK.d.ts +0 -9
  34. package/package.json +1 -1
  35. package/sdk-versions.json +2 -2
  36. package/src/classes/HMSSDK.tsx +1 -26
@@ -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 = _ref => {
33
- let {
34
- nativeEvent
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","_ref","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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACpE,SACEC,cAAc,EACdC,sBAAsB,EACtBC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,cAAc;AAErB,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,2BAA2B,QAAQ,mBAAmB;AAiB/D,MAAMC,OAAO,GAAGP,sBAAsB,CAAe,SAAS,CAAC;AAC/D,IAAIQ,cAAc,GAAG,CAAC;AACtB,IAAIC,WAAW,GAAG,IAAIC,GAAG,CAAC,CAAC;AAY3B,OAAO,MAAMC,gBAAgB,gBAAGhB,KAAK,CAACiB,UAAU,CAC9C,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,MAAM;IACJC,OAAO;IACPC,KAAK,GAAGC,MAAM,CAACC,OAAO;IACtBC,EAAE,GAAGf,YAAY,CAACgB,cAAc;IAChCC,MAAM,GAAG,KAAK;IACdC,qBAAqB,GAAG,KAAK;IAC7BC,aAAa,GAAG,IAAI;IACpBC,SAAS,GAAGnB,gBAAgB,CAACoB;EAC/B,CAAC,GAAGZ,KAAK;EAET,MAAMa,UAAe,GAAG5B,MAAM,CAAC,CAAC;EAChC,MAAM,CAAC6B,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGhC,QAAQ,CAAC,KAAK,CAAC;EACrE,MAAMiC,IAAI,GAAG;IACXd,OAAO;IACPI,EAAE;IACFE,MAAM;IACNG;EACF,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMM,QAAQ,GAAGC,IAAA,IAKV;IAAA,IALW;MAChBC;IAID,CAAC,GAAAD,IAAA;IACA,MAAM;MAAEE,KAAK;MAAEJ;IAAK,CAAC,GAAGG,WAAW;IAEnCJ,sBAAsB,CAAC,IAAI,CAAC;IAE5B,IAAIK,KAAK,KAAK,4BAA4B,EAAE;MAC1C3B,2BAA2B,CAACS,OAAO,EAAEc,IAAI,CAAC;IAC5C;EACF,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMK,eAAe,GAAID,KAExB,IAAK;IACJ;IACA,IAAI;MAAEE,SAAS;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAGJ,KAAK,CAACD,WAAW;IACpD;IACA,IAAIM,OAAO,GAAG7B,WAAW,CAAC8B,GAAG,CAACJ,SAAS,CAAC;IACxC,IAAIC,MAAM,EAAE;MACV;MACAE,OAAO,CAACE,OAAO,CAACJ,MAAM,CAAC;IACzB,CAAC,MAAM;MACL;MACAE,OAAO,CAACG,MAAM,CAACJ,KAAK,CAAC;IACvB;IACA;IACA5B,WAAW,CAACiC,MAAM,CAACP,SAAS,CAAC;EAC/B,CAAC;EAED,MAAMQ,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC1B,MAAMC,iBAAiB,GAAG1C,SAAS,CAAC2C,oBAAoB,CAAC,SAAS,CAAC;IAEnE,IAAIV,SAAS,GAAG3B,cAAc,EAAE;IAChC,IAAIsC,UAAU,GAAGrC,WAAW;;IAE5B;IACA;IACA,IAAI6B,OAAO,GAAG,IAAIS,OAAO,CAAC,UAAUP,OAAO,EAAEC,MAAM,EAAE;MACnDK,UAAU,CAACE,GAAG,CAACb,SAAS,EAAE;QAAEK,OAAO;QAAEC;MAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEFvC,SAAS,CAAC+C,0BAA0B,CAClClD,cAAc,CAAC2B,UAAU,CAACwB,OAAO,CAAC,EAClCN,iBAAiB,CAACO,QAAQ,CAACR,OAAO,EAClC,CAACR,SAAS,CACZ,CAAC;IACD,OAAOG,OAAO;EAChB,CAAC;EAEDzC,mBAAmB,CAACiB,GAAG,EAAE,MAAM;IAC7B,OAAO;MACL6B;IACF,CAAC;EACH,CAAC,CAAC;EAEF,oBACEhD,KAAA,CAAAyD,aAAA,CAAC7C,OAAO;IACNO,GAAG,EAAEY,UAAW;IAChBI,QAAQ,EAAEA,QAAS;IACnBD,IAAI,EAAEA,IAAK;IACXb,KAAK,EACHb,QAAQ,CAACkD,EAAE,KAAK,SAAS,GAAI1B,mBAAmB,GAAGX,KAAK,GAAG,CAAC,CAAC,GAAIA,KAClE;IACDO,aAAa,EAAEA,aAAc;IAC7BC,SAAS,EAAEA,SAAU;IACrBF,qBAAqB,EAAEA,qBAAsB;IAC7CgC,cAAc,EAAEpB;EAAgB,CACjC,CAAC;AAEN,CACF,CAAC;AAED,MAAMjB,MAAM,GAAGhB,UAAU,CAACsD,MAAM,CAAC;EAC/BrC,OAAO,EAAE;IACPsC,IAAI,EAAE;EACR;AACF,CAAC,CAAC"}
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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACpE,SACEC,cAAc,EACdC,sBAAsB,EACtBC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,cAAc;AAErB,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,2BAA2B,QAAQ,mBAAmB;AAiB/D,MAAMC,OAAO,GAAGP,sBAAsB,CAAe,SAAS,CAAC;AAC/D,IAAIQ,cAAc,GAAG,CAAC;AACtB,IAAIC,WAAW,GAAG,IAAIC,GAAG,CAAC,CAAC;AAY3B,OAAO,MAAMC,gBAAgB,gBAAGhB,KAAK,CAACiB,UAAU,CAC9C,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,MAAM;IACJC,OAAO;IACPC,KAAK,GAAGC,MAAM,CAACC,OAAO;IACtBC,EAAE,GAAGf,YAAY,CAACgB,cAAc;IAChCC,MAAM,GAAG,KAAK;IACdC,qBAAqB,GAAG,KAAK;IAC7BC,aAAa,GAAG,IAAI;IACpBC,SAAS,GAAGnB,gBAAgB,CAACoB;EAC/B,CAAC,GAAGZ,KAAK;EAET,MAAMa,UAAe,GAAG5B,MAAM,CAAC,CAAC;EAChC,MAAM,CAAC6B,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGhC,QAAQ,CAAC,KAAK,CAAC;EACrE,MAAMiC,IAAI,GAAG;IACXd,OAAO;IACPI,EAAE;IACFE,MAAM;IACNG;EACF,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMM,QAAQ,GAAGA,CAAC;IAChBC;EAID,CAAC,KAAK;IACL,MAAM;MAAEC,KAAK;MAAEH;IAAK,CAAC,GAAGE,WAAW;IAEnCH,sBAAsB,CAAC,IAAI,CAAC;IAE5B,IAAII,KAAK,KAAK,4BAA4B,EAAE;MAC1C1B,2BAA2B,CAACS,OAAO,EAAEc,IAAI,CAAC;IAC5C;EACF,CAAC;;EAED;AACJ;AACA;AACA;EACI,MAAMI,eAAe,GAAID,KAExB,IAAK;IACJ;IACA,IAAI;MAAEE,SAAS;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAGJ,KAAK,CAACD,WAAW;IACpD;IACA,IAAIM,OAAO,GAAG5B,WAAW,CAAC6B,GAAG,CAACJ,SAAS,CAAC;IACxC,IAAIC,MAAM,EAAE;MACV;MACAE,OAAO,CAACE,OAAO,CAACJ,MAAM,CAAC;IACzB,CAAC,MAAM;MACL;MACAE,OAAO,CAACG,MAAM,CAACJ,KAAK,CAAC;IACvB;IACA;IACA3B,WAAW,CAACgC,MAAM,CAACP,SAAS,CAAC;EAC/B,CAAC;EAED,MAAMQ,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC1B,MAAMC,iBAAiB,GAAGzC,SAAS,CAAC0C,oBAAoB,CAAC,SAAS,CAAC;IAEnE,IAAIV,SAAS,GAAG1B,cAAc,EAAE;IAChC,IAAIqC,UAAU,GAAGpC,WAAW;;IAE5B;IACA;IACA,IAAI4B,OAAO,GAAG,IAAIS,OAAO,CAAC,UAAUP,OAAO,EAAEC,MAAM,EAAE;MACnDK,UAAU,CAACE,GAAG,CAACb,SAAS,EAAE;QAAEK,OAAO;QAAEC;MAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEFtC,SAAS,CAAC8C,0BAA0B,CAClCjD,cAAc,CAAC2B,UAAU,CAACuB,OAAO,CAAC,EAClCN,iBAAiB,CAACO,QAAQ,CAACR,OAAO,EAClC,CAACR,SAAS,CACZ,CAAC;IACD,OAAOG,OAAO;EAChB,CAAC;EAEDxC,mBAAmB,CAACiB,GAAG,EAAE,MAAM;IAC7B,OAAO;MACL4B;IACF,CAAC;EACH,CAAC,CAAC;EAEF,oBACE/C,KAAA,CAAAwD,aAAA,CAAC5C,OAAO;IACNO,GAAG,EAAEY,UAAW;IAChBI,QAAQ,EAAEA,QAAS;IACnBD,IAAI,EAAEA,IAAK;IACXb,KAAK,EACHb,QAAQ,CAACiD,EAAE,KAAK,SAAS,GAAIzB,mBAAmB,GAAGX,KAAK,GAAG,CAAC,CAAC,GAAIA,KAClE;IACDO,aAAa,EAAEA,aAAc;IAC7BC,SAAS,EAAEA,SAAU;IACrBF,qBAAqB,EAAEA,qBAAsB;IAC7C+B,cAAc,EAAEpB;EAAgB,CACjC,CAAC;AAEN,CACF,CAAC;AAED,MAAMhB,MAAM,GAAGhB,UAAU,CAACqD,MAAM,CAAC;EAC/BpC,OAAO,EAAE;IACPqC,IAAI,EAAE;EACR;AACF,CAAC,CAAC"}
@@ -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 = (_ref, ref) => {
8
- let {
9
- url = '',
10
- style,
11
- containerStyle,
12
- enableStats,
13
- enableControls = false
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 = _ref2 => {
71
- let {
72
- nativeEvent
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 = _ref3 => {
98
- let {
99
- nativeEvent
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 = function (effect) {
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","arguments","length","undefined","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":"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"}
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"}
@@ -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(function () {
6
- return {
7
- ...createHMSHLSPlayerPlaybackSlice(...arguments),
8
- ...createHMSViewsSlice(...arguments)
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","arguments"],"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;EAAA,OAAW;IAC/B,GAAGC,+BAA+B,CAAC,GAAAG,SAAI,CAAC;IACxC,GAAGF,mBAAmB,CAAC,GAAAE,SAAI;EAC7B,CAAC;AAAA,CAAC,CACJ,CAAC"}
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","_len","arguments","args","Array","_key","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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"}
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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"}
@@ -396,15 +396,6 @@ export declare class HMSSDK {
396
396
  * @memberof HMSSDK
397
397
  */
398
398
  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
399
  /**
409
400
  * - This function is used to start screenshare, currently available only for android
410
401
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@100mslive/react-native-hms",
3
- "version": "1.9.1-beta.1",
3
+ "version": "1.9.2",
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
  {
2
- "ios": "1.1.0",
2
+ "ios": "1.2.0",
3
3
  "iOSBroadcastExtension": "0.0.9",
4
4
  "iOSHMSHLSPlayer": "0.0.2",
5
- "android": "2.7.9"
5
+ "android": "2.8.0"
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { AppState, Platform } from 'react-native';
2
+ import { Platform } from 'react-native';
3
3
  import { HMSEncoder } from './HMSEncoder';
4
4
  import { HMSHelper } from './HMSHelper';
5
5
  import { getLogger, logger, setLogger } from './HMSLogger';
@@ -184,7 +184,6 @@ export class HMSSDK {
184
184
  */
185
185
  join = async (config: HMSConfig) => {
186
186
  logger?.verbose('#Function join', { config, id: this.id });
187
- this.addAppStateListener();
188
187
  setHmsPeersCache(new HMSPeersCache(this.id));
189
188
  setHmsRoomCache(new HMSRoomCache(this.id));
190
189
  await HMSManager.join({ ...config, id: this.id });
@@ -808,30 +807,6 @@ export class HMSSDK {
808
807
  });
809
808
  };
810
809
 
811
- resetVolume = () => {
812
- logger?.verbose('#Function resetVolume', { id: this.id });
813
- if (Platform.OS === 'android') HMSManager.resetVolume({ id: this.id });
814
- };
815
-
816
- /**
817
- * - This is a temporary solution for the situation when mic access is taken from the app and
818
- * user returns to the app with no mic access. It will re-acquire the mic by setting the volume
819
- * from native side
820
- *
821
- * @memberof HMSSDK
822
- */
823
- addAppStateListener = () => {
824
- logger?.verbose('#Function addAppStateListener', { id: this.id });
825
- this.appStateSubscription = AppState.addEventListener(
826
- 'change',
827
- (nextAppState) => {
828
- if (nextAppState === 'active' && Platform.OS === 'android') {
829
- this.resetVolume();
830
- }
831
- }
832
- );
833
- };
834
-
835
810
  /**
836
811
  * - This function is used to start screenshare, currently available only for android
837
812
  *