diff --git a/.gitignore b/.gitignore index d8f0b11274f787754546a06a55e6cb9f1a924c8d..42d6d13a7b5a058591c0e2dddf7775726f1fb3fa 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ clients/flash/**/.gradle **/.idea/* *.iml *~ +**/node_modules/ diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx index f5ab6664d3795e89c280f63f16ebac935deeacd9..95d8be778e9711bc0fad60527f431a57d6d00f84 100755 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx @@ -330,7 +330,7 @@ class ActionsBar extends PureComponent { aria-label={intl.formatMessage(intlMessages.translatorMicrophoneLabel)} color={!amIAsTranslatorMuted ? 'primary' : 'default'} ghost={amIAsTranslatorMuted} - icon={amIAsTranslatorMuted ? 'mute' : 'unmute'} + icon={amIAsTranslatorMuted ? 'mute' : AudioManager.$translatorSpeakingChanged.value ? "mute_filled": 'unmute'} size="lg" circle /> diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index 00f0710ab57f3c86217b9d98c986bda84b60976a..69b64724008047a9476d586d194a7dbed06878c0 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -58,6 +58,8 @@ class AudioManager { this.translatorSpeechEvents = null; this.$translatorSpeechDetectionThresholdChanged = new BehaviorSubject(TRANSLATOR_SPEECH_DETECTION_THRESHOLD) + this.$translatorSpeakingChanged = new BehaviorSubject(false) + this.defineProperties({ isMuted: false, isConnected: false, @@ -95,6 +97,7 @@ class AudioManager { this.translatorSpeechEvents.setThreshold(val); } }); + } init(userData, audioEventHandler) { @@ -844,22 +847,21 @@ class AudioManager { this.translatorStream = inputStream this.translatorSpeechEvents = hark(inputStream, speechEventsOptions); this.translatorSpeechEvents.on('speaking', () => { - console.log("Speaking") + this.$translatorSpeakingChanged.next(true); Meeting.changeTranslatorSpeackState(languageExtension, true); }); this.translatorSpeechEvents.on('volume_change', () => { const translatorIsSpeaking = this.translatorSpeechEvents.speaking; if (translatorIsSpeaking && (!this.translatorSpeechEvents.lastTimestamp || Date.now() - this.translatorSpeechEvents.lastTimestamp > 2000)) { - console.log("Check is translator speaking"); this.translatorSpeechEvents.lastTimestamp = Date.now(); Meeting.changeTranslatorSpeackState(languageExtension, translatorIsSpeaking); } }); this.translatorSpeechEvents.on('stopped_speaking', () => { + this.$translatorSpeakingChanged.next(false); Meeting.changeTranslatorSpeackState(languageExtension, false); - console.log("stopped speaking") }); const callOptions = {