Quellcode durchsuchen

feat(video-quality): add iframe event and getter.

j8
Hristo Terezov vor 4 Jahren
Ursprung
Commit
fc75d45c6c

+ 13
- 0
modules/API/API.js Datei anzeigen

@@ -524,6 +524,19 @@ class API {
524 524
         });
525 525
     }
526 526
 
527
+    /**
528
+     * Notify external application that the video quality setting has changed.
529
+     *
530
+     * @param {number} videoQuality - The video quality. The number represents the maximum height of the video streams.
531
+     * @returns {void}
532
+     */
533
+    notifyVideoQualityChanged(videoQuality: number) {
534
+        this._sendEvent({
535
+            name: 'video-quality-changed',
536
+            videoQuality
537
+        });
538
+    }
539
+
527 540
     /**
528 541
      * Notify external application (if API is enabled) that message was
529 542
      * received.

+ 13
- 0
modules/API/external/external_api.js Datei anzeigen

@@ -80,6 +80,7 @@ const events = {
80 80
     'video-conference-left': 'videoConferenceLeft',
81 81
     'video-availability-changed': 'videoAvailabilityChanged',
82 82
     'video-mute-status-changed': 'videoMuteStatusChanged',
83
+    'video-quality-changed': 'videoQualityChanged',
83 84
     'screen-sharing-status-changed': 'screenSharingStatusChanged',
84 85
     'dominant-speaker-changed': 'dominantSpeakerChanged',
85 86
     'subject-change': 'subjectChange',
@@ -503,6 +504,9 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
503 504
                 changeParticipantNumber(this, -1);
504 505
                 delete this._participants[this._myUserID];
505 506
                 break;
507
+            case 'video-quality-changed':
508
+                this._videoQuality = data.videoQuality;
509
+                break;
506 510
             }
507 511
 
508 512
             const eventName = events[name];
@@ -689,6 +693,15 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
689 693
         return getCurrentDevices(this._transport);
690 694
     }
691 695
 
696
+    /**
697
+     * Returns the current video quality setting.
698
+     *
699
+     * @returns {number}
700
+     */
701
+    getVideoQuality() {
702
+        return this._videoQuality;
703
+    }
704
+
692 705
     /**
693 706
      * Check if the audio is available.
694 707
      *

+ 1
- 0
react/features/base/config/configWhitelist.js Datei anzeigen

@@ -152,6 +152,7 @@ export default [
152 152
     'testing',
153 153
     'useStunTurn',
154 154
     'useTurnUdp',
155
+    'videoQuality.persist',
155 156
     'webrtcIceTcpDisable',
156 157
     'webrtcIceUdpDisable'
157 158
 ].concat(extraConfigWhitelist);

+ 6
- 0
react/features/video-quality/middleware.js Datei anzeigen

@@ -15,6 +15,8 @@ import { getReceiverVideoQualityLevel } from './functions';
15 15
 import logger from './logger';
16 16
 import { getMinHeightForQualityLvlMap } from './selector';
17 17
 
18
+declare var APP: Object;
19
+
18 20
 /**
19 21
  * Implements the middleware of the feature video-quality.
20 22
  *
@@ -213,4 +215,8 @@ StateListenerRegistry.register(
213 215
         if (changedConference || changedPreferredVideoQuality) {
214 216
             _setSenderVideoConstraint(conference, preferredVideoQuality);
215 217
         }
218
+
219
+        if (typeof APP !== 'undefined' && changedPreferredVideoQuality) {
220
+            APP.API.notifyVideoQualityChanged(preferredVideoQuality);
221
+        }
216 222
     });

Laden…
Abbrechen
Speichern