Merge pull request #1815 from jitsi/fix_audio_only_off

fix(AudioOnly+web): crash when untoggle audio only
This commit is contained in:
Saúl Ibarra Corretgé
2017-07-25 14:05:09 +02:00
committed by GitHub
4 changed files with 45 additions and 9 deletions

View File

@@ -9,7 +9,7 @@ import {
setCameraFacingMode,
setVideoMuted
} from './actions';
import { CAMERA_FACING_MODE } from './constants';
import { CAMERA_FACING_MODE, MEDIA_TYPE } from './constants';
/**
* Middleware that captures CONFERENCE_LEFT action and restores initial state
@@ -70,6 +70,15 @@ function _syncTrackMutedState(store, track) {
// fired before track gets to state.
if (track.muted !== muted) {
track.muted = muted;
setTrackMuted(track.jitsiTrack, muted);
setTrackMuted(track.jitsiTrack, muted)
.catch(error => {
console.error(`setTrackMuted(${muted}) failed`, error);
const setMuted
= track.mediaType === MEDIA_TYPE.AUDIO
? setAudioMuted : setVideoMuted;
// Failed to sync muted state - dispatch rollback action
store.dispatch(setMuted(!muted));
});
}
}

View File

@@ -174,9 +174,5 @@ export function setTrackMuted(track, muted) {
const f = muted ? 'mute' : 'unmute';
return track[f]()
.catch(err => {
console.warn(`Track ${f} was rejected:`, err);
throw err;
});
return track[f]();
}

View File

@@ -160,7 +160,19 @@ function _getLocalTrack(store, mediaType: MEDIA_TYPE) {
function _setMuted(store, action, mediaType: MEDIA_TYPE) {
const localTrack = _getLocalTrack(store, mediaType);
localTrack && setTrackMuted(localTrack.jitsiTrack, action.muted);
if (localTrack) {
setTrackMuted(localTrack.jitsiTrack, action.muted)
.catch(error => {
console.error(`setTrackMuted(${action.muted}) failed`, error);
const setMuted
= mediaType === MEDIA_TYPE.AUDIO
? setAudioMuted : setVideoMuted;
// Failed to modify muted state - dispatch rollback action
store.dispatch(setMuted(!action.muted));
});
}
}
/**