fix(external-api) Fix notify audio muted/audio available
This commit is contained in:
parent
d6f3c2a0f4
commit
35442c6094
|
@ -2983,7 +2983,6 @@ export default {
|
||||||
const available = audioDeviceCount > 0 || Boolean(localAudio);
|
const available = audioDeviceCount > 0 || Boolean(localAudio);
|
||||||
|
|
||||||
APP.store.dispatch(setAudioAvailable(available));
|
APP.store.dispatch(setAudioAvailable(available));
|
||||||
APP.API.notifyAudioAvailabilityChanged(available);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3247,7 +3246,6 @@ export default {
|
||||||
*/
|
*/
|
||||||
setAudioMuteStatus(muted) {
|
setAudioMuteStatus(muted) {
|
||||||
APP.UI.setAudioMuted(this.getMyUserId(), muted);
|
APP.UI.setAudioMuted(this.getMyUserId(), muted);
|
||||||
APP.API.notifyAudioMutedStatusChanged(muted);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,6 +14,8 @@ import MiddlewareRegistry from '../redux/MiddlewareRegistry';
|
||||||
|
|
||||||
import { SET_VIDEO_MUTED } from './actionTypes';
|
import { SET_VIDEO_MUTED } from './actionTypes';
|
||||||
|
|
||||||
|
import './subscriber';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the entry point of the middleware of the feature base/media.
|
* Implements the entry point of the middleware of the feature base/media.
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
import { IState, IStore } from '../../app/types';
|
||||||
|
import StateListenerRegistry from '../redux/StateListenerRegistry';
|
||||||
|
|
||||||
|
|
||||||
|
declare let APP: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifies when the local audio mute state changes.
|
||||||
|
*/
|
||||||
|
StateListenerRegistry.register(
|
||||||
|
/* selector */ (state: IState) => state['features/base/media'].audio.muted,
|
||||||
|
/* listener */ (muted: boolean, store: IStore, previousMuted: boolean) => {
|
||||||
|
if (typeof APP !== 'object') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (muted !== previousMuted) {
|
||||||
|
APP.API.notifyAudioMutedStatusChanged(muted);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
|
@ -26,7 +26,7 @@ type Listener
|
||||||
* The type selector supported for registration with
|
* The type selector supported for registration with
|
||||||
* {@link StateListenerRegistry} in association with a {@link Listener}.
|
* {@link StateListenerRegistry} in association with a {@link Listener}.
|
||||||
*
|
*
|
||||||
* @param {Object} state - The redux state from which the {@code Selector} is to
|
* @param {IState} state - The redux state from which the {@code Selector} is to
|
||||||
* derive data.
|
* derive data.
|
||||||
* @param {any} prevSelection - The value previously derived from the redux
|
* @param {any} prevSelection - The value previously derived from the redux
|
||||||
* store/state by the {@code Selector}. Provided in case the {@code Selector}
|
* store/state by the {@code Selector}. Provided in case the {@code Selector}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// @flow
|
import { IState } from '../app/types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates if the audio mute button is disabled or not.
|
* Indicates if the audio mute button is disabled or not.
|
||||||
*
|
*
|
||||||
* @param {Object} state - The state from the Redux store.
|
* @param {IState} state - The state from the Redux store.
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
export function isAudioMuteButtonDisabled(state: Object) {
|
export function isAudioMuteButtonDisabled(state: IState) {
|
||||||
const { available, muted, unmuteBlocked } = state['features/base/media'].audio;
|
const { available, muted, unmuteBlocked } = state['features/base/media'].audio;
|
||||||
const { startSilent } = state['features/base/config'];
|
const { startSilent } = state['features/base/config'];
|
||||||
|
|
|
@ -8,6 +8,7 @@ import {
|
||||||
SET_FULL_SCREEN
|
SET_FULL_SCREEN
|
||||||
} from './actionTypes';
|
} from './actionTypes';
|
||||||
|
|
||||||
|
import './subscriber';
|
||||||
|
|
||||||
declare var APP: Object;
|
declare var APP: Object;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
import { IState, IStore } from '../app/types';
|
||||||
|
import StateListenerRegistry from '../base/redux/StateListenerRegistry';
|
||||||
|
|
||||||
|
import { isAudioMuteButtonDisabled } from './functions.any';
|
||||||
|
|
||||||
|
declare let APP: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifies when audio availability changes.
|
||||||
|
*/
|
||||||
|
StateListenerRegistry.register(
|
||||||
|
/* selector */ (state: IState) => isAudioMuteButtonDisabled(state),
|
||||||
|
/* listener */ (disabled: boolean, store: IStore, previousDisabled: boolean) => {
|
||||||
|
if (typeof APP !== 'object') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (disabled !== previousDisabled) {
|
||||||
|
APP.API.notifyAudioAvailabilityChanged(!disabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
Loading…
Reference in New Issue