@techsee/techsee-media-service 999.0.2-switch → 999.0.3-alpha

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 (150) hide show
  1. package/lib/LocalStreamManager.d.ts +12 -0
  2. package/lib/LocalStreamManager.d.ts.map +1 -1
  3. package/lib/LocalStreamManager.js +440 -283
  4. package/lib/LocalStreamManager.js.map +1 -1
  5. package/lib/MediaConstants.d.ts +14 -4
  6. package/lib/MediaConstants.d.ts.map +1 -1
  7. package/lib/MediaConstants.js +83 -38
  8. package/lib/MediaConstants.js.map +1 -1
  9. package/lib/MediaContracts.d.ts +17 -14
  10. package/lib/MediaContracts.d.ts.map +1 -1
  11. package/lib/MediaContracts.js +3 -3
  12. package/lib/MediaContracts.js.map +1 -1
  13. package/lib/MediaPublisher.d.ts +3 -3
  14. package/lib/MediaPublisher.d.ts.map +1 -1
  15. package/lib/MediaPublisher.js +46 -35
  16. package/lib/MediaPublisher.js.map +1 -1
  17. package/lib/MediaServiceBase.d.ts +21 -7
  18. package/lib/MediaServiceBase.d.ts.map +1 -1
  19. package/lib/MediaServiceBase.js +924 -586
  20. package/lib/MediaServiceBase.js.map +1 -1
  21. package/lib/MediaSession/MediaServer.d.ts +45 -0
  22. package/lib/MediaSession/MediaServer.d.ts.map +1 -0
  23. package/lib/MediaSession/MediaServer.js +538 -0
  24. package/lib/MediaSession/MediaServer.js.map +1 -0
  25. package/lib/MediaSession/MediaSessionBase.d.ts +10 -1
  26. package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
  27. package/lib/MediaSession/MediaSessionBase.js +128 -66
  28. package/lib/MediaSession/MediaSessionBase.js.map +1 -1
  29. package/lib/MediaSession/SessionOpentok.d.ts +11 -9
  30. package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
  31. package/lib/MediaSession/SessionOpentok.js +500 -352
  32. package/lib/MediaSession/SessionOpentok.js.map +1 -1
  33. package/lib/MediaSession/SessionTurn.d.ts +4 -1
  34. package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
  35. package/lib/MediaSession/SessionTurn.js +611 -422
  36. package/lib/MediaSession/SessionTurn.js.map +1 -1
  37. package/lib/MediaSession/TurnConstants.js +31 -30
  38. package/lib/MediaSession/TurnConstants.js.map +1 -1
  39. package/lib/MediaSubscriber.d.ts +11 -11
  40. package/lib/MediaSubscriber.d.ts.map +1 -1
  41. package/lib/MediaSubscriber.js +236 -192
  42. package/lib/MediaSubscriber.js.map +1 -1
  43. package/lib/MediaUtils/Compatibility.d.ts +2 -1
  44. package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
  45. package/lib/MediaUtils/Compatibility.js +130 -85
  46. package/lib/MediaUtils/Compatibility.js.map +1 -1
  47. package/lib/MediaUtils/MediaDomUtils.d.ts +3 -2
  48. package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
  49. package/lib/MediaUtils/MediaDomUtils.js +235 -174
  50. package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
  51. package/lib/MediaUtils/MediaTracer.js +9 -4
  52. package/lib/MediaUtils/MediaTracer.js.map +1 -1
  53. package/lib/MediaUtils/index.d.ts +1 -0
  54. package/lib/MediaUtils/index.d.ts.map +1 -0
  55. package/lib/MediaUtils/index.js +16 -0
  56. package/lib/MediaUtils/index.js.map +1 -0
  57. package/lib/MultiParty/Contracts.d.ts +16 -0
  58. package/lib/MultiParty/Contracts.d.ts.map +1 -0
  59. package/lib/MultiParty/Contracts.js +6 -0
  60. package/lib/MultiParty/Contracts.js.map +1 -0
  61. package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
  62. package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
  63. package/lib/MultiParty/DetectWebRtcService.js +79 -0
  64. package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
  65. package/lib/MultiParty/MediaCapabilitiesService.d.ts +23 -0
  66. package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -0
  67. package/lib/MultiParty/MediaCapabilitiesService.js +369 -0
  68. package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -0
  69. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +5 -0
  70. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -0
  71. package/lib/MultiParty/MediaCapabilitiesUtils.js +305 -0
  72. package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -0
  73. package/lib/MultiParty/MultiPartyService.d.ts +41 -0
  74. package/lib/MultiParty/MultiPartyService.d.ts.map +1 -0
  75. package/lib/MultiParty/MultiPartyService.js +72 -0
  76. package/lib/MultiParty/MultiPartyService.js.map +1 -0
  77. package/lib/MultiParty/MultiPartyServiceFactory.d.ts +3 -0
  78. package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -0
  79. package/lib/MultiParty/MultiPartyServiceFactory.js +21 -0
  80. package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -0
  81. package/lib/MultiParty/OpentokMultiPartyService.d.ts +29 -0
  82. package/lib/MultiParty/OpentokMultiPartyService.d.ts.map +1 -0
  83. package/lib/MultiParty/OpentokMultiPartyService.js +888 -0
  84. package/lib/MultiParty/OpentokMultiPartyService.js.map +1 -0
  85. package/lib/MultiParty/VideoLayoutType.d.ts +4 -0
  86. package/lib/MultiParty/VideoLayoutType.d.ts.map +1 -0
  87. package/lib/MultiParty/VideoLayoutType.js +13 -0
  88. package/lib/MultiParty/VideoLayoutType.js.map +1 -0
  89. package/lib/MultiParty/index.d.ts +4 -0
  90. package/lib/MultiParty/index.d.ts.map +1 -0
  91. package/lib/MultiParty/index.js +61 -0
  92. package/lib/MultiParty/index.js.map +1 -0
  93. package/lib/MultiParty/opentok.d.ts +503 -0
  94. package/lib/TechseeMediaStream.d.ts +6 -6
  95. package/lib/TechseeMediaStream.d.ts.map +1 -1
  96. package/lib/TechseeMediaStream.js +59 -53
  97. package/lib/TechseeMediaStream.js.map +1 -1
  98. package/lib/oldCode/constants.js +20 -15
  99. package/lib/oldCode/constants.js.map +1 -1
  100. package/lib/oldCode/event-emitter.js +45 -22
  101. package/lib/oldCode/event-emitter.js.map +1 -1
  102. package/lib/oldCode/index.js +48 -52
  103. package/lib/oldCode/index.js.map +1 -1
  104. package/lib/oldCode/opentok/session.js +261 -236
  105. package/lib/oldCode/opentok/session.js.map +1 -1
  106. package/lib/oldCode/opentok/stream.js +283 -269
  107. package/lib/oldCode/opentok/stream.js.map +1 -1
  108. package/lib/oldCode/publisher.js +96 -71
  109. package/lib/oldCode/publisher.js.map +1 -1
  110. package/lib/oldCode/service.js +294 -272
  111. package/lib/oldCode/service.js.map +1 -1
  112. package/lib/oldCode/session.js +82 -60
  113. package/lib/oldCode/session.js.map +1 -1
  114. package/lib/oldCode/stream.js +153 -125
  115. package/lib/oldCode/stream.js.map +1 -1
  116. package/lib/oldCode/subscriber.js +60 -35
  117. package/lib/oldCode/subscriber.js.map +1 -1
  118. package/lib/oldCode/tracer.d.ts +3 -2
  119. package/lib/oldCode/tracer.d.ts.map +1 -1
  120. package/lib/oldCode/tracer.js +181 -130
  121. package/lib/oldCode/tracer.js.map +1 -1
  122. package/lib/oldCode/utils/ImageFixer.js +67 -44
  123. package/lib/oldCode/utils/ImageFixer.js.map +1 -1
  124. package/lib/oldCode/webrtc/constants.js +102 -110
  125. package/lib/oldCode/webrtc/constants.js.map +1 -1
  126. package/lib/oldCode/webrtc/helper.js +176 -124
  127. package/lib/oldCode/webrtc/helper.js.map +1 -1
  128. package/lib/oldCode/webrtc/session-kms.js +408 -393
  129. package/lib/oldCode/webrtc/session-kms.js.map +1 -1
  130. package/lib/oldCode/webrtc/session-loopback.js +245 -227
  131. package/lib/oldCode/webrtc/session-loopback.js.map +1 -1
  132. package/lib/oldCode/webrtc/session-turn.js +705 -658
  133. package/lib/oldCode/webrtc/session-turn.js.map +1 -1
  134. package/lib/oldCode/webrtc/session-turn.v2.js +480 -471
  135. package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -1
  136. package/lib/oldCode/webrtc/session.js +12 -6
  137. package/lib/oldCode/webrtc/session.js.map +1 -1
  138. package/lib/oldCode/webrtc/stream.js +526 -504
  139. package/lib/oldCode/webrtc/stream.js.map +1 -1
  140. package/lib/oldCode/webrtc/temasys/adapter-loader.js +5 -6
  141. package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -1
  142. package/lib/oldCode/webrtc/temasys/adapter.js +5264 -5192
  143. package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
  144. package/lib/oldCode/webrtc/webrtc-ie-shim.js +3357 -2927
  145. package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -1
  146. package/lib/qos/raw-qos.js +348 -273
  147. package/lib/qos/raw-qos.js.map +1 -1
  148. package/lib/webrtc-ie-shim.js +3386 -2985
  149. package/lib/webrtc-ie-shim.js.map +1 -1
  150. package/package.json +54 -42
