3
3
import java .io .UnsupportedEncodingException ;
4
4
import java .lang .ref .SoftReference ;
5
5
import java .nio .ByteBuffer ;
6
+ import java .util .ArrayList ;
6
7
import java .util .HashMap ;
7
8
import java .util .Iterator ;
9
+ import java .util .List ;
8
10
import java .util .Map ;
9
11
10
12
import android .util .Base64 ;
@@ -276,7 +278,7 @@ private String getUIDForStream(MediaStream mediaStream) {
276
278
@ Override
277
279
public void onAddStream (MediaStream mediaStream ) {
278
280
String streamUID = null ;
279
- String streamId = mediaStream .label ();
281
+ String streamId = mediaStream .getId ();
280
282
// The native WebRTC implementation has a special concept of a default
281
283
// MediaStream instance with the label default that the implementation
282
284
// reuses.
@@ -347,7 +349,7 @@ void sendEvent(ConstraintsMap event) {
347
349
@ Override
348
350
public void onRemoveStream (MediaStream mediaStream ) {
349
351
350
- String streamId = mediaStream .label ();
352
+ String streamId = mediaStream .getId ();
351
353
352
354
for (VideoTrack track : mediaStream .videoTracks ) {
353
355
this .remoteTracks .remove (track .id ());
@@ -364,55 +366,36 @@ public void onRemoveStream(MediaStream mediaStream) {
364
366
}
365
367
366
368
@ Override
367
- public void onAddTrack (MediaStream mediaStream , MediaStreamTrack track ){
369
+ public void onAddTrack (RtpReceiver receiver , MediaStream [] mediaStreams ){
368
370
Log .d (TAG , "onAddTrack" );
369
371
370
- String streamId = mediaStream .label ();
371
-
372
- ConstraintsMap params = new ConstraintsMap ();
373
- params .putString ("event" , "onAddTrack" );
374
- params .putString ("streamId" , streamId );
375
- params .putString ("trackId" , track .id ());
376
-
377
- String trackId = track .id ();
378
- ConstraintsMap trackInfo = new ConstraintsMap ();
379
- trackInfo .putString ("id" , trackId );
380
- trackInfo .putString ("label" , track .kind ());
381
- trackInfo .putString ("kind" , track .kind ());
382
- trackInfo .putBoolean ("enabled" , track .enabled ());
383
- trackInfo .putString ("readyState" , track .state ().toString ());
384
- trackInfo .putBoolean ("remote" , true );
385
-
386
- params .putMap ("track" , trackInfo .toMap ());
387
-
388
- sendEvent (params );
389
- }
390
-
391
- @ Override
392
- public void onRemoveTrack (MediaStream mediaStream ,MediaStreamTrack track ){
393
- Log .d (TAG , "onRemoveTrack" );
394
- String streamId = mediaStream .label ();
395
-
396
- ConstraintsMap params = new ConstraintsMap ();
397
- params .putString ("event" , "onRemoveTrack" );
398
- params .putString ("streamId" , streamId );
399
- params .putString ("trackId" , track .id ());
400
-
401
- String trackId = track .id ();
402
- ConstraintsMap trackInfo = new ConstraintsMap ();
403
- trackInfo .putString ("id" , trackId );
404
- trackInfo .putString ("label" , track .kind ());
405
- trackInfo .putString ("kind" , track .kind ());
406
- trackInfo .putBoolean ("enabled" , track .enabled ());
407
- trackInfo .putString ("readyState" , track .state ().toString ());
408
- trackInfo .putBoolean ("remote" , true );
409
-
410
- params .putMap ("track" , trackInfo .toMap ());
411
-
412
- sendEvent (params );
372
+ for (MediaStream stream : mediaStreams ) {
373
+ String streamId = stream .getId ();
374
+ List <MediaStreamTrack > tracks = new ArrayList <>(stream .audioTracks );
375
+ tracks .addAll (stream .videoTracks );
376
+
377
+ for (MediaStreamTrack track : tracks ) {
378
+ ConstraintsMap params = new ConstraintsMap ();
379
+ params .putString ("event" , "onAddTrack" );
380
+ params .putString ("streamId" , streamId );
381
+ params .putString ("trackId" , track .id ());
382
+
383
+ String trackId = track .id ();
384
+ ConstraintsMap trackInfo = new ConstraintsMap ();
385
+ trackInfo .putString ("id" , trackId );
386
+ trackInfo .putString ("label" , track .kind ());
387
+ trackInfo .putString ("kind" , track .kind ());
388
+ trackInfo .putBoolean ("enabled" , track .enabled ());
389
+ trackInfo .putString ("readyState" , track .state ().toString ());
390
+ trackInfo .putBoolean ("remote" , true );
391
+
392
+ params .putMap ("track" , trackInfo .toMap ());
393
+
394
+ sendEvent (params );
395
+ }
396
+ }
413
397
}
414
398
415
-
416
399
@ Override
417
400
public void onDataChannel (DataChannel dataChannel ) {
418
401
// XXX Unfortunately, the Java WebRTC API doesn't expose the id
@@ -472,11 +455,6 @@ public void onSignalingChange(PeerConnection.SignalingState signalingState) {
472
455
sendEvent (params );
473
456
}
474
457
475
- @ Override
476
- public void onAddRtpReceiver (final RtpReceiver receiver , final MediaStream [] mediaStreams ) {
477
- Log .d (TAG , "onAddRtpReceiver" );
478
- }
479
-
480
458
@ Nullable
481
459
private String iceConnectionStateString (PeerConnection .IceConnectionState iceConnectionState ) {
482
460
switch (iceConnectionState ) {
0 commit comments