Преглед изворни кода

feat(TS) Migrate `modules\RTC\JitsiLocalTrack.ts` to TS (#2840)

* added interfaces and initialise TS def

* add proper typings avoiding any

* fixing linting errors

---------

Co-authored-by: naman9271 <naman9271@gmail.com>
master
Naman Jain пре 3 месеци
родитељ
комит
d0dbe6067e
No account linked to committer's email address
3 измењених фајлова са 132 додато и 64 уклоњено
  1. 2
    2
      JitsiConference.js
  2. 129
    61
      modules/RTC/JitsiLocalTrack.ts
  3. 1
    1
      modules/RTC/JitsiTrack.js

+ 2
- 2
JitsiConference.js Прегледај датотеку

@@ -818,7 +818,7 @@ export default class JitsiConference {
818 818
    *
819 819
    * @param {JitsiLocalTrack} localtrack - The track associated with the local source signaled to the bridge.
820 820
    * @returns {void}
821
-   * @private
821
+   * @public
822 822
    */
823 823
     _sendBridgeVideoTypeMessage(localtrack) {
824 824
         let videoType = !localtrack || localtrack.isMuted() ? BridgeVideoType.NONE : localtrack.getVideoType();
@@ -1436,7 +1436,7 @@ export default class JitsiConference {
1436 1436
    * @param {JitsiLocalTrack} localTrack - The local track.
1437 1437
    * @param {boolean} isMuted - Whether the track is muted.
1438 1438
    * @return {boolean} <tt>true</tt> when presence was changed, <tt>false</tt> otherwise.
1439
-   * @private
1439
+   * @public
1440 1440
    */
1441 1441
     _setTrackMuteStatus(mediaType, localTrack, isMuted) {
1442 1442
         let presenceChanged = false;

modules/RTC/JitsiLocalTrack.js → modules/RTC/JitsiLocalTrack.ts Прегледај датотеку

@@ -1,5 +1,6 @@
1 1
 import { getLogger } from '@jitsi/logger';
2 2
 
3
+import JitsiConference from '../../JitsiConference';
3 4
 import JitsiTrackError from '../../JitsiTrackError';
4 5
 import {
5 6
     TRACK_IS_DISPOSED,
@@ -25,14 +26,80 @@ import { isValidNumber } from '../util/MathUtil';
25 26
 
26 27
 import JitsiTrack from './JitsiTrack';
27 28
 import RTCUtils from './RTCUtils';
29
+import TraceablePeerConnection from './TraceablePeerConnection';
28 30
 
29 31
 const logger = getLogger('modules/RTC/JitsiLocalTrack');
30 32
 
33
+export interface IStreamEffect {
34
+    isEnabled: (track: JitsiLocalTrack) => boolean;
35
+    isMuted?: () => boolean;
36
+    setMuted?: (muted: boolean) => void;
37
+    startEffect: (stream: MediaStream) => MediaStream;
38
+    stopEffect: () => void;
39
+}
40
+
41
+export interface ITrackMetadata {
42
+    displaySurface?: string;
43
+    timestamp: number;
44
+}
45
+
46
+export interface ITrackConstraints {
47
+    [key: string]: any;
48
+    height?: any;
49
+    width?: any;
50
+}
51
+
52
+export interface ITrackInfo {
53
+    constraints: ITrackConstraints;
54
+    deviceId: string;
55
+    effects?: IStreamEffect[];
56
+    facingMode?: CameraFacingMode;
57
+    mediaType: MediaType;
58
+    rtcId: number;
59
+    sourceId?: string;
60
+    sourceType?: string;
61
+    stream: MediaStream;
62
+    track: MediaStreamTrack;
63
+    videoType?: VideoType;
64
+}
65
+
66
+export interface IStreamInfo {
67
+    stream: MediaStream;
68
+    track: MediaStreamTrack;
69
+    videoType?: VideoType;
70
+}
71
+
31 72
 /**
32 73
  * Represents a single media track(either audio or video).
33 74
  * One <tt>JitsiLocalTrack</tt> corresponds to one WebRTC MediaStreamTrack.
34 75
  */
35 76
 export default class JitsiLocalTrack extends JitsiTrack {
77
+    private _setEffectInProgress: boolean;
78
+    private _constraints: ITrackConstraints;
79
+    private _prevSetMuted: Promise<void>;
80
+    private _facingMode?: CameraFacingMode;
81
+    private _trackEnded: boolean;
82
+    private _hasSentData: boolean;
83
+    private _testDataSent: boolean;
84
+    private _realDeviceId?: string;
85
+    private _sourceName?: string;
86
+    private _ssrc?: number;
87
+    private _trackMutedTS: number;
88
+    private _onDeviceListWillChange: (devices: MediaDeviceInfo[]) => void;
89
+    private _onAudioOutputDeviceChanged?: () => void;
90
+    private _streamEffect?: IStreamEffect;
91
+    private _originalStream?: MediaStream;
92
+    private _stopStreamInProgress: boolean;
93
+    private _effectEnabled?: boolean;
94
+    public metadata: ITrackMetadata;
95
+    public rtcId: number;
96
+    public sourceId?: string;
97
+    public sourceType?: string;
98
+    public deviceId: string;
99
+    public resolution?: number;
100
+    public maxEnabledResolution?: number;
101
+    public conference: JitsiConference | null;
102
+
36 103
     /**
37 104
      * Constructs a new JitsiLocalTrack instance.
38 105
      *
@@ -63,7 +130,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
63 130
         track,
64 131
         videoType,
65 132
         effects = []
66
-    }) {
133
+    }: ITrackInfo) {
67 134
         super(
68 135
             /* conference */ null,
69 136
             stream,
@@ -189,7 +256,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
189 256
 
190 257
         this._trackMutedTS = 0;
191 258
 
192
-        this._onDeviceListWillChange = devices => {
259
+        this._onDeviceListWillChange = (devices: MediaDeviceInfo[]) => {
193 260
             const oldRealDeviceId = this._realDeviceId;
194 261
 
195 262
             this._setRealDeviceIdFromDeviceList(devices);
@@ -235,7 +302,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
235 302
      * @private
236 303
      * @returns {Promise}
237 304
      */
238
-    _addStreamToConferenceAsUnmute() {
305
+    private _addStreamToConferenceAsUnmute(): Promise<void> {
239 306
         if (!this.conference) {
240 307
             return Promise.resolve();
241 308
         }
@@ -248,7 +315,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
248 315
         // are changed. This would help to separate XMPP from the RTC module.
249 316
         return new Promise((resolve, reject) => {
250 317
             this.conference._addLocalTrackToPc(this)
251
-                .then(resolve, error => reject(new Error(error)));
318
+                .then(resolve, (error: any) => reject(new Error(error)));
252 319
         });
253 320
     }
254 321
 
@@ -258,7 +325,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
258 325
      * @private
259 326
      * @returns {void}
260 327
      */
261
-    _fireNoDataFromSourceEvent() {
328
+    private _fireNoDataFromSourceEvent(): void {
262 329
         const value = !this.isReceivingData();
263 330
 
264 331
         this.emit(NO_DATA_FROM_SOURCE, value);
@@ -275,7 +342,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
275 342
      * @private
276 343
      * @returns {void}
277 344
      */
278
-    _initNoDataFromSourceHandlers() {
345
+    private _initNoDataFromSourceHandlers(): void {
279 346
         if (!this._isNoDataFromSourceEventsEnabled()) {
280 347
             return;
281 348
         }
@@ -311,7 +378,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
311 378
      * @private
312 379
      * @returns {boolean} - True if no data from source events are enabled for this JitsiLocalTrack and false otherwise.
313 380
      */
314
-    _isNoDataFromSourceEventsEnabled() {
381
+    private _isNoDataFromSourceEventsEnabled(): boolean {
315 382
         // Disable the events for screen sharing.
316 383
         return !this.isVideoTrack() || this.videoType !== VideoType.DESKTOP;
317 384
     }
@@ -325,7 +392,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
325 392
      * @private
326 393
      * @returns {Promise}
327 394
      */
328
-    _queueSetMuted(muted) {
395
+    private _queueSetMuted(muted: boolean): Promise<void> {
329 396
         const setMuted = this._setMuted.bind(this, muted);
330 397
 
331 398
         this._prevSetMuted = this._prevSetMuted.then(setMuted, setMuted);
@@ -341,7 +408,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
341 408
      * @private
342 409
      * @returns {Promise}
343 410
      */
344
-    _removeStreamFromConferenceAsMute(successCallback, errorCallback) {
411
+    private _removeStreamFromConferenceAsMute(successCallback: () => void, errorCallback: (error: Error) => void): void {
345 412
         if (!this.conference) {
346 413
             successCallback();
347 414
 
@@ -349,7 +416,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
349 416
         }
350 417
         this.conference._removeLocalTrackFromPc(this).then(
351 418
             successCallback,
352
-            error => errorCallback(new Error(error)));
419
+            (error: any) => errorCallback(new Error(error)));
353 420
     }
354 421
 
355 422
     /**
@@ -359,7 +426,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
359 426
      * @private
360 427
      * @returns {void}
361 428
      */
362
-    _sendMuteStatus(mute) {
429
+    private _sendMuteStatus(mute: boolean): void {
363 430
         if (this.conference) {
364 431
             this.conference._setTrackMuteStatus(this.getType(), this, mute) && this.conference.room.sendPresence();
365 432
         }
@@ -372,7 +439,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
372 439
      * @private
373 440
      * @returns {Promise}
374 441
      */
375
-    _setMuted(muted) {
442
+    private _setMuted(muted: boolean): Promise<void> {
376 443
         if (this.isMuted() === muted && this.videoType !== VideoType.DESKTOP) {
377 444
             return Promise.resolve();
378 445
         }
@@ -381,7 +448,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
381 448
             return Promise.reject(new JitsiTrackError(TRACK_IS_DISPOSED));
382 449
         }
383 450
 
384
-        let promise = Promise.resolve();
451
+        let promise: Promise<void | IStreamInfo[]> = Promise.resolve();
385 452
 
386 453
         // A function that will print info about muted status transition
387 454
         const logMuteInfo = () => logger.info(`Mute ${this}: ${muted}`);
@@ -401,7 +468,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
401 468
             // If we have a stream effect that implements its own mute functionality, prioritize it before
402 469
             // normal mute e.g. the stream effect that implements system audio sharing has a custom
403 470
             // mute state in which if the user mutes, system audio still has to go through.
404
-            if (this._streamEffect && this._streamEffect.setMuted) {
471
+            if (this._streamEffect?.setMuted) {
405 472
                 this._streamEffect.setMuted(muted);
406 473
             } else if (this.track) {
407 474
                 this.track.enabled = !muted;
@@ -441,9 +508,9 @@ export default class JitsiLocalTrack extends JitsiTrack {
441 508
                 = RTCUtils.obtainAudioAndVideoPermissions({
442 509
 
443 510
                     ...streamOptions,
444
-                    constraints: { video: this._constraints } });
511
+                    constraints: { video: this._constraints } } as any) as Promise<IStreamInfo[]>;
445 512
 
446
-            promise = promise.then(streamsInfo => {
513
+            promise = promise.then((streamsInfo: IStreamInfo[]) => {
447 514
                 const streamInfo = streamsInfo.find(info => info.track.kind === this.getType());
448 515
 
449 516
                 if (streamInfo) {
@@ -479,7 +546,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
479 546
                 this._sendMuteStatus(muted);
480 547
 
481 548
                 // Send the videoType message to the bridge.
482
-                this.isVideoTrack() && this.conference && this.conference._sendBridgeVideoTypeMessage(this);
549
+                this.isVideoTrack() && this.conference?._sendBridgeVideoTypeMessage(this);
483 550
                 this.emit(TRACK_MUTE_CHANGED, this);
484 551
             });
485 552
     }
@@ -492,7 +559,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
492 559
      * @private
493 560
      * @returns {void}
494 561
      */
495
-    _setRealDeviceIdFromDeviceList(devices) {
562
+    private _setRealDeviceIdFromDeviceList(devices: MediaDeviceInfo[]): void {
496 563
         const track = this.getTrack();
497 564
         const kind = `${track.kind}input`;
498 565
 
@@ -515,17 +582,6 @@ export default class JitsiLocalTrack extends JitsiTrack {
515 582
         }
516 583
     }
517 584
 
518
-    /**
519
-     * Sets the stream property of JitsiLocalTrack object and sets all stored handlers to it.
520
-     *
521
-     * @param {MediaStream} stream - The new MediaStream.
522
-     * @private
523
-     * @returns {void}
524
-     */
525
-    _setStream(stream) {
526
-        super._setStream(stream);
527
-    }
528
-
529 585
     /**
530 586
      * Starts the effect process and returns the modified stream.
531 587
      *
@@ -533,7 +589,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
533 589
      * @private
534 590
      * @returns {void}
535 591
      */
536
-    _startStreamEffect(effect) {
592
+    private _startStreamEffect(effect: IStreamEffect): void {
537 593
         this._streamEffect = effect;
538 594
         this._originalStream = this.stream;
539 595
         this._setStream(this._streamEffect.startEffect(this._originalStream));
@@ -546,7 +602,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
546 602
      * @private
547 603
      * @returns {void}
548 604
      */
549
-    _stopStreamEffect() {
605
+    private _stopStreamEffect(): void {
550 606
         if (this._streamEffect) {
551 607
             this._streamEffect.stopEffect();
552 608
             this._setStream(this._originalStream);
@@ -566,7 +622,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
566 622
      *
567 623
      * @returns {void}
568 624
      */
569
-    _switchCamera() {
625
+    private _switchCamera(): void {
570 626
         if (this.isVideoTrack()
571 627
                 && this.videoType === VideoType.CAMERA
572 628
                 && typeof this.track._switchCamera === 'function') {
@@ -586,7 +642,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
586 642
      * @private
587 643
      * @returns {void}
588 644
      */
589
-    _switchStreamEffect(effect) {
645
+    private _switchStreamEffect(effect?: IStreamEffect): void {
590 646
         if (this._streamEffect) {
591 647
             this._stopStreamEffect();
592 648
             this._streamEffect = undefined;
@@ -596,6 +652,18 @@ export default class JitsiLocalTrack extends JitsiTrack {
596 652
         }
597 653
     }
598 654
 
655
+    /**
656
+     * Sets the stream property of JitsiLocalTrack object and sets all stored handlers to it.
657
+     *
658
+     * @param {MediaStream} stream - The new MediaStream.
659
+     * @private
660
+     * @returns {void}
661
+     */
662
+    protected _setStream(stream: MediaStream | null): void {
663
+        super._setStream(stream);
664
+    }
665
+
666
+
599 667
     /**
600 668
      * @inheritdoc
601 669
      *
@@ -604,7 +672,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
604 672
      * @extends JitsiTrack#dispose
605 673
      * @returns {Promise}
606 674
      */
607
-    async dispose() {
675
+    async dispose(): Promise<void> {
608 676
         if (this.disposed) {
609 677
             return;
610 678
         }
@@ -612,7 +680,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
612 680
         // Remove the effect instead of stopping it so that the original stream is restored
613 681
         // on both the local track and on the peerconnection.
614 682
         if (this._streamEffect) {
615
-            await this.setEffect();
683
+            await this.setEffect(undefined);
616 684
         }
617 685
 
618 686
         if (this.conference) {
@@ -639,7 +707,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
639 707
      *
640 708
      * @returns {CameraFacingMode|undefined}
641 709
      */
642
-    getCameraFacingMode() {
710
+    getCameraFacingMode(): CameraFacingMode | undefined {
643 711
         if (this.isVideoTrack() && this.videoType === VideoType.CAMERA) {
644 712
             // MediaStreamTrack#getSettings() is not implemented in many
645 713
             // browsers, so we need feature checking here. Progress on the
@@ -651,7 +719,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
651 719
             const trackSettings = this.track.getSettings?.();
652 720
 
653 721
             if (trackSettings && 'facingMode' in trackSettings) {
654
-                return trackSettings.facingMode;
722
+                return trackSettings.facingMode as CameraFacingMode;
655 723
             }
656 724
 
657 725
             if (typeof this._facingMode !== 'undefined') {
@@ -672,9 +740,9 @@ export default class JitsiLocalTrack extends JitsiTrack {
672 740
      *
673 741
      * @returns {Number}
674 742
      */
675
-    getCaptureResolution() {
743
+    getCaptureResolution(): number {
676 744
         if (this.videoType === VideoType.CAMERA || !browser.isWebKitBased()) {
677
-            return this.resolution;
745
+            return this.resolution!;
678 746
         }
679 747
 
680 748
         return this.getHeight();
@@ -685,7 +753,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
685 753
      *
686 754
      * @returns {string}
687 755
      */
688
-    getDeviceId() {
756
+    getDeviceId(): string {
689 757
         return this._realDeviceId || this.deviceId;
690 758
     }
691 759
 
@@ -694,7 +762,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
694 762
      *
695 763
      * @returns {Number} the duration of the track in seconds
696 764
      */
697
-    getDuration() {
765
+    getDuration(): number {
698 766
         return (Date.now() / 1000) - (this.metadata.timestamp / 1000);
699 767
     }
700 768
 
@@ -704,8 +772,8 @@ export default class JitsiLocalTrack extends JitsiTrack {
704 772
      * @returns {string} the id of the participants. It corresponds to the
705 773
      * Colibri endpoint id/MUC nickname in case of Jitsi-meet.
706 774
      */
707
-    getParticipantId() {
708
-        return this.conference && this.conference.myUserId();
775
+    getParticipantId(): string {
776
+        return this.conference?.myUserId();
709 777
     }
710 778
 
711 779
     /**
@@ -713,7 +781,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
713 781
      *
714 782
      * @returns {string | null} source name
715 783
      */
716
-    getSourceName() {
784
+    getSourceName(): string | null {
717 785
         return this._sourceName;
718 786
     }
719 787
 
@@ -721,7 +789,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
721 789
      * Returns the primary SSRC associated with the track.
722 790
      * @returns {number}
723 791
      */
724
-    getSsrc() {
792
+    getSsrc(): number | null {
725 793
         return this._ssrc;
726 794
     }
727 795
 
@@ -730,7 +798,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
730 798
      *
731 799
      * @returns {boolean}
732 800
      */
733
-    isEnded() {
801
+    isEnded(): boolean {
734 802
         if (this.isVideoTrack() && this.isMuted()) {
735 803
             // If a video track is muted the readyState will be ended, that's why we need to rely only on the
736 804
             // _trackEnded flag.
@@ -745,7 +813,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
745 813
      *
746 814
      * @returns {boolean} <tt>true</tt>
747 815
      */
748
-    isLocal() {
816
+    isLocal(): boolean {
749 817
         return true;
750 818
     }
751 819
 
@@ -754,7 +822,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
754 822
      *
755 823
      * @returns {boolean} <tt>true</tt> - if the stream is muted and <tt>false</tt> otherwise.
756 824
      */
757
-    isMuted() {
825
+    isMuted(): boolean {
758 826
         // this.stream will be null when we mute local video on Chrome
759 827
         if (!this.stream) {
760 828
             return true;
@@ -764,11 +832,11 @@ export default class JitsiLocalTrack extends JitsiTrack {
764 832
         }
765 833
 
766 834
         // If currently used stream effect has its own muted state, use that.
767
-        if (this._streamEffect && this._streamEffect.isMuted) {
835
+        if (this._streamEffect?.isMuted) {
768 836
             return this._streamEffect.isMuted();
769 837
         }
770 838
 
771
-        return !this.track || !this.track.enabled;
839
+        return !this.track?.enabled;
772 840
     }
773 841
 
774 842
     /**
@@ -779,7 +847,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
779 847
      *
780 848
      * @returns {boolean} true if the stream is receiving data and false this otherwise.
781 849
      */
782
-    isReceivingData() {
850
+    isReceivingData(): boolean {
783 851
         if (this.isVideoTrack()
784 852
             && (this.isMuted() || this._stopStreamInProgress || this.videoType === VideoType.DESKTOP)) {
785 853
             return true;
@@ -807,7 +875,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
807 875
      *
808 876
      * @returns {Promise}
809 877
      */
810
-    mute() {
878
+    mute(): Promise<void> {
811 879
         return this._queueSetMuted(true);
812 880
     }
813 881
 
@@ -818,7 +886,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
818 886
      * @param {number} bytesSent - The new value.
819 887
      * @returns {void}
820 888
      */
821
-    onByteSentStatsReceived(tpc, bytesSent) {
889
+    onByteSentStatsReceived(tpc: TraceablePeerConnection, bytesSent: number): void {
822 890
         if (bytesSent > 0) {
823 891
             this._hasSentData = true;
824 892
         }
@@ -843,7 +911,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
843 911
      * @param conference - JitsiConference object.
844 912
      * @returns {void}
845 913
      */
846
-    setConference(conference) {
914
+    setConference(conference: JitsiConference): void {
847 915
         this.conference = conference;
848 916
     }
849 917
 
@@ -853,7 +921,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
853 921
      * @param {Object} effect - Represents the effect instance to be used.
854 922
      * @returns {Promise}
855 923
      */
856
-    setEffect(effect) {
924
+    setEffect(effect?: IStreamEffect): Promise<void> {
857 925
         if (typeof this._streamEffect === 'undefined' && typeof effect === 'undefined') {
858 926
             return Promise.resolve();
859 927
         }
@@ -907,7 +975,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
907 975
             .then(() => {
908 976
                 this._setEffectInProgress = false;
909 977
             })
910
-            .catch(error => {
978
+            .catch((error: any) => {
911 979
                 // Any error will be not recovarable and will trigger CONFERENCE_FAILED event. But let's try to cleanup
912 980
                 // everyhting related to the effect functionality.
913 981
                 this._setEffectInProgress = false;
@@ -922,7 +990,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
922 990
      *
923 991
      * @param {string} name The source name.
924 992
      */
925
-    setSourceName(name) {
993
+    setSourceName(name: string): void {
926 994
         this._sourceName = name;
927 995
     }
928 996
 
@@ -931,7 +999,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
931 999
      *
932 1000
      * @param {number} ssrc The SSRC.
933 1001
      */
934
-    setSsrc(ssrc) {
1002
+    setSsrc(ssrc: number): void {
935 1003
         if (isValidNumber(ssrc)) {
936 1004
             this._ssrc = ssrc;
937 1005
         }
@@ -942,7 +1010,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
942 1010
      *
943 1011
      * @returns {void}
944 1012
      */
945
-    stopStream() {
1013
+    stopStream(): void {
946 1014
         /**
947 1015
          * Indicates that we are executing {@link #stopStream} i.e.
948 1016
          * {@link RTCUtils#stopMediaStream} for the <tt>MediaStream</tt>
@@ -965,7 +1033,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
965 1033
      *
966 1034
      * @return {string}
967 1035
      */
968
-    toString() {
1036
+    toString(): string {
969 1037
         return `LocalTrack[${this.rtcId},${this.getType()}]`;
970 1038
     }
971 1039
 
@@ -974,7 +1042,7 @@ export default class JitsiLocalTrack extends JitsiTrack {
974 1042
      *
975 1043
      * @returns {Promise}
976 1044
      */
977
-    unmute() {
1045
+    unmute(): Promise<void> {
978 1046
         return this._queueSetMuted(false);
979 1047
     }
980 1048
 }

+ 1
- 1
modules/RTC/JitsiTrack.js Прегледај датотеку

@@ -180,7 +180,7 @@ export default class JitsiTrack extends EventEmitter {
180 180
 
181 181
     /**
182 182
      * Unregisters all event handlers bound to the underlying media stream/track
183
-     * @private
183
+     * @public
184 184
      */
185 185
     _unregisterHandlers() {
186 186
         if (!this.stream) {

Loading…
Откажи
Сачувај