joinRoom method
Future<void>
joinRoom({
- required String roomId,
- required int participantId,
- required ConnectionType connectionType,
override
Implementation
@override
Future<void> joinRoom({
required String roomId,
required int participantId,
required ConnectionType connectionType,
}) async {
_connectionType = connectionType;
await Future.wait([
_e2eeManager.initialize(
roomId,
codec: _currentCallSetting.videoConfig.preferedCodec,
participantId: participantId.toString(),
enabled: _currentCallSetting.e2eeEnabled,
),
initializeMediaDevices(),
]);
if (_mParticipant?.peerConnection == null) return;
if (WebRTC.platformIsMobile) {
final futures = <Future>[];
if (WebRTC.platformIsIOS) {
futures.add(
Helper.setAppleAudioIOMode(
AppleAudioIOMode.localAndRemote,
preferSpeakerOutput: true,
),
);
}
futures.add(toggleSpeakerOutput(forceValue: true));
await Future.wait(futures);
}
if (connectionType == ConnectionType.sfu) {
_mParticipant = await _mParticipant?.createTrackQualityChannel();
}
_currentRoomId = roomId;
_currentParticipantId = participantId.toString();
await _establishPublisher();
_nativeService.startCallKit(roomId);
}