@livekit/react-native 2.9.6 → 2.9.7

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 (139) hide show
  1. package/README.md +7 -5
  2. package/ios/LivekitReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  3. package/ios/LivekitReactNative.xcodeproj/xcuserdata/davidliu.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  4. package/lib/commonjs/LKNativeModule.js.map +1 -1
  5. package/lib/commonjs/audio/AudioManager.js +1 -2
  6. package/lib/commonjs/audio/AudioManager.js.map +1 -1
  7. package/lib/commonjs/audio/AudioSession.js +105 -100
  8. package/lib/commonjs/audio/AudioSession.js.map +1 -1
  9. package/lib/commonjs/audio/MediaRecorder.js +11 -17
  10. package/lib/commonjs/audio/MediaRecorder.js.map +1 -1
  11. package/lib/commonjs/components/BarVisualizer.js +8 -8
  12. package/lib/commonjs/components/BarVisualizer.js.map +1 -1
  13. package/lib/commonjs/components/LiveKitRoom.js +11 -7
  14. package/lib/commonjs/components/LiveKitRoom.js.map +1 -1
  15. package/lib/commonjs/components/VideoTrack.js +34 -47
  16. package/lib/commonjs/components/VideoTrack.js.map +1 -1
  17. package/lib/commonjs/components/VideoView.js +36 -48
  18. package/lib/commonjs/components/VideoView.js.map +1 -1
  19. package/lib/commonjs/components/ViewPortDetector.js +71 -79
  20. package/lib/commonjs/components/ViewPortDetector.js.map +1 -1
  21. package/lib/commonjs/e2ee/RNE2EEManager.js +8 -15
  22. package/lib/commonjs/e2ee/RNE2EEManager.js.map +1 -1
  23. package/lib/commonjs/e2ee/RNKeyProvider.js +1 -5
  24. package/lib/commonjs/e2ee/RNKeyProvider.js.map +1 -1
  25. package/lib/commonjs/events/EventEmitter.js +2 -4
  26. package/lib/commonjs/events/EventEmitter.js.map +1 -1
  27. package/lib/commonjs/hooks/useE2EEManager.js.map +1 -1
  28. package/lib/commonjs/hooks/useMultibandTrackVolume.js +4 -5
  29. package/lib/commonjs/hooks/useMultibandTrackVolume.js.map +1 -1
  30. package/lib/commonjs/hooks/useTrackVolume.js +4 -5
  31. package/lib/commonjs/hooks/useTrackVolume.js.map +1 -1
  32. package/lib/commonjs/hooks.js.map +1 -1
  33. package/lib/commonjs/index.js +3 -6
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/logger.js.map +1 -1
  36. package/lib/commonjs/package.json +1 -0
  37. package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js.map +1 -1
  38. package/lib/commonjs/polyfills/MediaRecorderShim.js.map +1 -1
  39. package/lib/commonjs/useParticipant.js.map +1 -1
  40. package/lib/commonjs/useRoom.js +4 -6
  41. package/lib/commonjs/useRoom.js.map +1 -1
  42. package/lib/module/LKNativeModule.js +2 -0
  43. package/lib/module/LKNativeModule.js.map +1 -1
  44. package/lib/module/audio/AudioManager.js +2 -0
  45. package/lib/module/audio/AudioManager.js.map +1 -1
  46. package/lib/module/audio/AudioSession.js +107 -100
  47. package/lib/module/audio/AudioSession.js.map +1 -1
  48. package/lib/module/audio/MediaRecorder.js +13 -17
  49. package/lib/module/audio/MediaRecorder.js.map +1 -1
  50. package/lib/module/components/BarVisualizer.js +9 -6
  51. package/lib/module/components/BarVisualizer.js.map +1 -1
  52. package/lib/module/components/LiveKitRoom.js +12 -6
  53. package/lib/module/components/LiveKitRoom.js.map +1 -1
  54. package/lib/module/components/VideoTrack.js +35 -45
  55. package/lib/module/components/VideoTrack.js.map +1 -1
  56. package/lib/module/components/VideoView.js +37 -46
  57. package/lib/module/components/VideoView.js.map +1 -1
  58. package/lib/module/components/ViewPortDetector.js +71 -77
  59. package/lib/module/components/ViewPortDetector.js.map +1 -1
  60. package/lib/module/e2ee/RNE2EEManager.js +10 -15
  61. package/lib/module/e2ee/RNE2EEManager.js.map +1 -1
  62. package/lib/module/e2ee/RNKeyProvider.js +3 -5
  63. package/lib/module/e2ee/RNKeyProvider.js.map +1 -1
  64. package/lib/module/events/EventEmitter.js +4 -4
  65. package/lib/module/events/EventEmitter.js.map +1 -1
  66. package/lib/module/hooks/useE2EEManager.js +2 -0
  67. package/lib/module/hooks/useE2EEManager.js.map +1 -1
  68. package/lib/module/hooks/useMultibandTrackVolume.js +6 -5
  69. package/lib/module/hooks/useMultibandTrackVolume.js.map +1 -1
  70. package/lib/module/hooks/useTrackVolume.js +6 -5
  71. package/lib/module/hooks/useTrackVolume.js.map +1 -1
  72. package/lib/module/hooks.js +2 -0
  73. package/lib/module/hooks.js.map +1 -1
  74. package/lib/module/index.js +4 -4
  75. package/lib/module/index.js.map +1 -1
  76. package/lib/module/logger.js +2 -0
  77. package/lib/module/logger.js.map +1 -1
  78. package/lib/module/polyfills/EncoderDecoderTogether.min.js.map +1 -1
  79. package/lib/module/polyfills/MediaRecorderShim.js +2 -0
  80. package/lib/module/polyfills/MediaRecorderShim.js.map +1 -1
  81. package/lib/module/useParticipant.js +2 -0
  82. package/lib/module/useParticipant.js.map +1 -1
  83. package/lib/module/useRoom.js +6 -6
  84. package/lib/module/useRoom.js.map +1 -1
  85. package/lib/typescript/{LKNativeModule.d.ts → src/LKNativeModule.d.ts} +1 -0
  86. package/lib/typescript/src/LKNativeModule.d.ts.map +1 -0
  87. package/lib/typescript/{audio → src/audio}/AudioManager.d.ts +1 -0
  88. package/lib/typescript/src/audio/AudioManager.d.ts.map +1 -0
  89. package/lib/typescript/{audio → src/audio}/AudioSession.d.ts +1 -0
  90. package/lib/typescript/src/audio/AudioSession.d.ts.map +1 -0
  91. package/lib/typescript/{audio → src/audio}/MediaRecorder.d.ts +1 -0
  92. package/lib/typescript/src/audio/MediaRecorder.d.ts.map +1 -0
  93. package/lib/typescript/{components → src/components}/BarVisualizer.d.ts +2 -2
  94. package/lib/typescript/src/components/BarVisualizer.d.ts.map +1 -0
  95. package/lib/typescript/{components → src/components}/LiveKitRoom.d.ts +2 -1
  96. package/lib/typescript/src/components/LiveKitRoom.d.ts.map +1 -0
  97. package/lib/typescript/{components → src/components}/VideoTrack.d.ts +2 -2
  98. package/lib/typescript/src/components/VideoTrack.d.ts.map +1 -0
  99. package/lib/typescript/{components → src/components}/VideoView.d.ts +2 -2
  100. package/lib/typescript/src/components/VideoView.d.ts.map +1 -0
  101. package/lib/typescript/{components → src/components}/ViewPortDetector.d.ts +3 -2
  102. package/lib/typescript/src/components/ViewPortDetector.d.ts.map +1 -0
  103. package/lib/typescript/{e2ee → src/e2ee}/RNE2EEManager.d.ts +1 -0
  104. package/lib/typescript/src/e2ee/RNE2EEManager.d.ts.map +1 -0
  105. package/lib/typescript/{e2ee → src/e2ee}/RNKeyProvider.d.ts +1 -0
  106. package/lib/typescript/src/e2ee/RNKeyProvider.d.ts.map +1 -0
  107. package/lib/typescript/{events → src/events}/EventEmitter.d.ts +1 -0
  108. package/lib/typescript/src/events/EventEmitter.d.ts.map +1 -0
  109. package/lib/typescript/{hooks → src/hooks}/useE2EEManager.d.ts +1 -0
  110. package/lib/typescript/src/hooks/useE2EEManager.d.ts.map +1 -0
  111. package/lib/typescript/{hooks → src/hooks}/useMultibandTrackVolume.d.ts +1 -0
  112. package/lib/typescript/src/hooks/useMultibandTrackVolume.d.ts.map +1 -0
  113. package/lib/typescript/{hooks → src/hooks}/useTrackVolume.d.ts +1 -0
  114. package/lib/typescript/src/hooks/useTrackVolume.d.ts.map +1 -0
  115. package/lib/typescript/{hooks.d.ts → src/hooks.d.ts} +1 -0
  116. package/lib/typescript/src/hooks.d.ts.map +1 -0
  117. package/lib/typescript/{index.d.ts → src/index.d.ts} +1 -0
  118. package/lib/typescript/src/index.d.ts.map +1 -0
  119. package/lib/typescript/{logger.d.ts → src/logger.d.ts} +1 -0
  120. package/lib/typescript/src/logger.d.ts.map +1 -0
  121. package/lib/typescript/src/polyfills/MediaRecorderShim.d.ts +2 -0
  122. package/lib/typescript/src/polyfills/MediaRecorderShim.d.ts.map +1 -0
  123. package/lib/typescript/{useParticipant.d.ts → src/useParticipant.d.ts} +1 -0
  124. package/lib/typescript/src/useParticipant.d.ts.map +1 -0
  125. package/lib/typescript/{useRoom.d.ts → src/useRoom.d.ts} +1 -0
  126. package/lib/typescript/src/useRoom.d.ts.map +1 -0
  127. package/package.json +40 -56
  128. package/src/audio/MediaRecorder.ts +2 -2
  129. package/src/components/BarVisualizer.tsx +2 -2
  130. package/src/components/VideoTrack.tsx +0 -2
  131. package/src/components/VideoView.tsx +0 -2
  132. package/src/components/ViewPortDetector.tsx +1 -1
  133. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  134. package/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  135. package/android/gradlew +0 -249
  136. package/android/gradlew.bat +0 -92
  137. package/android/local.properties +0 -8
  138. package/lib/typescript/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
  139. package/lib/typescript/polyfills/MediaRecorderShim.d.ts +0 -1
