createAnswer method Null safety
This method is used to create webrtc answer, sets local description on internal PeerConnection object It supports both style of answer creation that is plan-b and unified.
Implementation
Future<RTCSessionDescription> createAnswer({bool audioRecv: true, bool videoRecv: true, bool audioSend: true, bool videoSend: true}) async {
dynamic offerOptions;
if (_context._isUnifiedPlan && !_context._usePlanB) {
await _prepareTranscievers(audioRecv: audioRecv, audioSend: audioSend, videoRecv: videoRecv, videoSend: videoSend);
} else {
offerOptions = {"offerToReceiveAudio": audioRecv, "offerToReceiveVideo": videoRecv};
}
try {
RTCSessionDescription offer = await webRTCHandle!.peerConnection!.createAnswer(offerOptions ?? {});
await webRTCHandle!.peerConnection!.setLocalDescription(offer);
return offer;
} catch (e) {
// handling kstable exception most ugly way but currently there's no other workaround, it just works
RTCSessionDescription offer = await webRTCHandle!.peerConnection!.createAnswer(offerOptions ?? {});
await webRTCHandle!.peerConnection!.setLocalDescription(offer);
return offer;
}
}