joinSubscriber method Null safety
joins the JanusVideoRoom as a media publisher on provided roomId
with its name as displayName
and optionally can provide your own id
.
Implementation
Future<Future<void> Function({String? audioRecv, String? audioSend, String? videoRecv, String? videoSend})> joinSubscriber(
String roomId, {
List<PublisherStream>? streams,
int? privateId,
int? feedId,
String? pin,
String? token,
}) async {
Future<void> start({audioRecv = true, audioSend = false, videoRecv = true, videoSend = false}) async {
var payload = {"request": "start", 'room': roomId};
RTCSessionDescription? offer = await this.createNullableAnswer(audioRecv: audioRecv, audioSend: audioSend, videoRecv: videoRecv, videoSend: videoSend);
if (offer != null) await this.send(data: payload, jsep: offer);
}
var payload = {
"request": "join",
"room": roomId,
"ptype": "subscriber",
"pin": pin,
"token": token,
"feed": feedId,
"private_id": privateId,
"streams": streams?.map((e) => e.toMap()).toList(),
}..removeWhere((key, value) => value == null);
_handleRoomIdTypeDifference(payload);
await this.send(data: payload);
return start;
}