@@ -1,6 +1,5 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
+ "use strict";
2
+
4
3
  import { addListener } from '../events/EventEmitter';
5
4
  import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';
6
5
  import { toByteArray } from 'base64-js';
@@ -18,18 +17,15 @@ import { log } from '../logger';
18
17
  * @private
19
18
  */
20
19
  export class MediaRecorder extends EventTarget {
20
+ mimeType = 'audio/pcm';
21
+ audioBitsPerSecond = 0; // TODO?
22
+ state = 'inactive';
23
+ videoBitsPerSecond = 0; // TODO?
24
+ audioBitrateMode = 'constant';
25
+ _reactTag = undefined;
26
+ _parts = [];
21
27
  constructor(stream) {
22
28
  super();
23
- _defineProperty(this, "mimeType", 'audio/pcm');
24
- _defineProperty(this, "audioBitsPerSecond", 0);
25
- // TODO?
26
- _defineProperty(this, "state", 'inactive');
27
- _defineProperty(this, "stream", void 0);
28
- _defineProperty(this, "videoBitsPerSecond", 0);
29
- // TODO?
30
- _defineProperty(this, "audioBitrateMode", 'constant');
31
- _defineProperty(this, "_reactTag", undefined);
32
- _defineProperty(this, "_parts", []);
33
29
  this.stream = stream;
34
30
  }
35
31
  registerListener() {
@@ -39,7 +35,7 @@ export class MediaRecorder extends EventTarget {
39
35
  }
40
36
  const mediaStreamTrack = audioTracks[0];
41
37
  const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1;
42
- const mediaStreamTrackId = mediaStreamTrack === null || mediaStreamTrack === void 0 ? void 0 : mediaStreamTrack.id;
38
+ const mediaStreamTrackId = mediaStreamTrack?.id;
43
39
  this._reactTag = LiveKitModule.createAudioSinkListener(peerConnectionId, mediaStreamTrackId);
44
40
  addListener(this, 'LK_AUDIO_DATA', event => {
45
41
  if (this._reactTag && event.id === this._reactTag && this.state === 'recording') {
@@ -57,7 +53,7 @@ export class MediaRecorder extends EventTarget {
57
53
  }
58
54
  const mediaStreamTrack = audioTracks[0];
59
55
  const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1;
60
- const mediaStreamTrackId = mediaStreamTrack === null || mediaStreamTrack === void 0 ? void 0 : mediaStreamTrack.id;
56
+ const mediaStreamTrackId = mediaStreamTrack?.id;
61
57
  LiveKitModule.deleteAudioSinkListener(this._reactTag, peerConnectionId, mediaStreamTrackId);
62
58
  }
63
59
  }
@@ -104,10 +100,10 @@ export class MediaRecorder extends EventTarget {
104
100
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/track_event MDN} for details.
105
101
  */
106
102
  class BlobEvent extends Event {
103
+ /** @eventProperty */
104
+
107
105
  constructor(type, eventInitDict) {
108
106
  super(type, eventInitDict);
109
- /** @eventProperty */
110
- _defineProperty(this, "data", void 0);
111
107
  this.data = eventInitDict.data;
112
108
  }
113
109
  }
@@ -1 +1 @@
1
- {"version":3,"names":["addListener","EventTarget","Event","defineEventAttribute","toByteArray","LiveKitModule","log","MediaRecorder","constructor","stream","_defineProperty","undefined","registerListener","audioTracks","getAudioTracks","length","mediaStreamTrack","peerConnectionId","_peerConnectionId","mediaStreamTrackId","id","_reactTag","createAudioSinkListener","event","state","str","data","_parts","push","unregisterListener","error","deleteAudioSinkListener","pause","dispatchEvent","resume","start","stop","dispatchData","requestData","combinedStr","reduce","sum","cur","BlobEvent","byteArray","type","eventInitDict","proto","prototype"],"sources":["MediaRecorder.ts"],"sourcesContent":["import type { MediaStream } from '@livekit/react-native-webrtc';\nimport { addListener } from '../events/EventEmitter';\nimport {\n EventTarget,\n Event,\n defineEventAttribute,\n} from 'event-target-shim/index';\nimport { toByteArray } from 'base64-js';\nimport LiveKitModule from '../LKNativeModule';\nimport { log } from '../logger';\n\n// typeof MediaRecorder\n// const Tester = (stream: MediaStream) => {\n// return new AudioRecorder(stream) satisfies MediaRecorder;\n// };\n\ntype MediaRecorderState = 'inactive' | 'recording' | 'paused';\ntype MediaRecorderEventMap = {\n dataavailable: BlobEvent<'dataavailable'>;\n error: Event<'error'>;\n pause: Event<'pause'>;\n resume: Event<'resume'>;\n start: Event<'start'>;\n stop: Event<'stop'>;\n};\n\n/**\n * A MediaRecord implementation only meant for recording audio streams.\n *\n * @private\n */\nexport class MediaRecorder extends EventTarget<MediaRecorderEventMap> {\n mimeType: String = 'audio/pcm';\n audioBitsPerSecond: number = 0; // TODO?\n state: MediaRecorderState = 'inactive';\n stream: MediaStream;\n videoBitsPerSecond: number = 0; // TODO?\n audioBitrateMode = 'constant';\n\n _reactTag: string | undefined = undefined;\n _parts: string[] = [];\n constructor(stream: MediaStream) {\n super();\n this.stream = stream;\n }\n\n registerListener() {\n let audioTracks = this.stream.getAudioTracks();\n if (audioTracks.length !== 1) {\n return;\n }\n const mediaStreamTrack = audioTracks[0];\n const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1;\n const mediaStreamTrackId = mediaStreamTrack?.id;\n this._reactTag = LiveKitModule.createAudioSinkListener(\n peerConnectionId,\n mediaStreamTrackId\n );\n addListener(this, 'LK_AUDIO_DATA', (event: any) => {\n if (\n this._reactTag &&\n event.id === this._reactTag &&\n this.state === 'recording'\n ) {\n let str = event.data as string;\n this._parts.push(str);\n }\n });\n }\n\n unregisterListener() {\n if (this._reactTag) {\n let audioTracks = this.stream.getAudioTracks();\n if (audioTracks.length !== 1) {\n log.error(\"couldn't find any audio tracks to record from!\");\n return;\n }\n const mediaStreamTrack = audioTracks[0];\n const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1;\n const mediaStreamTrackId = mediaStreamTrack?.id;\n\n LiveKitModule.deleteAudioSinkListener(\n this._reactTag,\n peerConnectionId,\n mediaStreamTrackId\n );\n }\n }\n\n pause() {\n this.state = 'paused';\n this.dispatchEvent(new Event('pause'));\n }\n\n resume() {\n this.state = 'recording';\n this.dispatchEvent(new Event('resume'));\n }\n\n start() {\n this.registerListener();\n this.state = 'recording';\n this.dispatchEvent(new Event('start'));\n }\n\n stop() {\n // dispatch data must come before stopping.\n this.dispatchData();\n\n this.unregisterListener();\n this.state = 'inactive';\n this.dispatchEvent(new Event('stop'));\n }\n\n requestData() {\n this.dispatchData();\n }\n dispatchData() {\n let combinedStr = this._parts.reduce((sum, cur) => sum + cur, '');\n let data = toByteArray(combinedStr);\n this._parts = [];\n this.dispatchEvent(\n new BlobEvent('dataavailable', { data: { byteArray: data } })\n );\n }\n}\n\n/**\n * @eventClass\n * This event is fired whenever the Track is changed in PeerConnection.\n * @param {TRACK_EVENTS} type - The type of event.\n * @param {IRTCTrackEventInitDict} eventInitDict - The event init properties.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/track_event MDN} for details.\n */\nclass BlobEvent<TEventType extends string> extends Event<TEventType> {\n /** @eventProperty */\n readonly data: { byteArray: Uint8Array };\n\n constructor(\n type: TEventType,\n eventInitDict: { data: { byteArray: Uint8Array } } & Event.EventInit\n ) {\n super(type, eventInitDict);\n this.data = eventInitDict.data;\n }\n}\n\n/**\n * Define the `onxxx` event handlers.\n */\nconst proto = MediaRecorder.prototype;\n\ndefineEventAttribute(proto, 'dataavailable');\ndefineEventAttribute(proto, 'error');\ndefineEventAttribute(proto, 'pause');\ndefineEventAttribute(proto, 'resume');\ndefineEventAttribute(proto, 'start');\ndefineEventAttribute(proto, 'stop');\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["addListener","EventTarget","Event","defineEventAttribute","toByteArray","LiveKitModule","log","MediaRecorder","mimeType","audioBitsPerSecond","state","videoBitsPerSecond","audioBitrateMode","_reactTag","undefined","_parts","constructor","stream","registerListener","audioTracks","getAudioTracks","length","mediaStreamTrack","peerConnectionId","_peerConnectionId","mediaStreamTrackId","id","createAudioSinkListener","event","str","data","push","unregisterListener","error","deleteAudioSinkListener","pause","dispatchEvent","resume","start","stop","dispatchData","requestData","combinedStr","reduce","sum","cur","BlobEvent","byteArray","type","eventInitDict","proto","prototype"],"sourceRoot":"../../../src","sources":["audio/MediaRecorder.ts"],"mappings":";;AACA,SAASA,WAAW,QAAQ,wBAAwB;AACpD,SACEC,WAAW,EACXC,KAAK,EACLC,oBAAoB,QACf,yBAAyB;AAChC,SAASC,WAAW,QAAQ,WAAW;AACvC,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,SAASC,GAAG,QAAQ,WAAW;;AAE/B;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,SAASN,WAAW,CAAwB;EACpEO,QAAQ,GAAW,WAAW;EAC9BC,kBAAkB,GAAW,CAAC,CAAC,CAAC;EAChCC,KAAK,GAAuB,UAAU;EAEtCC,kBAAkB,GAAW,CAAC,CAAC,CAAC;EAChCC,gBAAgB,GAAG,UAAU;EAE7BC,SAAS,GAAuBC,SAAS;EACzCC,MAAM,GAAa,EAAE;EACrBC,WAAWA,CAACC,MAAmB,EAAE;IAC/B,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEAC,gBAAgBA,CAAA,EAAG;IACjB,IAAIC,WAAW,GAAG,IAAI,CAACF,MAAM,CAACG,cAAc,CAAC,CAAC;IAC9C,IAAID,WAAW,CAACE,MAAM,KAAK,CAAC,EAAE;MAC5B;IACF;IACA,MAAMC,gBAAgB,GAAGH,WAAW,CAAC,CAAC,CAAG;IACzC,MAAMI,gBAAgB,GAAGD,gBAAgB,CAACE,iBAAiB,IAAI,CAAC,CAAC;IACjE,MAAMC,kBAAkB,GAAGH,gBAAgB,EAAEI,EAAE;IAC/C,IAAI,CAACb,SAAS,GAAGR,aAAa,CAACsB,uBAAuB,CACpDJ,gBAAgB,EAChBE,kBACF,CAAC;IACDzB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAG4B,KAAU,IAAK;MACjD,IACE,IAAI,CAACf,SAAS,IACde,KAAK,CAACF,EAAE,KAAK,IAAI,CAACb,SAAS,IAC3B,IAAI,CAACH,KAAK,KAAK,WAAW,EAC1B;QACA,IAAImB,GAAG,GAAGD,KAAK,CAACE,IAAc;QAC9B,IAAI,CAACf,MAAM,CAACgB,IAAI,CAACF,GAAG,CAAC;MACvB;IACF,CAAC,CAAC;EACJ;EAEAG,kBAAkBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACnB,SAAS,EAAE;MAClB,IAAIM,WAAW,GAAG,IAAI,CAACF,MAAM,CAACG,cAAc,CAAC,CAAC;MAC9C,IAAID,WAAW,CAACE,MAAM,KAAK,CAAC,EAAE;QAC5Bf,GAAG,CAAC2B,KAAK,CAAC,gDAAgD,CAAC;QAC3D;MACF;MACA,MAAMX,gBAAgB,GAAGH,WAAW,CAAC,CAAC,CAAG;MACzC,MAAMI,gBAAgB,GAAGD,gBAAgB,CAACE,iBAAiB,IAAI,CAAC,CAAC;MACjE,MAAMC,kBAAkB,GAAGH,gBAAgB,EAAEI,EAAE;MAE/CrB,aAAa,CAAC6B,uBAAuB,CACnC,IAAI,CAACrB,SAAS,EACdU,gBAAgB,EAChBE,kBACF,CAAC;IACH;EACF;EAEAU,KAAKA,CAAA,EAAG;IACN,IAAI,CAACzB,KAAK,GAAG,QAAQ;IACrB,IAAI,CAAC0B,aAAa,CAAC,IAAIlC,KAAK,CAAC,OAAO,CAAC,CAAC;EACxC;EAEAmC,MAAMA,CAAA,EAAG;IACP,IAAI,CAAC3B,KAAK,GAAG,WAAW;IACxB,IAAI,CAAC0B,aAAa,CAAC,IAAIlC,KAAK,CAAC,QAAQ,CAAC,CAAC;EACzC;EAEAoC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACpB,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACR,KAAK,GAAG,WAAW;IACxB,IAAI,CAAC0B,aAAa,CAAC,IAAIlC,KAAK,CAAC,OAAO,CAAC,CAAC;EACxC;EAEAqC,IAAIA,CAAA,EAAG;IACL;IACA,IAAI,CAACC,YAAY,CAAC,CAAC;IAEnB,IAAI,CAACR,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACtB,KAAK,GAAG,UAAU;IACvB,IAAI,CAAC0B,aAAa,CAAC,IAAIlC,KAAK,CAAC,MAAM,CAAC,CAAC;EACvC;EAEAuC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACD,YAAY,CAAC,CAAC;EACrB;EACAA,YAAYA,CAAA,EAAG;IACb,IAAIE,WAAW,GAAG,IAAI,CAAC3B,MAAM,CAAC4B,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAKD,GAAG,GAAGC,GAAG,EAAE,EAAE,CAAC;IACjE,IAAIf,IAAI,GAAG1B,WAAW,CAACsC,WAAW,CAAC;IACnC,IAAI,CAAC3B,MAAM,GAAG,EAAE;IAChB,IAAI,CAACqB,aAAa,CAChB,IAAIU,SAAS,CAAC,eAAe,EAAE;MAAEhB,IAAI,EAAE;QAAEiB,SAAS,EAAEjB;MAAK;IAAE,CAAC,CAC9D,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,SAAS,SAAoC5C,KAAK,CAAa;EACnE;;EAGAc,WAAWA,CACTgC,IAAgB,EAChBC,aAAoE,EACpE;IACA,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAC1B,IAAI,CAACnB,IAAI,GAAGmB,aAAa,CAACnB,IAAI;EAChC;AACF;;AAEA;AACA;AACA;AACA,MAAMoB,KAAK,GAAG3C,aAAa,CAAC4C,SAAS;AAErChD,oBAAoB,CAAC+C,KAAK,EAAE,eAAe,CAAC;AAC5C/C,oBAAoB,CAAC+C,KAAK,EAAE,OAAO,CAAC;AACpC/C,oBAAoB,CAAC+C,KAAK,EAAE,OAAO,CAAC;AACpC/C,oBAAoB,CAAC+C,KAAK,EAAE,QAAQ,CAAC;AACrC/C,oBAAoB,CAAC+C,KAAK,EAAE,OAAO,CAAC;AACpC/C,oBAAoB,CAAC+C,KAAK,EAAE,MAAM,CAAC","ignoreList":[]}
@@ -1,7 +1,10 @@
1
+ "use strict";
2
+
1
3
  import { useMaybeTrackRefContext } from '@livekit/components-react';
2
4
  import { Animated, StyleSheet, View } from 'react-native';
3
5
  import { useMultibandTrackVolume } from '../hooks';
4
6
  import React, { useEffect, useRef, useState } from 'react';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
5
8
  const defaultBarOptions = {
6
9
  maxHeight: 1,
7
10
  minHeight: 0.2,
@@ -104,19 +107,19 @@ export const BarVisualizer = ({
104
107
  borderRadius: opts.barBorderRadius,
105
108
  width: opts.barWidth
106
109
  };
107
- bars.push( /*#__PURE__*/React.createElement(Animated.View, {
108
- key: index,
110
+ bars.push(/*#__PURE__*/_jsx(Animated.View, {
109
111
  style: [{
110
112
  height: `${coercedPercent}%`
111
113
  }, barStyle]
112
- }));
114
+ }, index));
113
115
  });
114
- return /*#__PURE__*/React.createElement(View, {
116
+ return /*#__PURE__*/_jsx(View, {
115
117
  style: {
116
118
  ...style,
117
119
  ...styles.container
118
- }
119
- }, bars);
120
+ },
121
+ children: bars
122
+ });
120
123
  };
121
124
  const styles = StyleSheet.create({
122
125
  container: {
@@ -1 +1 @@
1
- {"version":3,"names":["useMaybeTrackRefContext","Animated","StyleSheet","View","useMultibandTrackVolume","React","useEffect","useRef","useState","defaultBarOptions","maxHeight","minHeight","barColor","barWidth","barBorderRadius","sequencerIntervals","Map","getSequencerInterval","state","barCount","undefined","interval","get","BarVisualizer","style","trackRef","options","trackReference","opacityAnimations","current","magnitudes","bands","opts","highlightedIndices","useBarAnimator","animations","i","Value","targetOpacity","includes","push","timing","toValue","duration","useNativeDriver","parallel","start","stop","bars","forEach","value","index","coerced","Math","min","max","coercedPercent","opacity","barStyle","backgroundColor","borderRadius","width","createElement","key","height","styles","container","create","flexDirection","alignItems","justifyContent","columns","setIndex","sequence","setSequence","generateListeningSequenceBar","seq","generateConnectingSequenceBar","Array","fill","map","_","idx","animationFrameId","startTime","performance","now","animate","time","timeElapsed","prev","requestAnimationFrame","cancelAnimationFrame","length","center","floor","noIndex","x"],"sources":["BarVisualizer.tsx"],"sourcesContent":["import {\n type AgentState,\n type TrackReferenceOrPlaceholder,\n useMaybeTrackRefContext,\n} from '@livekit/components-react';\nimport {\n Animated,\n StyleSheet,\n View,\n type ColorValue,\n type DimensionValue,\n type ViewStyle,\n} from 'react-native';\nimport { useMultibandTrackVolume } from '../hooks';\nimport React, { useEffect, useRef, useState } from 'react';\nexport type BarVisualizerOptions = {\n /** decimal values from 0 to 1 */\n maxHeight?: number;\n /** decimal values from 0 to 1 */\n minHeight?: number;\n\n barColor?: ColorValue;\n barWidth?: DimensionValue;\n barBorderRadius?: number;\n};\n\nconst defaultBarOptions = {\n maxHeight: 1,\n minHeight: 0.2,\n barColor: '#888888',\n barWidth: 24,\n barBorderRadius: 12,\n} as const satisfies BarVisualizerOptions;\n\nconst sequencerIntervals = new Map<AgentState, number>([\n ['connecting', 2000],\n ['initializing', 2000],\n ['listening', 500],\n ['thinking', 150],\n]);\n\nconst getSequencerInterval = (\n state: AgentState | undefined,\n barCount: number\n): number | undefined => {\n if (state === undefined) {\n return 1000;\n }\n let interval = sequencerIntervals.get(state);\n if (interval) {\n switch (state) {\n case 'connecting':\n // case 'thinking':\n interval /= barCount;\n break;\n\n default:\n break;\n }\n }\n return interval;\n};\n/**\n * @beta\n */\nexport interface BarVisualizerProps {\n /** If set, the visualizer will transition between different voice assistant states */\n state?: AgentState;\n /** Number of bars that show up in the visualizer */\n barCount?: number;\n trackRef?: TrackReferenceOrPlaceholder;\n options?: BarVisualizerOptions;\n /**\n * Custom React Native styles for the container.\n */\n style?: ViewStyle;\n}\n\n/**\n * Visualizes audio signals from a TrackReference as bars.\n * If the `state` prop is set, it automatically transitions between VoiceAssistant states.\n * @beta\n *\n * @remarks For VoiceAssistant state transitions this component requires a voice assistant agent running with livekit-agents \\>= 0.9.0\n *\n * @example\n * ```tsx\n * function SimpleVoiceAssistant() {\n * const { state, audioTrack } = useVoiceAssistant();\n * return (\n * <BarVisualizer\n * state={state}\n * trackRef={audioTrack}\n * />\n * );\n * }\n * ```\n */\nexport const BarVisualizer = ({\n style = {},\n state,\n barCount = 5,\n trackRef,\n options,\n}: BarVisualizerProps) => {\n let trackReference = useMaybeTrackRefContext();\n\n if (trackRef) {\n trackReference = trackRef;\n }\n\n const opacityAnimations = useRef<Animated.Value[]>([]).current;\n let magnitudes = useMultibandTrackVolume(trackReference, { bands: barCount });\n\n let opts = { ...defaultBarOptions, ...options };\n\n const highlightedIndices = useBarAnimator(\n state,\n barCount,\n getSequencerInterval(state, barCount) ?? 100\n );\n\n useEffect(() => {\n let animations = [];\n for (let i = 0; i < barCount; i++) {\n if (!opacityAnimations[i]) {\n opacityAnimations[i] = new Animated.Value(0.3);\n }\n let targetOpacity = 0.3;\n if (highlightedIndices.includes(i)) {\n targetOpacity = 1;\n }\n animations.push(\n Animated.timing(opacityAnimations[i], {\n toValue: targetOpacity,\n duration: 250,\n useNativeDriver: true,\n })\n );\n }\n\n let parallel = Animated.parallel(animations);\n parallel.start();\n return () => {\n parallel.stop();\n };\n }, [highlightedIndices, barCount, opacityAnimations]);\n\n let bars: React.ReactNode[] = [];\n magnitudes.forEach((value, index) => {\n let coerced = Math.min(opts.maxHeight, Math.max(opts.minHeight, value));\n let coercedPercent = Math.min(100, Math.max(0, coerced * 100));\n let opacity = opacityAnimations[index] ?? new Animated.Value(0.3);\n let barStyle = {\n opacity: opacity,\n backgroundColor: opts.barColor,\n borderRadius: opts.barBorderRadius,\n width: opts.barWidth,\n };\n bars.push(\n <Animated.View\n key={index}\n style={[{ height: `${coercedPercent}%` }, barStyle]}\n />\n );\n });\n\n return <View style={{ ...style, ...styles.container }}>{bars}</View>;\n};\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-evenly',\n },\n});\n\nexport const useBarAnimator = (\n state: AgentState | undefined,\n columns: number,\n interval: number\n): number[] => {\n const [index, setIndex] = useState(0);\n const [sequence, setSequence] = useState<number[][]>([[]]);\n\n useEffect(() => {\n if (state === 'thinking') {\n setSequence(generateListeningSequenceBar(columns));\n } else if (state === 'connecting' || state === 'initializing') {\n const seq = [...generateConnectingSequenceBar(columns)];\n setSequence(seq);\n } else if (state === 'listening') {\n setSequence(generateListeningSequenceBar(columns));\n } else if (state === undefined) {\n // highlight everything\n setSequence([new Array(columns).fill(0).map((_, idx) => idx)]);\n } else {\n setSequence([[]]);\n }\n setIndex(0);\n }, [state, columns]);\n\n const animationFrameId = useRef<number | null>(null);\n useEffect(() => {\n let startTime = performance.now();\n\n const animate = (time: number) => {\n const timeElapsed = time - startTime;\n\n if (timeElapsed >= interval) {\n setIndex((prev) => prev + 1);\n startTime = time;\n }\n\n animationFrameId.current = requestAnimationFrame(animate);\n };\n\n animationFrameId.current = requestAnimationFrame(animate);\n\n return () => {\n if (animationFrameId.current !== null) {\n cancelAnimationFrame(animationFrameId.current);\n }\n };\n }, [interval, columns, state, sequence.length]);\n\n return sequence[index % sequence.length];\n};\n\nconst generateListeningSequenceBar = (columns: number): number[][] => {\n const center = Math.floor(columns / 2);\n const noIndex = -1;\n\n return [[center], [noIndex]];\n};\n\nconst generateConnectingSequenceBar = (columns: number): number[][] => {\n const seq: number[][] = [[]];\n\n for (let x = 0; x < columns; x++) {\n seq.push([x, columns - 1 - x]);\n }\n\n return seq;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMaybeTrackRefContext","Animated","StyleSheet","View","useMultibandTrackVolume","React","useEffect","useRef","useState","jsx","_jsx","defaultBarOptions","maxHeight","minHeight","barColor","barWidth","barBorderRadius","sequencerIntervals","Map","getSequencerInterval","state","barCount","undefined","interval","get","BarVisualizer","style","trackRef","options","trackReference","opacityAnimations","current","magnitudes","bands","opts","highlightedIndices","useBarAnimator","animations","i","Value","targetOpacity","includes","push","timing","toValue","duration","useNativeDriver","parallel","start","stop","bars","forEach","value","index","coerced","Math","min","max","coercedPercent","opacity","barStyle","backgroundColor","borderRadius","width","height","styles","container","children","create","flexDirection","alignItems","justifyContent","columns","setIndex","sequence","setSequence","generateListeningSequenceBar","seq","generateConnectingSequenceBar","Array","fill","map","_","idx","animationFrameId","startTime","performance","now","animate","time","timeElapsed","prev","requestAnimationFrame","cancelAnimationFrame","length","center","floor","noIndex","x"],"sourceRoot":"../../../src","sources":["components/BarVisualizer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,10 @@
1
+ "use strict";
2
+
1
3
  import { LKFeatureContext, RoomContext, useLiveKitRoom } from '@livekit/components-react';
2
4
  import * as React from 'react';
3
5
 
4
6
  /** @public */
5
-
7
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
6
8
  /**
7
9
  * The `LiveKitRoom` component provides the room context to all its child components.
8
10
  * It is generally the starting point of your LiveKit app and the root of the LiveKit component tree.
@@ -24,10 +26,14 @@ export function LiveKitRoom(props) {
24
26
  const {
25
27
  room
26
28
  } = useLiveKitRoom(props);
27
- return /*#__PURE__*/React.createElement(React.Fragment, null, room && /*#__PURE__*/React.createElement(RoomContext.Provider, {
28
- value: room
29
- }, /*#__PURE__*/React.createElement(LKFeatureContext.Provider, {
30
- value: props.featureFlags
31
- }, props.children)));
29
+ return /*#__PURE__*/_jsx(_Fragment, {
30
+ children: room && /*#__PURE__*/_jsx(RoomContext.Provider, {
31
+ value: room,
32
+ children: /*#__PURE__*/_jsx(LKFeatureContext.Provider, {
33
+ value: props.featureFlags,
34
+ children: props.children
35
+ })
36
+ })
37
+ });
32
38
  }
33
39
  //# sourceMappingURL=LiveKitRoom.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LKFeatureContext","RoomContext","useLiveKitRoom","React","LiveKitRoom","props","room","createElement","Fragment","Provider","value","featureFlags","children"],"sources":["LiveKitRoom.tsx"],"sourcesContent":["import {\n type FeatureFlags,\n LKFeatureContext,\n RoomContext,\n useLiveKitRoom,\n} from '@livekit/components-react';\nimport type {\n AudioCaptureOptions,\n RoomConnectOptions,\n RoomOptions,\n ScreenShareCaptureOptions,\n VideoCaptureOptions,\n} from 'livekit-client';\nimport type { MediaDeviceFailure, Room } from 'livekit-client';\nimport * as React from 'react';\n\n/** @public */\nexport interface LiveKitRoomProps {\n /**\n * URL to the LiveKit server.\n * For example: `wss://<domain>.livekit.cloud`\n * To simplify the implementation, `undefined` is also accepted as an intermediate value, but only with a valid string url can the connection be established.\n */\n serverUrl: string | undefined;\n /**\n * A user specific access token for a client to authenticate to the room.\n * This token is necessary to establish a connection to the room.\n * To simplify the implementation, `undefined` is also accepted as an intermediate value, but only with a valid string token can the connection be established.\n *\n * @see https://docs.livekit.io/cloud/project-management/keys-and-tokens/#generating-access-tokens\n */\n token: string | undefined;\n /**\n * Publish audio immediately after connecting to your LiveKit room.\n * @defaultValue `false`\n * @see https://docs.livekit.io/client-sdk-js/interfaces/AudioCaptureOptions.html\n */\n audio?: AudioCaptureOptions | boolean;\n /**\n * Publish video immediately after connecting to your LiveKit room.\n * @defaultValue `false`\n * @see https://docs.livekit.io/client-sdk-js/interfaces/VideoCaptureOptions.html\n */\n video?: VideoCaptureOptions | boolean;\n /**\n * Publish screen share immediately after connecting to your LiveKit room.\n * @defaultValue `false`\n * @see https://docs.livekit.io/client-sdk-js/interfaces/ScreenShareCaptureOptions.html\n */\n screen?: ScreenShareCaptureOptions | boolean;\n /**\n * If set to true a connection to LiveKit room is initiated.\n * @defaultValue `true`\n */\n connect?: boolean;\n /**\n * Options for when creating a new room.\n * When you pass your own room instance to this component, these options have no effect.\n * Instead, set the options directly in the room instance.\n *\n * @see https://docs.livekit.io/client-sdk-js/interfaces/RoomOptions.html\n */\n options?: RoomOptions;\n /**\n * Define options how to connect to the LiveKit server.\n *\n * @see https://docs.livekit.io/client-sdk-js/interfaces/RoomConnectOptions.html\n */\n connectOptions?: RoomConnectOptions;\n onConnected?: () => void;\n onDisconnected?: () => void;\n onError?: (error: Error) => void;\n onMediaDeviceFailure?: (failure?: MediaDeviceFailure) => void;\n onEncryptionError?: (error: Error) => void;\n /**\n * Optional room instance.\n * By passing your own room instance you overwrite the `options` parameter,\n * make sure to set the options directly on the room instance itself.\n */\n room?: Room;\n\n simulateParticipants?: number | undefined;\n\n /** @experimental */\n featureFlags?: FeatureFlags | undefined;\n}\n\n/**\n * The `LiveKitRoom` component provides the room context to all its child components.\n * It is generally the starting point of your LiveKit app and the root of the LiveKit component tree.\n * It provides the room state as a React context to all child components, so you don't have to pass it yourself.\n *\n * @example\n * ```tsx\n * <LiveKitRoom\n * token='<livekit-token>'\n * serverUrl='<url-to-livekit-server>'\n * connect={true}\n * >\n * ...\n * </LiveKitRoom>\n * ```\n * @public\n */\nexport function LiveKitRoom(props: React.PropsWithChildren<LiveKitRoomProps>) {\n const { room } = useLiveKitRoom(props);\n return (\n <>\n {room && (\n <RoomContext.Provider value={room}>\n <LKFeatureContext.Provider value={props.featureFlags}>\n {props.children}\n </LKFeatureContext.Provider>\n </RoomContext.Provider>\n )}\n </>\n );\n}\n"],"mappings":"AAAA,SAEEA,gBAAgB,EAChBC,WAAW,EACXC,cAAc,QACT,2BAA2B;AASlC,OAAO,KAAKC,KAAK,MAAM,OAAO;;AAE9B;;AAuEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAgD,EAAE;EAC5E,MAAM;IAAEC;EAAK,CAAC,GAAGJ,cAAc,CAACG,KAAK,CAAC;EACtC,oBACEF,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QACGF,IAAI,iBACHH,KAAA,CAAAI,aAAA,CAACN,WAAW,CAACQ,QAAQ;IAACC,KAAK,EAAEJ;EAAK,gBAChCH,KAAA,CAAAI,aAAA,CAACP,gBAAgB,CAACS,QAAQ;IAACC,KAAK,EAAEL,KAAK,CAACM;EAAa,GAClDN,KAAK,CAACO,QACkB,CACP,CAExB,CAAC;AAEP","ignoreList":[]}
1
+ {"version":3,"names":["LKFeatureContext","RoomContext","useLiveKitRoom","React","jsx","_jsx","Fragment","_Fragment","LiveKitRoom","props","room","children","Provider","value","featureFlags"],"sourceRoot":"../../../src","sources":["components/LiveKitRoom.tsx"],"mappings":";;AAAA,SAEEA,gBAAgB,EAChBC,WAAW,EACXC,cAAc,QACT,2BAA2B;AASlC,OAAO,KAAKC,KAAK,MAAM,OAAO;;AAE9B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAuEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAgD,EAAE;EAC5E,MAAM;IAAEC;EAAK,CAAC,GAAGR,cAAc,CAACO,KAAK,CAAC;EACtC,oBACEJ,IAAA,CAAAE,SAAA;IAAAI,QAAA,EACGD,IAAI,iBACHL,IAAA,CAACJ,WAAW,CAACW,QAAQ;MAACC,KAAK,EAAEH,IAAK;MAAAC,QAAA,eAChCN,IAAA,CAACL,gBAAgB,CAACY,QAAQ;QAACC,KAAK,EAAEJ,KAAK,CAACK,YAAa;QAAAH,QAAA,EAClDF,KAAK,CAACE;MAAQ,CACU;IAAC,CACR;EACvB,CACD,CAAC;AAEP","ignoreList":[]}
@@ -1,7 +1,5 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import * as React from 'react';
1
+ "use strict";
2
+
5
3
  import { Platform, StyleSheet, View } from 'react-native';
6
4
  import { LocalVideoTrack, TrackEvent } from 'livekit-client';
7
5
  import { RTCView, RTCPIPView } from '@livekit/react-native-webrtc';
@@ -13,7 +11,7 @@ import ViewPortDetector from './ViewPortDetector';
13
11
  * Props for the VideoTrack component.
14
12
  * @public
15
13
  */
16
-
14
+ import { jsx as _jsx } from "react/jsx-runtime";
17
15
  /**
18
16
  * VideoTrack component for displaying video tracks in a React Native application.
19
17
  * It supports both local and remote video tracks from LiveKit, and handles adaptive streaming for remote tracks.
@@ -31,24 +29,23 @@ export const VideoTrack = /*#__PURE__*/forwardRef(({
31
29
  iosPIP
32
30
  }, ref) => {
33
31
  const [elementInfo] = useState(() => {
34
- var _trackRef$publication;
35
32
  let info = new VideoTrackElementInfo();
36
- info.id = trackRef === null || trackRef === void 0 || (_trackRef$publication = trackRef.publication) === null || _trackRef$publication === void 0 ? void 0 : _trackRef$publication.trackSid;
33
+ info.id = trackRef?.publication?.trackSid;
37
34
  return info;
38
35
  });
39
36
  const layoutOnChange = useCallback(event => elementInfo.onLayout(event), [elementInfo]);
40
- const iosPIPEnabled = (iosPIP === null || iosPIP === void 0 ? void 0 : iosPIP.enabled) ?? false;
37
+ const iosPIPEnabled = iosPIP?.enabled ?? false;
41
38
  const visibilityOnChange = useCallback(isVisible => elementInfo.onVisibility(isVisible || iosPIPEnabled), [elementInfo, iosPIPEnabled]);
42
- const videoTrack = trackRef === null || trackRef === void 0 ? void 0 : trackRef.publication.track;
39
+ const videoTrack = trackRef?.publication.track;
43
40
  const shouldObserveVisibility = useMemo(() => {
44
41
  return videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream;
45
42
  }, [videoTrack]);
46
- const [mediaStream, setMediaStream] = useState(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
43
+ const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);
47
44
  useEffect(() => {
48
- setMediaStream(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
45
+ setMediaStream(videoTrack?.mediaStream);
49
46
  if (videoTrack instanceof LocalVideoTrack) {
50
47
  const onRestarted = track => {
51
- setMediaStream(track === null || track === void 0 ? void 0 : track.mediaStream);
48
+ setMediaStream(track?.mediaStream);
52
49
  };
53
50
  videoTrack.on(TrackEvent.Restarted, onRestarted);
54
51
  return () => {
@@ -60,9 +57,9 @@ export const VideoTrack = /*#__PURE__*/forwardRef(({
60
57
  }, [videoTrack]);
61
58
  useEffect(() => {
62
59
  if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {
63
- videoTrack === null || videoTrack === void 0 || videoTrack.observeElementInfo(elementInfo);
60
+ videoTrack?.observeElementInfo(elementInfo);
64
61
  return () => {
65
- videoTrack === null || videoTrack === void 0 || videoTrack.stopObservingElementInfo(elementInfo);
62
+ videoTrack?.stopObservingElementInfo(elementInfo);
66
63
  };
67
64
  } else {
68
65
  return () => {};
@@ -70,11 +67,11 @@ export const VideoTrack = /*#__PURE__*/forwardRef(({
70
67
  }, [videoTrack, elementInfo]);
71
68
  let videoView;
72
69
  if (!iosPIP || Platform.OS !== 'ios') {
73
- videoView = /*#__PURE__*/React.createElement(RTCView, {
70
+ videoView = /*#__PURE__*/_jsx(RTCView, {
74
71
  style: styles.videoTrack
75
72
  // @ts-expect-error
76
73
  ,
77
- streamURL: (mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.toURL()) ?? '',
74
+ streamURL: mediaStream?.toURL() ?? '',
78
75
  objectFit: objectFit,
79
76
  zOrder: zOrder,
80
77
  mirror: mirror
@@ -83,11 +80,11 @@ export const VideoTrack = /*#__PURE__*/forwardRef(({
83
80
  ref: ref
84
81
  });
85
82
  } else {
86
- videoView = /*#__PURE__*/React.createElement(RTCPIPView, {
83
+ videoView = /*#__PURE__*/_jsx(RTCPIPView, {
87
84
  style: styles.videoTrack
88
85
  // @ts-expect-error
89
86
  ,
90
- streamURL: (mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.toURL()) ?? '',
87
+ streamURL: mediaStream?.toURL() ?? '',
91
88
  objectFit: objectFit,
92
89
  zOrder: zOrder,
93
90
  mirror: mirror
@@ -98,18 +95,20 @@ export const VideoTrack = /*#__PURE__*/forwardRef(({
98
95
  ref: ref
99
96
  });
100
97
  }
101
- return /*#__PURE__*/React.createElement(View, {
98
+ return /*#__PURE__*/_jsx(View, {
102
99
  style: {
103
100
  ...style,
104
101
  ...styles.container
105
102
  },
106
- onLayout: layoutOnChange
107
- }, /*#__PURE__*/React.createElement(ViewPortDetector, {
108
- onChange: visibilityOnChange,
109
- style: styles.videoTrack,
110
- disabled: !shouldObserveVisibility,
111
- propKey: videoTrack
112
- }, videoView));
103
+ onLayout: layoutOnChange,
104
+ children: /*#__PURE__*/_jsx(ViewPortDetector, {
105
+ onChange: visibilityOnChange,
106
+ style: styles.videoTrack,
107
+ disabled: !shouldObserveVisibility,
108
+ propKey: videoTrack,
109
+ children: videoView
110
+ })
111
+ });
113
112
  });
114
113
  const styles = StyleSheet.create({
115
114
  container: {},
@@ -119,21 +118,14 @@ const styles = StyleSheet.create({
119
118
  }
120
119
  });
121
120
  class VideoTrackElementInfo {
122
- constructor() {
123
- _defineProperty(this, "element", {});
124
- _defineProperty(this, "something", void 0);
125
- _defineProperty(this, "id", void 0);
126
- _defineProperty(this, "_width", 0);
127
- _defineProperty(this, "_height", 0);
128
- _defineProperty(this, "_observing", false);
129
- _defineProperty(this, "visible", true);
130
- _defineProperty(this, "visibilityChangedAt", void 0);
131
- _defineProperty(this, "pictureInPicture", false);
132
- _defineProperty(this, "handleResize", void 0);
133
- _defineProperty(this, "handleVisibilityChanged", void 0);
134
- _defineProperty(this, "width", () => this._width);
135
- _defineProperty(this, "height", () => this._height);
136
- }
121
+ element = {};
122
+ _width = 0;
123
+ _height = 0;
124
+ _observing = false;
125
+ visible = true;
126
+ pictureInPicture = false;
127
+ width = () => this._width;
128
+ height = () => this._height;
137
129
  observe() {
138
130
  this._observing = true;
139
131
  }
@@ -148,8 +140,7 @@ class VideoTrackElementInfo {
148
140
  this._width = width;
149
141
  this._height = height;
150
142
  if (this._observing) {
151
- var _this$handleResize;
152
- (_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 || _this$handleResize.call(this);
143
+ this.handleResize?.();
153
144
  }
154
145
  }
155
146
  onVisibility(isVisible) {
@@ -157,8 +148,7 @@ class VideoTrackElementInfo {
157
148
  this.visible = isVisible;
158
149
  this.visibilityChangedAt = Date.now();
159
150
  if (this._observing) {
160
- var _this$handleVisibilit;
161
- (_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 || _this$handleVisibilit.call(this);
151
+ this.handleVisibilityChanged?.();
162
152
  }
163
153
  }
164
154
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","StyleSheet","View","LocalVideoTrack","TrackEvent","RTCView","RTCPIPView","forwardRef","useCallback","useEffect","useMemo","useState","RemoteVideoTrack","ViewPortDetector","VideoTrack","style","trackRef","objectFit","zOrder","mirror","iosPIP","ref","elementInfo","_trackRef$publication","info","VideoTrackElementInfo","id","publication","trackSid","layoutOnChange","event","onLayout","iosPIPEnabled","enabled","visibilityOnChange","isVisible","onVisibility","videoTrack","track","shouldObserveVisibility","isAdaptiveStream","mediaStream","setMediaStream","onRestarted","on","Restarted","off","observeElementInfo","stopObservingElementInfo","videoView","OS","createElement","styles","streamURL","toURL","container","onChange","disabled","propKey","create","flex","width","constructor","_defineProperty","_width","_height","observe","_observing","stopObserving","height","nativeEvent","layout","_this$handleResize","handleResize","call","visible","visibilityChangedAt","Date","now","_this$handleVisibilit","handleVisibilityChanged"],"sources":["VideoTrack.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n type ViewStyle,\n} from 'react-native';\nimport {\n type ElementInfo,\n LocalVideoTrack,\n Track,\n TrackEvent,\n} from 'livekit-client';\nimport {\n RTCView,\n RTCPIPView,\n type RTCIOSPIPOptions,\n} from '@livekit/react-native-webrtc';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { RemoteVideoTrack } from 'livekit-client';\nimport ViewPortDetector from './ViewPortDetector';\nimport type { TrackReference } from '@livekit/components-react';\n\n/**\n * Props for the VideoTrack component.\n * @public\n */\nexport type VideoTrackProps = {\n /**\n * The track reference to display. This should be a TrackReference object\n * or undefined if no track is available.\n */\n trackRef: TrackReference | undefined;\n /**\n * Custom React Native styles for the video container.\n */\n style?: ViewStyle;\n /**\n * Specifies how the video content should be resized to fit its container.\n * 'cover' (default): The video will fill the entire container, potentially cropping the video.\n * 'contain': The entire video will be visible within the container, potentially leaving empty space.\n */\n objectFit?: 'cover' | 'contain' | undefined;\n /**\n * Indicates whether the video should be mirrored during rendering.\n * This is commonly used for front-facing cameras.\n */\n mirror?: boolean;\n /**\n * Specifies the depth-stacking order of this video view in the stacking space of all video views.\n * A larger zOrder value generally causes the view to cover those with lower values.\n *\n * The support for zOrder is platform-dependent and/or\n * implementation-specific. Thus, specifying a value for zOrder is to be\n * thought of as giving a hint rather than as imposing a requirement. For\n * example, video renderers such as RTCView are commonly implemented using\n * OpenGL and OpenGL views may have different numbers of layers in their\n * stacking space. Android has three: a layer bellow the window (aka\n * default), a layer bellow the window again but above the previous layer\n * (aka media overlay), and above the window. Consequently, it is advisable\n * to limit the number of utilized layers in the stacking space to the\n * minimum sufficient for the desired display. For example, a video call\n * application usually needs a maximum of two zOrder values: 0 for the\n * remote video(s) which appear in the background, and 1 for the local\n * video(s) which appear above the remote video(s).\n */\n zOrder?: number;\n\n /**\n * Picture in picture options for this view. Disabled if not supplied.\n *\n * iOS only. Requires iOS 15.0 or above, and the PIP background mode capability.\n *\n * If `iosPIP.enabled` is true, the methods `startIOSPIP` and `stopIOSPIP`\n * can be used to manually trigger the PIP mode.\n *\n * `iosPIP.startAutomatically` can be used to automatically\n * enter PIP when backgrounding the app.\n *\n * `iosPIP.preferredSize` is used to provide a suggested aspect ratio.\n *\n * @example\n * ```tsx\n * import { startIOSPIP, stopIOSPIP } from '@livekit/react-native-webrtc';\n *\n * // Obtain a ref to the view\n * const videoRef = useRef<Component>(null);\n * const videoView = (\n * <VideoTrack\n * ref={videoRef}\n * iosPIP={{\n * enabled: true,\n * startAutomatically: true,\n * preferredSize: {\n * width: 9,\n * height: 16,\n * },\n * }}\n * ...\n * />\n * );\n *\n * // Start/stop manually\n * startIOSPIP(videoRef);\n * stopIOSPIP(videoRef);\n * ```\n *\n */\n iosPIP?: RTCIOSPIPOptions & {\n preferredSize: {\n width: number;\n height: number;\n };\n fallbackView?: ReactNode;\n };\n};\n\ntype RTCViewInstance = InstanceType<typeof RTCView>;\n\n/**\n * VideoTrack component for displaying video tracks in a React Native application.\n * It supports both local and remote video tracks from LiveKit, and handles adaptive streaming for remote tracks.\n *\n * @param props - See VideoTrackProps for details.\n * @returns A React component that renders the given video track.\n * @public\n */\nexport const VideoTrack = forwardRef<RTCViewInstance, VideoTrackProps>(\n (\n {\n style = {},\n trackRef,\n objectFit = 'cover',\n zOrder,\n mirror,\n iosPIP,\n }: VideoTrackProps,\n ref\n ) => {\n const [elementInfo] = useState(() => {\n let info = new VideoTrackElementInfo();\n info.id = trackRef?.publication?.trackSid;\n return info;\n });\n\n const layoutOnChange = useCallback(\n (event: LayoutChangeEvent) => elementInfo.onLayout(event),\n [elementInfo]\n );\n\n const iosPIPEnabled = iosPIP?.enabled ?? false;\n const visibilityOnChange = useCallback(\n (isVisible: boolean) =>\n elementInfo.onVisibility(isVisible || iosPIPEnabled),\n [elementInfo, iosPIPEnabled]\n );\n\n const videoTrack = trackRef?.publication.track;\n\n const shouldObserveVisibility = useMemo(() => {\n return (\n videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream\n );\n }, [videoTrack]);\n\n const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);\n useEffect(() => {\n setMediaStream(videoTrack?.mediaStream);\n if (videoTrack instanceof LocalVideoTrack) {\n const onRestarted = (track: Track | null) => {\n setMediaStream(track?.mediaStream);\n };\n videoTrack.on(TrackEvent.Restarted, onRestarted);\n\n return () => {\n videoTrack.off(TrackEvent.Restarted, onRestarted);\n };\n } else {\n return () => {};\n }\n }, [videoTrack]);\n\n useEffect(() => {\n if (\n videoTrack instanceof RemoteVideoTrack &&\n videoTrack.isAdaptiveStream\n ) {\n videoTrack?.observeElementInfo(elementInfo);\n return () => {\n videoTrack?.stopObservingElementInfo(elementInfo);\n };\n } else {\n return () => {};\n }\n }, [videoTrack, elementInfo]);\n\n let videoView;\n if (!iosPIP || Platform.OS !== 'ios') {\n videoView = (\n <RTCView\n style={styles.videoTrack}\n // @ts-expect-error\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n // @ts-ignore\n ref={ref}\n />\n );\n } else {\n videoView = (\n <RTCPIPView\n style={styles.videoTrack}\n // @ts-expect-error\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n // TODO: fix this up in react-native-webrtc side.\n // @ts-expect-error\n iosPIP={iosPIP}\n ref={ref}\n />\n );\n }\n return (\n <View style={{ ...style, ...styles.container }} onLayout={layoutOnChange}>\n <ViewPortDetector\n onChange={visibilityOnChange}\n style={styles.videoTrack}\n disabled={!shouldObserveVisibility}\n propKey={videoTrack}\n >\n {videoView}\n </ViewPortDetector>\n </View>\n );\n }\n);\n\nconst styles = StyleSheet.create({\n container: {},\n videoTrack: {\n flex: 1,\n width: '100%',\n },\n});\n\nclass VideoTrackElementInfo implements ElementInfo {\n element: object = {};\n something?: any;\n id?: string;\n _width = 0;\n _height = 0;\n _observing = false;\n visible: boolean = true;\n visibilityChangedAt: number | undefined;\n pictureInPicture = false;\n handleResize?: (() => void) | undefined;\n handleVisibilityChanged?: (() => void) | undefined;\n width = () => this._width;\n height = () => this._height;\n\n observe(): void {\n this._observing = true;\n }\n\n stopObserving(): void {\n this._observing = false;\n }\n\n onLayout(event: LayoutChangeEvent) {\n let { width, height } = event.nativeEvent.layout;\n this._width = width;\n this._height = height;\n\n if (this._observing) {\n this.handleResize?.();\n }\n }\n\n onVisibility(isVisible: boolean) {\n if (this.visible !== isVisible) {\n this.visible = isVisible;\n this.visibilityChangedAt = Date.now();\n if (this._observing) {\n this.handleVisibilityChanged?.();\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","StyleSheet","View","LocalVideoTrack","TrackEvent","RTCView","RTCPIPView","forwardRef","useCallback","useEffect","useMemo","useState","RemoteVideoTrack","ViewPortDetector","jsx","_jsx","VideoTrack","style","trackRef","objectFit","zOrder","mirror","iosPIP","ref","elementInfo","info","VideoTrackElementInfo","id","publication","trackSid","layoutOnChange","event","onLayout","iosPIPEnabled","enabled","visibilityOnChange","isVisible","onVisibility","videoTrack","track","shouldObserveVisibility","isAdaptiveStream","mediaStream","setMediaStream","onRestarted","on","Restarted","off","observeElementInfo","stopObservingElementInfo","videoView","OS","styles","streamURL","toURL","container","children","onChange","disabled","propKey","create","flex","width","element","_width","_height","_observing","visible","pictureInPicture","height","observe","stopObserving","nativeEvent","layout","handleResize","visibilityChangedAt","Date","now","handleVisibilityChanged"],"sourceRoot":"../../../src","sources":["components/VideoTrack.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,5 @@
1
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import * as React from 'react';
1
+ "use strict";
2
+
5
3
  import { StyleSheet, View } from 'react-native';
6
4
  import { LocalVideoTrack, TrackEvent } from 'livekit-client';
7
5
  import { RTCView } from '@livekit/react-native-webrtc';
@@ -12,7 +10,7 @@ import ViewPortDetector from './ViewPortDetector';
12
10
  /**
13
11
  * @deprecated use `VideoTrack` and `VideoTrackProps` instead.
14
12
  */
15
-
13
+ import { jsx as _jsx } from "react/jsx-runtime";
16
14
  /**
17
15
  * @deprecated use `VideoTrack` and `VideoTrackProps` instead.
18
16
  */
@@ -25,7 +23,7 @@ export const VideoView = ({
25
23
  }) => {
26
24
  const [elementInfo] = useState(() => {
27
25
  let info = new VideoViewElementInfo();
28
- info.id = videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.sid;
26
+ info.id = videoTrack?.sid;
29
27
  info.something = videoTrack;
30
28
  return info;
31
29
  });
@@ -34,12 +32,12 @@ export const VideoView = ({
34
32
  const shouldObserveVisibility = useMemo(() => {
35
33
  return videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream;
36
34
  }, [videoTrack]);
37
- const [mediaStream, setMediaStream] = useState(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
35
+ const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);
38
36
  useEffect(() => {
39
- setMediaStream(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
37
+ setMediaStream(videoTrack?.mediaStream);
40
38
  if (videoTrack instanceof LocalVideoTrack) {
41
39
  const onRestarted = track => {
42
- setMediaStream(track === null || track === void 0 ? void 0 : track.mediaStream);
40
+ setMediaStream(track?.mediaStream);
43
41
  };
44
42
  videoTrack.on(TrackEvent.Restarted, onRestarted);
45
43
  return () => {
@@ -51,34 +49,36 @@ export const VideoView = ({
51
49
  }, [videoTrack]);
52
50
  useEffect(() => {
53
51
  if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {
54
- videoTrack === null || videoTrack === void 0 || videoTrack.observeElementInfo(elementInfo);
52
+ videoTrack?.observeElementInfo(elementInfo);
55
53
  return () => {
56
- videoTrack === null || videoTrack === void 0 || videoTrack.stopObservingElementInfo(elementInfo);
54
+ videoTrack?.stopObservingElementInfo(elementInfo);
57
55
  };
58
56
  } else {
59
57
  return () => {};
60
58
  }
61
59
  }, [videoTrack, elementInfo]);
62
- return /*#__PURE__*/React.createElement(View, {
60
+ return /*#__PURE__*/_jsx(View, {
63
61
  style: {
64
62
  ...style,
65
63
  ...styles.container
66
64
  },
67
- onLayout: layoutOnChange
68
- }, /*#__PURE__*/React.createElement(ViewPortDetector, {
69
- onChange: visibilityOnChange,
70
- style: styles.videoView,
71
- disabled: !shouldObserveVisibility,
72
- propKey: videoTrack
73
- }, /*#__PURE__*/React.createElement(RTCView, {
74
- style: styles.videoView
75
- // @ts-expect-error
76
- ,
77
- streamURL: (mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.toURL()) ?? '',
78
- objectFit: objectFit,
79
- zOrder: zOrder,
80
- mirror: mirror
81
- })));
65
+ onLayout: layoutOnChange,
66
+ children: /*#__PURE__*/_jsx(ViewPortDetector, {
67
+ onChange: visibilityOnChange,
68
+ style: styles.videoView,
69
+ disabled: !shouldObserveVisibility,
70
+ propKey: videoTrack,
71
+ children: /*#__PURE__*/_jsx(RTCView, {
72
+ style: styles.videoView
73
+ // @ts-expect-error
74
+ ,
75
+ streamURL: mediaStream?.toURL() ?? '',
76
+ objectFit: objectFit,
77
+ zOrder: zOrder,
78
+ mirror: mirror
79
+ })
80
+ })
81
+ });
82
82
  };
83
83
  const styles = StyleSheet.create({
84
84
  container: {},
@@ -88,21 +88,14 @@ const styles = StyleSheet.create({
88
88
  }
89
89
  });
90
90
  class VideoViewElementInfo {
91
- constructor() {
92
- _defineProperty(this, "element", {});
93
- _defineProperty(this, "something", void 0);
94
- _defineProperty(this, "id", void 0);
95
- _defineProperty(this, "_width", 0);
96
- _defineProperty(this, "_height", 0);
97
- _defineProperty(this, "_observing", false);
98
- _defineProperty(this, "visible", true);
99
- _defineProperty(this, "visibilityChangedAt", void 0);
100
- _defineProperty(this, "pictureInPicture", false);
101
- _defineProperty(this, "handleResize", void 0);
102
- _defineProperty(this, "handleVisibilityChanged", void 0);
103
- _defineProperty(this, "width", () => this._width);
104
- _defineProperty(this, "height", () => this._height);
105
- }
91
+ element = {};
92
+ _width = 0;
93
+ _height = 0;
94
+ _observing = false;
95
+ visible = true;
96
+ pictureInPicture = false;
97
+ width = () => this._width;
98
+ height = () => this._height;
106
99
  observe() {
107
100
  this._observing = true;
108
101
  }
@@ -117,8 +110,7 @@ class VideoViewElementInfo {
117
110
  this._width = width;
118
111
  this._height = height;
119
112
  if (this._observing) {
120
- var _this$handleResize;
121
- (_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 || _this$handleResize.call(this);
113
+ this.handleResize?.();
122
114
  }
123
115
  }
124
116
  onVisibility(isVisible) {
@@ -126,8 +118,7 @@ class VideoViewElementInfo {
126
118
  this.visible = isVisible;
127
119
  this.visibilityChangedAt = Date.now();
128
120
  if (this._observing) {
129
- var _this$handleVisibilit;
130
- (_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 || _this$handleVisibilit.call(this);
121
+ this.handleVisibilityChanged?.();
131
122
  }
132
123
  }
133
124
  }