changeAudioInputDevice method

  1. @override
Future<void> changeAudioInputDevice({
  1. required String deviceId,
})
override

Implementation

@override
Future<void> changeAudioInputDevice({required String deviceId}) async {
  if (_mParticipant == null) return;

  _currentCallSetting = _currentCallSetting.copyWith(
    audioConfig: _currentCallSetting.audioConfig.copyWith(deviceId: deviceId),
  );

  final MediaStream? newStream = await _getUserMedia(onlyStream: true);

  if (newStream == null) return;

  final MediaStreamTrack? audioTrack = newStream.getAudioTracks().firstOrNull;

  if (audioTrack == null) return;

  _localCameraStream = newStream;
  await _replaceAudioTrack(audioTrack);

  _mParticipant?.setSrcObject(newStream);
}