ParticipantSFU constructor
ParticipantSFU({
- required String ownerId,
- bool isVideoEnabled = true,
- bool isAudioEnabled = true,
- bool isSharingScreen = false,
- bool isE2eeEnabled = false,
- bool isSpeakerPhoneEnabled = true,
- CameraType cameraType = CameraType.front,
- AudioLevel audioLevel = AudioLevel.kSilence,
- required RTCPeerConnection peerConnection,
- required dynamic onFirstFrameRendered()?,
- required WebRTCCodec videoCodec,
- WebRTCVideoStats? stats,
- WebRTCAudioStats? audioStats,
- bool isMe = false,
- MediaSource? cameraSource,
- MediaSource? screenSource,
Implementation
ParticipantSFU({
required this.ownerId,
this.isVideoEnabled = true,
this.isAudioEnabled = true,
this.isSharingScreen = false,
this.isE2eeEnabled = false,
this.isSpeakerPhoneEnabled = true,
this.cameraType = CameraType.front,
this.audioLevel = AudioLevel.kSilence,
required this.peerConnection,
required this.onFirstFrameRendered,
required this.videoCodec,
// use only one time
WebRTCVideoStats? stats,
WebRTCAudioStats? audioStats,
bool isMe = false,
this.cameraSource,
this.screenSource,
}) {
if (cameraSource != null || screenSource != null) return;
cameraSource = MediaSource(onFirstFrameRendered: onFirstFrameRendered);
screenSource = MediaSource(onFirstFrameRendered: onFirstFrameRendered);
if (stats != null && audioStats != null) {
peerConnection.monitorStats(
stats,
isMe: isMe,
id: peerConnection.peerConnectionId,
audioStats: audioStats,
onLevelChanged: (level) {
if (level == audioLevel) return;
audioLevel = level;
onFirstFrameRendered?.call();
},
);
}
}