diff --git a/bigbluebutton-html5/imports/ui/components/audio/service.js b/bigbluebutton-html5/imports/ui/components/audio/service.js index c70a5e910dc30f317c874bc1d3afeeee09e7d33c..38cd9812f58bdb46be72dbeba3c6888451dfcac4 100755 --- a/bigbluebutton-html5/imports/ui/components/audio/service.js +++ b/bigbluebutton-html5/imports/ui/components/audio/service.js @@ -38,20 +38,22 @@ const init = (messages, intl) => { const currentUser = () => mapUser(Users.findOne({ intId: Auth.userID })); const toggleMuteMicrophone = () => { - makeCall('toggleSelfVoice'); - const cvu = VoiceUsers.findOne({ meetingId: Auth.meetingID, intId: Auth.userID }); - if (cvu) { - if (cvu.muted) { - logger.info({ - logCode: 'audiomanager_unmute_audio', - extraInfo: { logType: 'user_action' }, - }, 'microphone unmuted by user'); - } else { - logger.info({ - logCode: 'audiomanager_mute_audio', - extraInfo: { logType: 'user_action' }, - }, 'microphone muted by user'); - } + const userIsMuted = VoiceUsers.findOne({ + meetingId: Auth.meetingID, intId: Auth.userID, + }, { fields: { muted: 1 } }); + + if (userIsMuted) { + logger.info({ + logCode: 'audiomanager_unmute_audio', + extraInfo: { logType: 'user_action' }, + }, 'microphone unmuted by user'); + makeCall('toggleSelfVoice'); + } else { + logger.info({ + logCode: 'audiomanager_mute_audio', + extraInfo: { logType: 'user_action' }, + }, 'microphone muted by user'); + makeCall('toggleSelfVoice'); } }; diff --git a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx index faaa783a87501a91d7dc9c6c6e9d8ef8a0128afc..b61a86e630b592ebc186896f7993fc390ffb57e3 100755 --- a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/component.jsx @@ -46,7 +46,7 @@ const propTypes = { mountModal: PropTypes.func.isRequired, breakoutURL: PropTypes.string.isRequired, isFreeJoin: PropTypes.bool.isRequired, - currentVoiceUser: PropTypes.objectOf(Object).isRequired, + voiceUserJoined: PropTypes.bool.isRequired, requestJoinURL: PropTypes.func.isRequired, breakouts: PropTypes.arrayOf(Object).isRequired, breakoutName: PropTypes.string.isRequired, @@ -71,13 +71,13 @@ class BreakoutJoinConfirmation extends Component { mountModal, breakoutURL, isFreeJoin, - currentVoiceUser, + voiceUserJoined, } = this.props; const { selectValue } = this.state; const url = isFreeJoin ? getURL(selectValue) : breakoutURL; - if (currentVoiceUser && currentVoiceUser.joined) { + if (voiceUserJoined) { // leave main room's audio when joining a breakout room AudioService.exitAudio(); logger.info({ diff --git a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/container.jsx b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/container.jsx index 56473f9bfe62c0aa0ba75f3e40ad525c297b4309..78112e1b66ce46467fecb8d61b835aee0fce3837 100755 --- a/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/breakout-join-confirmation/container.jsx @@ -2,9 +2,9 @@ import React from 'react'; import { withTracker } from 'meteor/react-meteor-data'; import Breakouts from '/imports/api/breakouts'; import Auth from '/imports/ui/services/auth'; -import VoiceUsers from '/imports/api/voice-users/'; import { makeCall } from '/imports/ui/services/api'; import breakoutService from '/imports/ui/components/breakout-room/service'; +import AudioManager from '/imports/ui/services/audio-manager'; import BreakoutJoinConfirmationComponent from './component'; const BreakoutJoinConfirmationContrainer = props => ( @@ -35,8 +35,6 @@ export default withTracker(({ breakout, mountModal, breakoutName }) => { requestJoinURL(breakoutId); } - const currentVoiceUser = VoiceUsers.findOne({ meetingId: Auth.meetingID, intId: Auth.userID }); - return { isFreeJoin, mountModal, @@ -45,6 +43,6 @@ export default withTracker(({ breakout, mountModal, breakoutName }) => { breakouts: breakoutService.getBreakouts(), requestJoinURL, getURL, - currentVoiceUser, + voiceUserJoined: AudioManager.isUsingAudio(), }; })(BreakoutJoinConfirmationContrainer);