@@ -0,0 +1,503 @@
1
+ declare namespace OT {
2
+ export type OTError = {
3
+ name: string;
4
+ message: string;
5
+ };
6
+
7
+ export type Dimensions = {
8
+ width: number;
9
+ height: number;
10
+ }
11
+
12
+ export type ScreenSharingCapabilityResponse = {
13
+ extensionInstalled?: boolean;
14
+ supported: boolean;
15
+ supportedSources: {
16
+ application?: boolean;
17
+ screen?: boolean;
18
+ window?: boolean;
19
+ };
20
+ extensionRequired?: string;
21
+ extensionRegistered?: boolean;
22
+ };
23
+
24
+ export function checkScreenSharingCapability(
25
+ callback: (response: ScreenSharingCapabilityResponse) => void
26
+ ): void;
27
+
28
+ export function checkSystemRequirements(): number;
29
+
30
+ export type Device = {
31
+ kind: 'audioInput' | 'videoInput';
32
+ deviceId: string;
33
+ label: string;
34
+ };
35
+
36
+ export function getDevices(
37
+ callback: (error: OTError | undefined, devices?: Device[]) => void
38
+ ): void;
39
+
40
+ export function setProxyUrl(proxyUrl: string): void;
41
+
42
+ export function getSupportedCodecs(): Promise<{ videoEncoders: ('H264' | 'VP8')[], videoDecoders: ('H264' | 'VP8')[] }>;
43
+
44
+ export type WidgetStyle = {
45
+ audioLevelDisplayMode: 'auto' | 'on' | 'off';
46
+ backgroundImageURI: string;
47
+ buttonDisplayMode: 'auto' | 'on' | 'off';
48
+ nameDisplayMode: 'auto' | 'on' | 'off';
49
+ };
50
+
51
+ export type WidgetProperties = {
52
+ fitMode?: 'cover' | 'contain';
53
+ insertDefaultUI?: boolean;
54
+ insertMode?: 'replace' | 'after' | 'before' | 'append';
55
+ showControls?: boolean;
56
+ width?: string | number;
57
+ height?: string | number;
58
+ };
59
+
60
+ export type PublisherStyle = WidgetStyle & {
61
+ archiveStatusDisplayMode: 'auto' | 'off';
62
+ };
63
+
64
+ export type GetUserMediaProperties = {
65
+ audioSource?: string | null | boolean | MediaStreamTrack;
66
+ disableAudioProcessing?: boolean;
67
+ echoCancellation?: boolean;
68
+ noiseSuppression?: boolean;
69
+ autoGainControl?: boolean;
70
+ facingMode?: 'user' | 'environment' | 'left' | 'right';
71
+ frameRate?: 30 | 15 | 7 | 1;
72
+ maxResolution?: Dimensions;
73
+ resolution?: (
74
+ '1280x960' |
75
+ '1280x720' |
76
+ '640x480' |
77
+ '640x360' |
78
+ '320x240' |
79
+ '320x180'
80
+ );
81
+ videoSource?: string | null | boolean | MediaStreamTrack;
82
+ };
83
+
84
+ export type PublisherProperties = WidgetProperties & GetUserMediaProperties & {
85
+ audioBitrate?: number;
86
+ audioFallbackEnabled?: boolean;
87
+ mirror?: boolean;
88
+ name?: string;
89
+ publishAudio?: boolean;
90
+ publishVideo?: boolean;
91
+ style?: Partial<PublisherStyle>;
92
+ };
93
+
94
+ export type SubscriberStyle = WidgetStyle & {
95
+ videoDisabledDisplayMode: 'auto' | 'on' | 'off';
96
+ audioBlockedDisplayMode: 'auto' | 'on' | 'off';
97
+ };
98
+
99
+ export type SubscriberProperties = WidgetProperties & {
100
+ audioVolume?: number;
101
+ preferredFrameRate?: number;
102
+ preferredResolution?: Dimensions;
103
+ style?: Partial<SubscriberStyle>;
104
+ subscribeToAudio?: boolean;
105
+ subscribeToVideo?: boolean;
106
+ testNetwork?: boolean;
107
+ };
108
+
109
+ export class Connection {
110
+ connectionId: string;
111
+ creationTime: number;
112
+ data: string;
113
+ }
114
+
115
+ export class Stream {
116
+ connection: Connection;
117
+ creationTime: number;
118
+ frameRate: number;
119
+ hasAudio: boolean;
120
+ hasVideo: boolean;
121
+ name: string;
122
+ streamId: string;
123
+ videoDimensions: {
124
+ width: number;
125
+ height: number;
126
+ };
127
+ videoType: 'camera' | 'screen';
128
+ }
129
+
130
+ export type Event<Type, Target> = {
131
+ type: Type;
132
+ cancelable: boolean;
133
+ target: Target;
134
+
135
+ isDefaultPrevented(): boolean;
136
+ preventDefault(): void;
137
+ };
138
+
139
+ export type ExceptionEvent = Event<'exception', {}> & {
140
+ code: number;
141
+ message: string;
142
+ title: string;
143
+ };
144
+
145
+ export type VideoDimensionsChangedEvent<Target> = Event<'videoDimensionsChanged', Target> & {
146
+ oldValue: Dimensions;
147
+ newValue: Dimensions;
148
+ };
149
+
150
+ class OTEventEmitter<EventMap> {
151
+ on<EventName extends keyof EventMap>(
152
+ eventName: EventName,
153
+ callback: (event: EventMap[EventName]) => void,
154
+ context?: object
155
+ ): void;
156
+
157
+ on(
158
+ eventName: string,
159
+ callback: (event: Event<string, any>) => void,
160
+ context?: object
161
+ ): void;
162
+
163
+ on(
164
+ eventMap: object,
165
+ context?: object
166
+ ): void;
167
+
168
+ once<EventName extends keyof EventMap>(
169
+ eventName: EventName,
170
+ callback: (event: EventMap[EventName]) => void,
171
+ context?: object
172
+ ): void;
173
+
174
+ once(
175
+ eventName: string,
176
+ callback: (event: Event<string, any>) => void,
177
+ context?: object
178
+ ): void;
179
+
180
+ once(
181
+ eventMap: object,
182
+ context?: object
183
+ ): void;
184
+
185
+ off<EventName extends keyof EventMap>(
186
+ eventName?: EventName,
187
+ callback?: (event: EventMap[EventName]) => void,
188
+ context?: object
189
+ ): void;
190
+
191
+ off(
192
+ eventName?: string,
193
+ callback?: (event: Event<string, any>) => void,
194
+ context?: object
195
+ ): void;
196
+
197
+ off(
198
+ eventMap: object,
199
+ context?: object
200
+ ): void;
201
+ }
202
+
203
+ export class Publisher extends OTEventEmitter<{
204
+ accessAllowed: Event<'accessAllowed', Publisher>;
205
+ accessDenied: Event<'accessDenied', Publisher>;
206
+ accessDialogClosed: Event<'accessDialogClosed', Publisher>;
207
+ accessDialogOpened: Event<'accessDialogOpened', Publisher>;
208
+
209
+ audioLevelUpdated: Event<'audioLevelUpdated', Publisher> & {
210
+ audioLevel: number
211
+ };
212
+
213
+ destroyed: Event<'destroyed', Publisher>;
214
+
215
+ mediaStopped: Event<'mediaStopped', Publisher> & {
216
+ track: MediaStreamTrack | undefined
217
+ };
218
+
219
+ streamCreated: Event<'streamCreated', Publisher> & {
220
+ stream: Stream;
221
+ };
222
+
223
+ streamDestroyed: Event<'streamDestroyed', Publisher> & {
224
+ stream: Stream;
225
+ reason: string;
226
+ };
227
+
228
+ videoDimensionsChanged: VideoDimensionsChangedEvent<Publisher>;
229
+
230
+ videoElementCreated: Event<'videoElementCreated', Publisher> & {
231
+ element: HTMLVideoElement | HTMLObjectElement;
232
+ };
233
+ }> {
234
+ accessAllowed: boolean;
235
+ element?: HTMLElement | undefined;
236
+ id?: string;
237
+ stream?: Stream;
238
+ session?: Session;
239
+
240
+ destroy(): void;
241
+ getImgData(): string | null;
242
+ getStats(callback: (error?: OTError, stats?: PublisherStatsArr) => void): void;
243
+ getRtcStatsReport(): Promise<PublisherRtcStatsReportArr>;
244
+ getStyle(): PublisherProperties;
245
+ publishAudio(value: boolean): void;
246
+ publishVideo(value: boolean): void;
247
+ cycleVideo(): Promise<{ deviceId: string }>;
248
+ setAudioSource(audioSource:string | MediaStreamTrack): Promise<undefined>;
249
+ getAudioSource(): MediaStreamTrack;
250
+ setVideoSource(videoSourceId: string): Promise<undefined>;
251
+ getVideoSource(): {deviceId: string | null, type: string | null, track: MediaStreamTrack | null};
252
+ setStyle<Style extends keyof PublisherStyle>(style: Style, value: PublisherStyle[Style]): void;
253
+ videoWidth(): number | undefined;
254
+ videoHeight(): number | undefined;
255
+ }
256
+
257
+ export function getUserMedia(
258
+ properties?: GetUserMediaProperties
259
+ ): Promise<MediaStream>;
260
+
261
+ export function initPublisher(
262
+ targetElement?: HTMLElement | string,
263
+ properties?: PublisherProperties,
264
+ callback?: (error?: OTError) => void
265
+ ): Publisher;
266
+
267
+ export function log(message: string): void;
268
+
269
+ export function off(
270
+ eventName?: 'exception',
271
+ callback?: (event: ExceptionEvent) => void,
272
+ context?: object
273
+ ): void;
274
+
275
+ export function on(
276
+ eventName: 'exception',
277
+ callback: (event: ExceptionEvent) => void,
278
+ context?: object
279
+ ): void;
280
+
281
+ export function once(
282
+ eventName: 'exception',
283
+ callback: (event: ExceptionEvent) => void,
284
+ context?: object
285
+ ): void;
286
+
287
+ export class Session extends OTEventEmitter<{
288
+ archiveStarted: Event<'archiveStarted', Session> & {
289
+ id: string;
290
+ name: string;
291
+ };
292
+
293
+ archiveStopped: Event<'archiveStopped', Session> & {
294
+ id: string;
295
+ name: string;
296
+ };
297
+
298
+ connectionCreated: Event<'connectionCreated', Session> & {
299
+ connection: Connection;
300
+ };
301
+
302
+ connectionDestroyed: Event<'connectionDestroyed', Session> & {
303
+ connection: Connection;
304
+ reason: string;
305
+ };
306
+
307
+ sessionConnected: Event<'sessionConnected', Session>;
308
+
309
+ sessionDisconnected: Event<'sessionDisconnected', Session> & {
310
+ reason: string;
311
+ };
312
+
313
+ sessionReconnected: Event<'sessionReconnected', Session>;
314
+ sessionReconnecting: Event<'sessionReconnecting', Session>;
315
+
316
+ signal: Event<'signal', Session> & {
317
+ type?: string;
318
+ data?: string;
319
+ from: Connection;
320
+ };
321
+
322
+ streamCreated: Event<'streamCreated', Session> & {
323
+ stream: Stream;
324
+ };
325
+
326
+ streamDestroyed: Event<'streamDestroyed', Session> & {
327
+ stream: Stream;
328
+ reason: string;
329
+ };
330
+
331
+ streamPropertyChanged: (
332
+ Event<'streamPropertyChanged', Session> & {
333
+ stream: Stream;
334
+ } & (
335
+ { changedProperty: 'hasAudio'; oldValue: boolean; newValue: boolean; } |
336
+ { changedProperty: 'hasVideo'; oldValue: boolean; newValue: boolean; } |
337
+ { changedProperty: 'videoDimensions'; oldValue: Dimensions; newValue: Dimensions; }
338
+ )
339
+ );
340
+ }> {
341
+ capabilities: {
342
+ forceDisconnect: number;
343
+ forceUnpublish: number;
344
+ publish: number;
345
+ subscribe: number;
346
+ };
347
+
348
+ connection?: Connection;
349
+ sessionId: string;
350
+
351
+ connect(token: string, callback: (error?: OTError) => void): void;
352
+ disconnect(): void;
353
+ forceDisconnect(connection: Connection, callback: (error?: OTError) => void): void;
354
+ forceUnpublish(stream: Stream, callback: (error?: OTError) => void): void;
355
+ getPublisherForStream(stream: Stream): Publisher | undefined;
356
+ getSubscribersForStream(stream: Stream): [Subscriber];
357
+ publish(publisher: Publisher, callback?: (error?: OTError) => void): Publisher;
358
+ publish(targetElement: string | HTMLElement, properties?: PublisherProperties, callback?: (error?: OTError) => void): Publisher;
359
+
360
+ signal(
361
+ signal: { type?: string, data?: string, to?: Connection },
362
+ callback: (error?: OTError) => void
363
+ ): void;
364
+
365
+ subscribe(
366
+ stream: Stream,
367
+ targetElement?: HTMLElement | string,
368
+ properties?: SubscriberProperties,
369
+ callback?: (error?: OTError) => void
370
+ ): Subscriber;
371
+
372
+ unpublish(publisher: Publisher): void;
373
+ unsubscribe(subscriber: Subscriber): void;
374
+ }
375
+
376
+ export function initSession(
377
+ partnerId: string,
378
+ sessionId: string,
379
+ options?: {
380
+ connectionEventsSuppressed?: boolean;
381
+ iceConfig?: {
382
+ includeServers: 'all' | 'custom';
383
+ transportPolicy: 'all' | 'relay';
384
+ customServers: {
385
+ urls: string | string[];
386
+ username?: string;
387
+ credential?: string;
388
+ }[];
389
+ };
390
+ ipWhitelist?: boolean;
391
+ }
392
+ ): Session;
393
+
394
+ export type IncomingTrackStats = {
395
+ bytesReceived: number;
396
+ packetsLost: number;
397
+ packetsReceived: number;
398
+ };
399
+
400
+ export type OutgoingTrackStats = {
401
+ bytesSent: number;
402
+ packetsLost: number;
403
+ packetsSent: number;
404
+ }
405
+
406
+ export type SubscriberStats = {
407
+ audio: IncomingTrackStats;
408
+ video: IncomingTrackStats & { frameRate: number; };
409
+ timestamp: number;
410
+ }
411
+
412
+ export type PublisherStats = {
413
+ audio: OutgoingTrackStats;
414
+ video: OutgoingTrackStats & { frameRate: number; };
415
+ timestamp: number;
416
+ }
417
+
418
+ export type PublisherStatContainer = {
419
+ subscriberId?: string,
420
+ connectionId?: string,
421
+ stats: PublisherStats
422
+ }
423
+
424
+ export type PublisherStatsArr = PublisherStatContainer[];
425
+
426
+ export type PublisherRtcStatsReportContainer = {
427
+ subscriberId?: string,
428
+ connectionId?: string,
429
+ rtcStatsReport: RTCStatsReport
430
+ }
431
+
432
+ export type PublisherRtcStatsReportArr = PublisherRtcStatsReportContainer[];
433
+
434
+ export class Subscriber extends OTEventEmitter<{
435
+ audioLevelUpdated: Event<'audioLevelUpdated', Subscriber> & {
436
+ audioLevel: number
437
+ };
438
+
439
+ connected: Event<'connected', Subscriber>;
440
+
441
+ destroyed: Event<'destroyed', Subscriber> & {
442
+ reason: string;
443
+ };
444
+
445
+ videoDimensionsChanged: VideoDimensionsChangedEvent<Subscriber>;
446
+
447
+ videoDisabled: Event<'videoDisabled', Subscriber> & {
448
+ reason: string;
449
+ };
450
+
451
+ videoDisableWarning: Event<'videoDisableWarning', Subscriber>;
452
+ videoDisableWarningLifted: Event<'videoDisableWarningLifted', Subscriber>;
453
+
454
+ videoElementCreated: Event<'videoElementCreated', Subscriber> & {
455
+ element: HTMLVideoElement | HTMLObjectElement;
456
+ };
457
+
458
+ videoEnabled: Event<'videoEnabled', Subscriber> & {
459
+ reason: string;
460
+ };
461
+ }> {
462
+ element?: HTMLElement;
463
+ id?: string;
464
+ stream?: Stream;
465
+
466
+ getAudioVolume(): number;
467
+ getImgData(): string | null;
468
+ getStats(callback: (error?: OTError, stats?: SubscriberStats) => void): void;
469
+ getRtcStatsReport(): Promise<RTCStatsReport>;
470
+ restrictFrameRate(value: boolean): void;
471
+ setAudioVolume(volume: number): void;
472
+ setPreferredFrameRate(frameRate: number): void;
473
+ setPreferredResolution(resolution: Dimensions): void;
474
+ subscribeToAudio(value: boolean): void;
475
+ subscribeToVideo(value: boolean): void;
476
+
477
+ setStyle<Style extends keyof SubscriberStyle>(
478
+ style: Style,
479
+ value: SubscriberStyle[Style]
480
+ ): void;
481
+
482
+ videoHeight(): number | undefined;
483
+ videoWidth(): number | undefined;
484
+ }
485
+
486
+ export function registerScreenSharingExtension(
487
+ kind: string,
488
+ id: string,
489
+ version: number
490
+ ): void;
491
+
492
+ export function reportIssue(callback: (error?: OTError, reportId?: string) => void): void;
493
+
494
+ export function setLogLevel(level: number): void;
495
+
496
+ export function upgradeSystemRequirements(): void;
497
+
498
+ export function unblockAudio(): Promise<undefined>;
499
+ }
500
+
501
+ declare module '@opentok/client' {
502
+ export = OT;
503
+ }
@@ -5,10 +5,10 @@ export declare class TechseeMediaStream {
5
5
  private readonly _isRemote;
6
6
  private readonly dedicatedStream;
7
7
  constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean);
