vani-meeting-client 0.7.3 → 0.7.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.
- package/lib/MeetingHandler.js +4 -15
- package/lib/model/Event.d.ts +2 -2
- package/lib/model/MeetingStartRequest.d.ts +1 -0
- package/lib/model/MeetingStartRequest.js +1 -0
- package/lib/user-media-handler/UserMediaHandler.js +12 -3
- package/lib/utility/DynamicLibHelper.d.ts +1 -2
- package/lib/utility/DynamicLibHelper.js +12 -10
- package/lib/video-call-handler/SFUHandler.js +4 -5
- package/package.json +1 -1
package/lib/MeetingHandler.js
CHANGED
|
@@ -61,7 +61,7 @@ var MeetingHandler = /** @class */ (function () {
|
|
|
61
61
|
MeetingHandler.prototype.init = function () {
|
|
62
62
|
var _a, _b, _c;
|
|
63
63
|
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
-
var _d, _e
|
|
64
|
+
var _d, _e;
|
|
65
65
|
return __generator(this, function (_f) {
|
|
66
66
|
switch (_f.label) {
|
|
67
67
|
case 0:
|
|
@@ -79,26 +79,15 @@ var MeetingHandler = /** @class */ (function () {
|
|
|
79
79
|
this.reactNativeWebrtcPlugin.registerGlobals();
|
|
80
80
|
_f.label = 2;
|
|
81
81
|
case 2:
|
|
82
|
-
_f.trys.push([2, 5, , 6]);
|
|
83
82
|
if (!!this.videoCallHandler) return [3 /*break*/, 4];
|
|
84
83
|
_e = this;
|
|
85
84
|
return [4 /*yield*/, new DynamicLibHelper().getVideoCallClassHandler((_c = this.meetingStartRequest) === null || _c === void 0 ? void 0 : _c.meetingType, this.meetingStartRequest, this.communicationHandler)];
|
|
86
85
|
case 3:
|
|
87
86
|
_e.videoCallHandler = _f.sent();
|
|
88
87
|
_f.label = 4;
|
|
89
|
-
case 4:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
console.log("his.videoCallHandler error", err_1);
|
|
93
|
-
return [3 /*break*/, 6];
|
|
94
|
-
case 6:
|
|
95
|
-
try {
|
|
96
|
-
if (!this.websocketCallHandler) {
|
|
97
|
-
this.websocketCallHandler = new WebsocketHandler(this.meetingStartRequest, this.communicationHandler);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
console.log("his.websocketCallHandler error", err);
|
|
88
|
+
case 4:
|
|
89
|
+
if (!this.websocketCallHandler) {
|
|
90
|
+
this.websocketCallHandler = new WebsocketHandler(this.meetingStartRequest, this.communicationHandler);
|
|
102
91
|
}
|
|
103
92
|
// this.handleGA();
|
|
104
93
|
this.emitMessageToSource(VaniEvent.OnInitDone, {});
|
package/lib/model/Event.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MessagePayload } from "..";
|
|
2
2
|
import { Participant } from "./Participant";
|
|
3
|
-
import { Track } from "./Track";
|
|
3
|
+
import { Track, TrackKind } from "./Track";
|
|
4
4
|
export declare enum VaniEvent {
|
|
5
5
|
OnInitDone = "onInitDone",
|
|
6
6
|
OnSocketError = "onSocketError",
|
|
@@ -39,7 +39,7 @@ interface VaniConnectionEvents {
|
|
|
39
39
|
[VaniEvent.OnConnected]: () => any;
|
|
40
40
|
[VaniEvent.OnConnectionBack]: () => any;
|
|
41
41
|
[VaniEvent.OnPermissionError]: (error: DOMException) => any;
|
|
42
|
-
[VaniEvent.OnPermissionApproved]: () => any;
|
|
42
|
+
[VaniEvent.OnPermissionApproved]: (forTrackKinds: TrackKind[]) => any;
|
|
43
43
|
[VaniEvent.OnDevicesChanged]: () => any;
|
|
44
44
|
[VaniEvent.OnUserJoined]: (participant: Participant) => any;
|
|
45
45
|
[VaniEvent.OnAudioVideoStatusUpdated]: (participant: Participant) => any;
|
|
@@ -34,6 +34,7 @@ export declare class MeetingStartRequest {
|
|
|
34
34
|
defaultAudioBlocked: boolean;
|
|
35
35
|
defaultVideoBlocked: boolean;
|
|
36
36
|
defaultScreenShareBlocked: boolean;
|
|
37
|
+
mediasoupDeviceHandlerName?: String;
|
|
37
38
|
defaultCameraFacingMode: CameraFacingMode;
|
|
38
39
|
simulcastEncodings: RTCRtpEncodingParameters[];
|
|
39
40
|
isDataChannelRequired: boolean;
|
|
@@ -29,6 +29,7 @@ var MeetingStartRequest = /** @class */ (function () {
|
|
|
29
29
|
this.defaultAudioBlocked = false;
|
|
30
30
|
this.defaultVideoBlocked = false;
|
|
31
31
|
this.defaultScreenShareBlocked = false;
|
|
32
|
+
this.mediasoupDeviceHandlerName = undefined;
|
|
32
33
|
this.defaultCameraFacingMode = CameraFacingMode.Front;
|
|
33
34
|
this.simulcastEncodings = [{ maxBitrate: 40000, scaleResolutionDownBy: 2.0 }, { maxBitrate: 620000, scaleResolutionDownBy: 1.0 },];
|
|
34
35
|
this.isDataChannelRequired = false;
|
|
@@ -253,12 +253,13 @@ var UserMediaHandler = /** @class */ (function (_super) {
|
|
|
253
253
|
UserMediaHandler.prototype.onStreamGot = function (stream, isForAudio, isForVideo, shouldAddTrackImmediately) {
|
|
254
254
|
var _a, _b, _c, _d, _e;
|
|
255
255
|
return __awaiter(this, void 0, void 0, function () {
|
|
256
|
-
var data, audioPause, data, audioPause;
|
|
256
|
+
var permissionApprovedFor, data, audioPause, data, audioPause;
|
|
257
257
|
return __generator(this, function (_f) {
|
|
258
258
|
if (!stream || (isForAudio === false && isForVideo === false)) {
|
|
259
259
|
this.isVideoAudioFetchInProgress = false;
|
|
260
260
|
return [2 /*return*/];
|
|
261
261
|
}
|
|
262
|
+
permissionApprovedFor = [];
|
|
262
263
|
if (isForAudio && stream.getAudioTracks().length > 0) {
|
|
263
264
|
this.onTrack(stream.getAudioTracks()[0], TrackKind.Audio, shouldAddTrackImmediately);
|
|
264
265
|
// removeAndStreamInLocalStream(stream.getAudioTracks()[0])
|
|
@@ -279,6 +280,7 @@ var UserMediaHandler = /** @class */ (function (_super) {
|
|
|
279
280
|
&& stream.getAudioTracks()[0].getConstraints() && stream.getAudioTracks()[0].getConstraints().deviceId) {
|
|
280
281
|
this.meetingStartRequest.audioInDevice = (_b = stream.getAudioTracks()[0].getConstraints().deviceId) === null || _b === void 0 ? void 0 : _b.toString();
|
|
281
282
|
}
|
|
283
|
+
permissionApprovedFor.push(TrackKind.Audio);
|
|
282
284
|
}
|
|
283
285
|
if (isForVideo && stream.getVideoTracks().length > 0) {
|
|
284
286
|
this.onTrack(stream.getVideoTracks()[0], TrackKind.Video, shouldAddTrackImmediately);
|
|
@@ -300,24 +302,31 @@ var UserMediaHandler = /** @class */ (function (_super) {
|
|
|
300
302
|
&& stream.getVideoTracks()[0].getConstraints() && stream.getVideoTracks()[0].getConstraints().deviceId) {
|
|
301
303
|
this.meetingStartRequest.cameraDevice = (_d = stream.getVideoTracks()[0].getConstraints().deviceId) === null || _d === void 0 ? void 0 : _d.toString();
|
|
302
304
|
}
|
|
305
|
+
permissionApprovedFor.push(TrackKind.Video);
|
|
303
306
|
}
|
|
304
307
|
this.isVideoAudioFetchInProgress = false;
|
|
305
|
-
(_e = this.communicationHandler) === null || _e === void 0 ? void 0 : _e.emitMessageToSource(VaniEvent.OnPermissionApproved,
|
|
308
|
+
(_e = this.communicationHandler) === null || _e === void 0 ? void 0 : _e.emitMessageToSource(VaniEvent.OnPermissionApproved, permissionApprovedFor);
|
|
306
309
|
this.registerForDeviceChange();
|
|
307
310
|
return [2 /*return*/];
|
|
308
311
|
});
|
|
309
312
|
});
|
|
310
313
|
};
|
|
311
314
|
UserMediaHandler.prototype.onScreenShareStreamGot = function (stream, shouldAddTrackImmediately) {
|
|
315
|
+
var _a;
|
|
312
316
|
return __awaiter(this, void 0, void 0, function () {
|
|
313
|
-
|
|
317
|
+
var permissionApprovedFor;
|
|
318
|
+
return __generator(this, function (_b) {
|
|
319
|
+
permissionApprovedFor = [];
|
|
314
320
|
if (stream.getVideoTracks().length > 0) {
|
|
315
321
|
this.onTrack(stream.getVideoTracks()[0], TrackKind.ScreenshareVideo, shouldAddTrackImmediately);
|
|
322
|
+
permissionApprovedFor.push(TrackKind.ScreenshareVideo);
|
|
316
323
|
}
|
|
317
324
|
if (stream.getAudioTracks().length > 0) {
|
|
318
325
|
this.onTrack(stream.getAudioTracks()[0], TrackKind.ScreenshareAudio, shouldAddTrackImmediately);
|
|
326
|
+
permissionApprovedFor.push(TrackKind.ScreenshareAudio);
|
|
319
327
|
}
|
|
320
328
|
this.isScreenShareFetchInProgress = false;
|
|
329
|
+
(_a = this.communicationHandler) === null || _a === void 0 ? void 0 : _a.emitMessageToSource(VaniEvent.OnPermissionApproved, permissionApprovedFor);
|
|
321
330
|
return [2 /*return*/];
|
|
322
331
|
});
|
|
323
332
|
});
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { MeetingStartRequest, MeetingType } from '..';
|
|
2
2
|
import { CommunicationHandler } from '../inter-communication-handler/CommunicationHandler';
|
|
3
|
-
import { SFUHandler } from '../video-call-handler/SFUHandler';
|
|
4
3
|
export declare class DynamicLibHelper {
|
|
5
4
|
getReactNativeWebrtcPlugin(meetingStartRequest: MeetingStartRequest): Promise<any>;
|
|
6
|
-
getVideoCallClassHandler(meetingType: MeetingType, meetingStartRequest: MeetingStartRequest, _communicationHandler: CommunicationHandler): Promise<SFUHandler | import("../video-call-handler/WebrtcHandler").WebrtcHandler | undefined>;
|
|
5
|
+
getVideoCallClassHandler(meetingType: MeetingType, meetingStartRequest: MeetingStartRequest, _communicationHandler: CommunicationHandler): Promise<import("../video-call-handler/SFUHandler").SFUHandler | import("../video-call-handler/WebrtcHandler").WebrtcHandler | undefined>;
|
|
7
6
|
getMediaDevicesVariable(meetingStartRequest: MeetingStartRequest): any;
|
|
8
7
|
getMediaStreamVariable(meetingStartRequest: MeetingStartRequest): any;
|
|
9
8
|
}
|
|
@@ -36,7 +36,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
};
|
|
37
37
|
import { MeetingType } from '..';
|
|
38
38
|
import * as log from 'loglevel';
|
|
39
|
-
import { SFUHandler } from '../video-call-handler/SFUHandler';
|
|
40
39
|
var DynamicLibHelper = /** @class */ (function () {
|
|
41
40
|
function DynamicLibHelper() {
|
|
42
41
|
}
|
|
@@ -62,18 +61,21 @@ var DynamicLibHelper = /** @class */ (function () {
|
|
|
62
61
|
return __generator(this, function (_a) {
|
|
63
62
|
switch (_a.label) {
|
|
64
63
|
case 0:
|
|
65
|
-
if (meetingType === MeetingType.SFU)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
if (!(meetingType === MeetingType.SFU)) return [3 /*break*/, 2];
|
|
65
|
+
return [4 /*yield*/, import("../video-call-handler/SFUHandler")];
|
|
66
|
+
case 1:
|
|
67
|
+
baseVideoCallHandler = _a.sent();
|
|
68
|
+
if (baseVideoCallHandler) {
|
|
69
|
+
return [2 /*return*/, new baseVideoCallHandler.SFUHandler(meetingStartRequest, _communicationHandler)];
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
_a.label = 2;
|
|
72
|
+
case 2:
|
|
73
|
+
if (!(meetingType === MeetingType.WEBRTC)) return [3 /*break*/, 4];
|
|
72
74
|
baseVideoCallHandler = import("../video-call-handler/WebrtcHandler");
|
|
73
|
-
if (!baseVideoCallHandler) return [3 /*break*/,
|
|
75
|
+
if (!baseVideoCallHandler) return [3 /*break*/, 4];
|
|
74
76
|
return [4 /*yield*/, baseVideoCallHandler];
|
|
75
|
-
case
|
|
76
|
-
case
|
|
77
|
+
case 3: return [2 /*return*/, new (_a.sent()).WebrtcHandler(meetingStartRequest, _communicationHandler)];
|
|
78
|
+
case 4: return [2 /*return*/, undefined];
|
|
77
79
|
}
|
|
78
80
|
});
|
|
79
81
|
});
|
|
@@ -79,16 +79,15 @@ var SFUHandler = /** @class */ (function (_super) {
|
|
|
79
79
|
_this.dataConsumer = [];
|
|
80
80
|
var handlerName = detectDevice();
|
|
81
81
|
if (handlerName) {
|
|
82
|
+
_this.device = new Device();
|
|
82
83
|
console.log("detected handler: %s", handlerName);
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
86
|
+
if (_this.meetingStartRequest && _this.meetingStartRequest.mediasoupDeviceHandlerName) {
|
|
87
|
+
_this.device = new Device({ handlerName: _this.meetingStartRequest.mediasoupDeviceHandlerName });
|
|
88
|
+
}
|
|
85
89
|
console.warn("no suitable handler found for current browser/device");
|
|
86
90
|
}
|
|
87
|
-
try {
|
|
88
|
-
_this.device = new Device();
|
|
89
|
-
}
|
|
90
|
-
catch (err) {
|
|
91
|
-
}
|
|
92
91
|
return _this;
|
|
93
92
|
}
|
|
94
93
|
SFUHandler.prototype.onReconnect = function () {
|