Add extra checks

To be able to change audio device, if the first/default device couldn't start.
master
Mészáros Mihály 2020-03-15 01:42:13 +01:00
parent c8dd705530
commit 8c042c3211
1 changed files with 11 additions and 8 deletions

View File

@ -890,6 +890,7 @@ export default class RoomClient
'changeAudioDevice() | new selected webcam [device:%o]',
device);
if (this._micProducer && this._micProducer.track)
this._micProducer.track.stop();
logger.debug('changeAudioDevice() | calling getUserMedia()');
@ -904,8 +905,10 @@ export default class RoomClient
const track = stream.getAudioTracks()[0];
if (this._micProducer)
await this._micProducer.replaceTrack({ track });
if (this._micProducer)
this._micProducer.volume = 0;
const harkStream = new MediaStream();
@ -942,7 +945,7 @@ export default class RoomClient
store.dispatch(peerVolumeActions.setPeerVolume(this._peerId, volume));
}
});
if (this._micProducer && this._micProducer.id)
store.dispatch(
producerActions.setProducerTrack(this._micProducer.id, track));
@ -2274,7 +2277,7 @@ export default class RoomClient
if (this._micProducer)
return;
if (!this._mediasoupDevice.canProduce('audio'))
if (this._mediasoupDevice && !this._mediasoupDevice.canProduce('audio'))
{
logger.error('enableMic() | cannot produce audio');