8
- readonly isRemote: boolean;
9
- readonly streamId: string;
10
- readonly streamType: KnownMediaStream;
11
- readonly mediaStream: MediaStream;
12
- readonly mediaTrack: MediaStreamTrack;
13
- readonly streamKind: KnownMediaStreamKind;
8
+ get isRemote(): boolean;
9
+ get streamId(): string;
10
+ get streamType(): KnownMediaStream;
11
+ get mediaStream(): MediaStream;
12
+ get mediaTrack(): MediaStreamTrack;
13
+ get streamKind(): KnownMediaStreamKind;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/TechseeMediaStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAGxE,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;gBAElC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;aAQ3F,QAAQ,EAAI,OAAO;aAInB,QAAQ,EAAI,MAAM;aAIlB,UAAU,EAAI,gBAAgB;aAI9B,WAAW,EAAI,WAAW;aAI1B,UAAU,EAAI,gBAAgB;aAI9B,UAAU,EAAI,oBAAoB;CAGzC","file":"TechseeMediaStream.d.ts","sourcesContent":["import {KnownMediaStream, KnownMediaStreamKind} from './MediaConstants';\n\n\nexport class TechseeMediaStream {\n private readonly _mediaStreamTrack: MediaStreamTrack;\n private readonly _streamType: KnownMediaStream;\n private readonly _isRemote: boolean;\n private readonly dedicatedStream: MediaStream;\n\n constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n\n get isRemote(): boolean {\n return this._isRemote;\n }\n\n get streamId(): string {\n return this._mediaStreamTrack.id;\n }\n\n get streamType(): KnownMediaStream {\n return this._streamType;\n }\n\n get mediaStream(): MediaStream {\n return this.dedicatedStream;\n }\n\n get mediaTrack(): MediaStreamTrack {\n return this._mediaStreamTrack;\n }\n\n get streamKind(): KnownMediaStreamKind {\n return this._mediaStreamTrack.kind as any;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/TechseeMediaStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAGxE,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;gBAElC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;IAQ/F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAED,IAAI,UAAU,IAAI,oBAAoB,CAErC;CACJ","file":"TechseeMediaStream.d.ts","sourcesContent":["import {KnownMediaStream, KnownMediaStreamKind} from './MediaConstants';\n\n\nexport class TechseeMediaStream {\n private readonly _mediaStreamTrack: MediaStreamTrack;\n private readonly _streamType: KnownMediaStream;\n private readonly _isRemote: boolean;\n private readonly dedicatedStream: MediaStream;\n\n constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n\n get isRemote(): boolean {\n return this._isRemote;\n }\n\n get streamId(): string {\n return this._mediaStreamTrack.id;\n }\n\n get streamType(): KnownMediaStream {\n return this._streamType;\n }\n\n get mediaStream(): MediaStream {\n return this.dedicatedStream;\n }\n\n get mediaTrack(): MediaStreamTrack {\n return this._mediaStreamTrack;\n }\n\n get streamKind(): KnownMediaStreamKind {\n return this._mediaStreamTrack.kind as any;\n }\n}\n"]}
@@ -1,58 +1,64 @@
1
1
  "use strict";
2
2
 
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- var TechseeMediaStream = /** @class */function () {
5
- function TechseeMediaStream(mediaStreamTrack, streamType, isRemote) {
6
- this._isRemote = isRemote;
7
- this._streamType = streamType;
8
- this._mediaStreamTrack = mediaStreamTrack;
9
- this.dedicatedStream = new MediaStream([mediaStreamTrack]);
10
- }
11
- Object.defineProperty(TechseeMediaStream.prototype, "isRemote", {
12
- get: function get() {
13
- return this._isRemote;
14
- },
15
- enumerable: true,
16
- configurable: true
17
- });
18
- Object.defineProperty(TechseeMediaStream.prototype, "streamId", {
19
- get: function get() {
20
- return this._mediaStreamTrack.id;
21
- },
22
- enumerable: true,
23
- configurable: true
24
- });
25
- Object.defineProperty(TechseeMediaStream.prototype, "streamType", {
26
- get: function get() {
27
- return this._streamType;
28
- },
29
- enumerable: true,
30
- configurable: true
31
- });
32
- Object.defineProperty(TechseeMediaStream.prototype, "mediaStream", {
33
- get: function get() {
34
- return this.dedicatedStream;
35
- },
36
- enumerable: true,
37
- configurable: true
38
- });
39
- Object.defineProperty(TechseeMediaStream.prototype, "mediaTrack", {
40
- get: function get() {
41
- return this._mediaStreamTrack;
42
- },
43
- enumerable: true,
44
- configurable: true
45
- });
46
- Object.defineProperty(TechseeMediaStream.prototype, "streamKind", {
47
- get: function get() {
48
- return this._mediaStreamTrack.kind;
49
- },
50
- enumerable: true,
51
- configurable: true
52
- });
53
- return TechseeMediaStream;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TechseeMediaStream = void 0;
7
+
8
+ var TechseeMediaStream =
9
+ /** @class */
10
+ function () {
11
+ function TechseeMediaStream(mediaStreamTrack, streamType, isRemote) {
12
+ this._isRemote = isRemote;
13
+ this._streamType = streamType;
14
+ this._mediaStreamTrack = mediaStreamTrack;
15
+ this.dedicatedStream = new MediaStream([mediaStreamTrack]);
16
+ }
17
+
18
+ Object.defineProperty(TechseeMediaStream.prototype, "isRemote", {
19
+ get: function get() {
20
+ return this._isRemote;
21
+ },
22
+ enumerable: false,
23
+ configurable: true
24
+ });
25
+ Object.defineProperty(TechseeMediaStream.prototype, "streamId", {
26
+ get: function get() {
27
+ return this._mediaStreamTrack.id;
28
+ },
29
+ enumerable: false,
30
+ configurable: true
31
+ });
32
+ Object.defineProperty(TechseeMediaStream.prototype, "streamType", {
33
+ get: function get() {
34
+ return this._streamType;
35
+ },
36
+ enumerable: false,
37
+ configurable: true
38
+ });
39
+ Object.defineProperty(TechseeMediaStream.prototype, "mediaStream", {
40
+ get: function get() {
41
+ return this.dedicatedStream;
42
+ },
43
+ enumerable: false,
44
+ configurable: true
45
+ });
46
+ Object.defineProperty(TechseeMediaStream.prototype, "mediaTrack", {
47
+ get: function get() {
48
+ return this._mediaStreamTrack;
49
+ },
50
+ enumerable: false,
51
+ configurable: true
52
+ });
53
+ Object.defineProperty(TechseeMediaStream.prototype, "streamKind", {
54
+ get: function get() {
55
+ return this._mediaStreamTrack.kind;
56
+ },
57
+ enumerable: false,
58
+ configurable: true
59
+ });
60
+ return TechseeMediaStream;
54
61
  }();
55
- exports.TechseeMediaStream = TechseeMediaStream;
56
62
 
57
- //# sourceMappingURL=TechseeMediaStream.js.map
63
+ exports.TechseeMediaStream = TechseeMediaStream;
58
64
  //# sourceMappingURL=TechseeMediaStream.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["TechseeMediaStream.js","../src/TechseeMediaStream.ts"],"names":["Object","defineProperty","exports","value","TechseeMediaStream","mediaStreamTrack","streamType","isRemote","_isRemote","_streamType","_mediaStreamTrack","dedicatedStream","MediaStream","prototype","get","enumerable","configurable","id","kind"],"mappings":"AAAA;;AACAA,OAAOC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C,EAAEC,OAAO,IAAT,EAA7C;ACEA,IAAAC,qBAAA,aAAA,YAAA;AAMI,aAAAA,kBAAA,CAAYC,gBAAZ,EAAgDC,UAAhD,EAA8EC,QAA9E,EAA+F;AAC3F,aAAKC,SAAL,GAAiBD,QAAjB;AACA,aAAKE,WAAL,GAAmBH,UAAnB;AACA,aAAKI,iBAAL,GAAyBL,gBAAzB;AAEA,aAAKM,eAAL,GAAuB,IAAIC,WAAJ,CAAgB,CAACP,gBAAD,CAAhB,CAAvB;AACH;AAEDL,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,UAAJ,EAAY;ADPRC,aCOJ,eAAA;AACI,mBAAO,KAAKN,SAAZ;AACH,SAFW;ADJRO,oBAAY,ICIJ;ADHRC,sBAAc;ACGN,KAAZ;AAIAhB,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,UAAJ,EAAY;ADJRC,aCIJ,eAAA;AACI,mBAAO,KAAKJ,iBAAL,CAAuBO,EAA9B;AACH,SAFW;ADDRF,oBAAY,ICCJ;ADARC,sBAAc;ACAN,KAAZ;AAIAhB,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,YAAJ,EAAc;ADDVC,aCCJ,eAAA;AACI,mBAAO,KAAKL,WAAZ;AACH,SAFa;ADEVM,oBAAY,ICFF;ADGVC,sBAAc;ACHJ,KAAd;AAIAhB,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,aAAJ,EAAe;ADEXC,aCFJ,eAAA;AACI,mBAAO,KAAKH,eAAZ;AACH,SAFc;ADKXI,oBAAY,ICLD;ADMXC,sBAAc;ACNH,KAAf;AAIAhB,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,YAAJ,EAAc;ADKVC,aCLJ,eAAA;AACI,mBAAO,KAAKJ,iBAAZ;AACH,SAFa;ADQVK,oBAAY,ICRF;ADSVC,sBAAc;ACTJ,KAAd;AAIAhB,WAAAC,cAAA,CAAIG,mBAAAS,SAAJ,EAAI,YAAJ,EAAc;ADQVC,aCRJ,eAAA;AACI,mBAAO,KAAKJ,iBAAL,CAAuBQ,IAA9B;AACH,SAFa;ADWVH,oBAAY,ICXF;ADYVC,sBAAc;ACZJ,KAAd;AAGJ,WAAAZ,kBAAA;AArCA,CAAA,EAAA;AAAaF,QAAAE,kBAAA,GAAAA,kBAAA;;ADoDb","file":"TechseeMediaStream.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TechseeMediaStream = /** @class */ (function () {\n function TechseeMediaStream(mediaStreamTrack, streamType, isRemote) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n Object.defineProperty(TechseeMediaStream.prototype, \"isRemote\", {\n get: function () {\n return this._isRemote;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamId\", {\n get: function () {\n return this._mediaStreamTrack.id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamType\", {\n get: function () {\n return this._streamType;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaStream\", {\n get: function () {\n return this.dedicatedStream;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaTrack\", {\n get: function () {\n return this._mediaStreamTrack;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamKind\", {\n get: function () {\n return this._mediaStreamTrack.kind;\n },\n enumerable: true,\n configurable: true\n });\n return TechseeMediaStream;\n}());\nexports.TechseeMediaStream = TechseeMediaStream;\n\n//# sourceMappingURL=TechseeMediaStream.js.map\n","import {KnownMediaStream, KnownMediaStreamKind} from './MediaConstants';\n\n\nexport class TechseeMediaStream {\n private readonly _mediaStreamTrack: MediaStreamTrack;\n private readonly _streamType: KnownMediaStream;\n private readonly _isRemote: boolean;\n private readonly dedicatedStream: MediaStream;\n\n constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n\n get isRemote(): boolean {\n return this._isRemote;\n }\n\n get streamId(): string {\n return this._mediaStreamTrack.id;\n }\n\n get streamType(): KnownMediaStream {\n return this._streamType;\n }\n\n get mediaStream(): MediaStream {\n return this.dedicatedStream;\n }\n\n get mediaTrack(): MediaStreamTrack {\n return this._mediaStreamTrack;\n }\n\n get streamKind(): KnownMediaStreamKind {\n return this._mediaStreamTrack.kind as any;\n }\n}\n"]}
1
+ {"version":3,"sources":["TechseeMediaStream.js","../src/TechseeMediaStream.ts"],"names":["Object","defineProperty","exports","value","TechseeMediaStream","mediaStreamTrack","streamType","isRemote","_isRemote","_streamType","_mediaStreamTrack","dedicatedStream","MediaStream","prototype","get","enumerable","configurable","id","kind"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,kBAAR,GAA6B,KAAK,CAAlC;;ACCA,IAAAA,kBAAA;AAAA;AAAA,YAAA;AAMI,WAAAA,kBAAA,CAAYC,gBAAZ,EAAgDC,UAAhD,EAA8EC,QAA9E,EAA+F;AAC3F,SAAKC,SAAL,GAAiBD,QAAjB;AACA,SAAKE,WAAL,GAAmBH,UAAnB;AACA,SAAKI,iBAAL,GAAyBL,gBAAzB;AAEA,SAAKM,eAAL,GAAuB,IAAIC,WAAJ,CAAgB,CAACP,gBAAD,CAAhB,CAAvB;AACH;;AAEDL,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,UAAJ,EAAY;ADNRC,IAAAA,GAAG,ECMP,eAAA;AACI,aAAO,KAAKN,SAAZ;AACH,KAFW;ADHRO,IAAAA,UAAU,EAAE,KCGJ;ADFRC,IAAAA,YAAY,EAAE;ACEN,GAAZ;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,UAAJ,EAAY;ADHRC,IAAAA,GAAG,ECGP,eAAA;AACI,aAAO,KAAKJ,iBAAL,CAAuBO,EAA9B;AACH,KAFW;ADARF,IAAAA,UAAU,EAAE,KCAJ;ADCRC,IAAAA,YAAY,EAAE;ACDN,GAAZ;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADAVC,IAAAA,GAAG,ECAP,eAAA;AACI,aAAO,KAAKL,WAAZ;AACH,KAFa;ADGVM,IAAAA,UAAU,EAAE,KCHF;ADIVC,IAAAA,YAAY,EAAE;ACJJ,GAAd;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,aAAJ,EAAe;ADGXC,IAAAA,GAAG,ECHP,eAAA;AACI,aAAO,KAAKH,eAAZ;AACH,KAFc;ADMXI,IAAAA,UAAU,EAAE,KCND;ADOXC,IAAAA,YAAY,EAAE;ACPH,GAAf;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADMVC,IAAAA,GAAG,ECNP,eAAA;AACI,aAAO,KAAKJ,iBAAZ;AACH,KAFa;ADSVK,IAAAA,UAAU,EAAE,KCTF;ADUVC,IAAAA,YAAY,EAAE;ACVJ,GAAd;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADSVC,IAAAA,GAAG,ECTP,eAAA;AACI,aAAO,KAAKJ,iBAAL,CAAuBQ,IAA9B;AACH,KAFa;ADYVH,IAAAA,UAAU,EAAE,KCZF;ADaVC,IAAAA,YAAY,EAAE;ACbJ,GAAd;AAGJ,SAAAZ,kBAAA;AArCA,CAAA,EAAA;;AAAaF,OAAA,CAAAE,kBAAA,GAAAA,kBAAA","file":"TechseeMediaStream.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TechseeMediaStream = void 0;\nvar TechseeMediaStream = /** @class */ (function () {\n function TechseeMediaStream(mediaStreamTrack, streamType, isRemote) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n Object.defineProperty(TechseeMediaStream.prototype, \"isRemote\", {\n get: function () {\n return this._isRemote;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamId\", {\n get: function () {\n return this._mediaStreamTrack.id;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamType\", {\n get: function () {\n return this._streamType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaStream\", {\n get: function () {\n return this.dedicatedStream;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaTrack\", {\n get: function () {\n return this._mediaStreamTrack;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamKind\", {\n get: function () {\n return this._mediaStreamTrack.kind;\n },\n enumerable: false,\n configurable: true\n });\n return TechseeMediaStream;\n}());\nexports.TechseeMediaStream = TechseeMediaStream;\n\n//# sourceMappingURL=TechseeMediaStream.js.map\n","import {KnownMediaStream, KnownMediaStreamKind} from './MediaConstants';\n\n\nexport class TechseeMediaStream {\n private readonly _mediaStreamTrack: MediaStreamTrack;\n private readonly _streamType: KnownMediaStream;\n private readonly _isRemote: boolean;\n private readonly dedicatedStream: MediaStream;\n\n constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n\n get isRemote(): boolean {\n return this._isRemote;\n }\n\n get streamId(): string {\n return this._mediaStreamTrack.id;\n }\n\n get streamType(): KnownMediaStream {\n return this._streamType;\n }\n\n get mediaStream(): MediaStream {\n return this.dedicatedStream;\n }\n\n get mediaTrack(): MediaStreamTrack {\n return this._mediaStreamTrack;\n }\n\n get streamKind(): KnownMediaStreamKind {\n return this._mediaStreamTrack.kind as any;\n }\n}\n"]}