@@ -110,17 +110,24 @@ class Signaling {
110
110
}
111
111
}
112
112
113
- void invite (String peer_id, String media, use_screen) {
114
- this ._sessionId = this ._selfId + '-' + peer_id;
113
+ void muteMic () {
114
+ if (_localStream != null ) {
115
+ bool enabled = _localStream.getAudioTracks ()[0 ].enabled;
116
+ _localStream.getAudioTracks ()[0 ].enabled = ! enabled;
117
+ }
118
+ }
119
+
120
+ void invite (String peerId, String media, bool useScreen) {
121
+ this ._sessionId = this ._selfId + '-' + peerId;
115
122
116
123
this .onStateChange? .call (SignalingState .CallStateNew );
117
124
118
- _createPeerConnection (peer_id , media, use_screen ).then ((pc) {
119
- _peerConnections[peer_id ] = pc;
125
+ _createPeerConnection (peerId , media, useScreen ).then ((pc) {
126
+ _peerConnections[peerId ] = pc;
120
127
if (media == 'data' ) {
121
- _createDataChannel (peer_id , pc);
128
+ _createDataChannel (peerId , pc);
122
129
}
123
- _createOffer (peer_id , pc, media);
130
+ _createOffer (peerId , pc, media);
124
131
});
125
132
}
126
133
@@ -339,7 +346,8 @@ class Signaling {
339
346
.getTracks ()
340
347
.forEach ((track) => pc.addTrack (track, _localStream));
341
348
342
- /* Unified-Plan: Simuclast
349
+ // Unified-Plan: Simuclast
350
+ /*
343
351
await pc.addTransceiver(
344
352
track: _localStream.getAudioTracks()[0],
345
353
init: RTCRtpTransceiverInit(
@@ -354,19 +362,32 @@ class Signaling {
354
362
_localStream
355
363
],
356
364
sendEncodings: [
357
- RTCRtpEncoding(rid: 'f'),
365
+ RTCRtpEncoding(rid: 'f', active: true ),
358
366
RTCRtpEncoding(
359
367
rid: 'h',
368
+ active: true,
360
369
scaleResolutionDownBy: 2.0,
361
- maxBitrateBps : 150000,
370
+ maxBitrate : 150000,
362
371
),
363
372
RTCRtpEncoding(
364
373
rid: 'q',
374
+ active: true,
365
375
scaleResolutionDownBy: 4.0,
366
- maxBitrateBps : 100000,
376
+ maxBitrate : 100000,
367
377
),
368
378
]),
369
- );
379
+ );*/
380
+ /*
381
+ var sender = pc.getSenders().find(s => s.track.kind == "video");
382
+ var parameters = sender.getParameters();
383
+ if(!parameters)
384
+ parameters = {};
385
+ parameters.encodings = [
386
+ { rid: "h", active: true, maxBitrate: 900000 },
387
+ { rid: "m", active: true, maxBitrate: 300000, scaleResolutionDownBy: 2 },
388
+ { rid: "l", active: true, maxBitrate: 100000, scaleResolutionDownBy: 4 }
389
+ ];
390
+ sender.setParameters(parameters);
370
391
*/
371
392
}
372
393
pc.onIceCandidate = (candidate) {
@@ -423,15 +444,16 @@ class Signaling {
423
444
}
424
445
425
446
_createDataChannel (id, RTCPeerConnection pc, {label: 'fileTransfer' }) async {
426
- RTCDataChannelInit dataChannelDict = new RTCDataChannelInit ();
447
+ RTCDataChannelInit dataChannelDict = new RTCDataChannelInit ()
448
+ ..maxRetransmits = 30 ;
427
449
RTCDataChannel channel = await pc.createDataChannel (label, dataChannelDict);
428
450
_addDataChannel (id, channel);
429
451
}
430
452
431
453
_createOffer (String id, RTCPeerConnection pc, String media) async {
432
454
try {
433
- RTCSessionDescription s = await pc
434
- .createOffer (media == 'data' ? _dc_constraints : _constraints );
455
+ RTCSessionDescription s =
456
+ await pc .createOffer (media == 'data' ? _dc_constraints : {} );
435
457
pc.setLocalDescription (s);
436
458
_send ('offer' , {
437
459
'to' : id,
@@ -447,8 +469,8 @@ class Signaling {
447
469
448
470
_createAnswer (String id, RTCPeerConnection pc, media) async {
449
471
try {
450
- RTCSessionDescription s = await pc
451
- .createAnswer (media == 'data' ? _dc_constraints : _constraints );
472
+ RTCSessionDescription s =
473
+ await pc .createAnswer (media == 'data' ? _dc_constraints : {} );
452
474
pc.setLocalDescription (s);
453
475
_send ('answer' , {
454
476
'to' : id,
0 commit comments