changeVideoInputDevice method

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

Implementation

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

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

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

  if (newStream == null) return;

  final MediaStreamTrack? videoTrack = newStream.getVideoTracks().firstOrNull;

  if (videoTrack == null) return;

  _localCameraStream = newStream;
  await _replaceVideoTrack(videoTrack);

  _mParticipant?.setSrcObject(newStream);
}