8000 Updating WebRTC lib #1 · flutter-webrtc/flutter-webrtc@1be17c2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1be17c2

Browse files
committed
Updating WebRTC lib #1
It builds 🎉 Loopback sample working. Poorly
1 parent 9a78b81 commit 1be17c2

File tree

2 files changed

+37
-56
lines changed

2 files changed

+37
-56
lines changed

android/src/main/java/com/cloudwebrtc/webrtc/PeerConnectionObserver.java

Lines changed: 30 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import java.io.UnsupportedEncodingException;
44
import java.lang.ref.SoftReference;
55
import java.nio.ByteBuffer;
6+
import java.util.ArrayList;
67
import java.util.HashMap;
78
import java.util.Iterator;
9+
import java.util.List;
810
import java.util.Map;
911

1012
import android.util.Base64;
@@ -276,7 +278,7 @@ private String getUIDForStream(MediaStream mediaStream) {
276278
@Override
277279
public void onAddStream(MediaStream mediaStream) {
278280
String streamUID = null;
279-
String streamId = mediaStream.label();
281+
String streamId = mediaStream.getId();
280282
// The native WebRTC implementation has a special concept of a default
281283
// MediaStream instance with the label default that the implementation
282284
// reuses.
@@ -347,7 +349,7 @@ void sendEvent(ConstraintsMap event) {
347349
@Override
348350
public void onRemoveStream(MediaStream mediaStream) {
349351

350-
String streamId = mediaStream.label();
352+
String streamId = mediaStream.getId();
351353

352354
for (VideoTrack track : mediaStream.videoTracks) {
353355
this.remoteTracks.remove(track.id());
@@ -364,55 +366,36 @@ public void onRemoveStream(MediaStream mediaStream) {
364366
}
365367

366368
@Override
367-
public void onAddTrack(MediaStream mediaStream,MediaStreamTrack track){
369+
public void onAddTrack(RtpReceiver receiver, MediaStream[] mediaStreams){
368370
Log.d(TAG, "onAddTrack");
369371

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+
}
413397
}
414398

415-
416399
@Override
417400
public void onDataChannel(DataChannel dataChannel) {
418401
// XXX Unfortunately, the Java WebRTC API doesn't expose the id
@@ -472,11 +455,6 @@ public void onSignalingChange(PeerConnection.SignalingState signalingState) {
472455
sendEvent(params);
473456
}
474457

475-
@Override
476-
public void onAddRtpReceiver(final RtpReceiver receiver, final MediaStream[] mediaStreams) {
477-
Log.d(TAG, "onAddRtpReceiver");
478-
}
479-
480458
@Nullable
481459
private String iceConnectionStateString(PeerConnection.IceConnectionState iceConnectionState) {
482460
switch (iceConnectionState) {

android/src/main/java/com/cloudwebrtc/webrtc/utils/PermissionUtils.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.os.Handler;
1010
import android.os.Looper;
1111
import android.os.ResultReceiver;
12-
import android.support.v4.content.ContextCompat;
1312

1413
import com.cloudwebrtc.webrtc.FlutterWebRTCPlugin;
1514

@@ -40,6 +39,9 @@ private static void requestPermissions(
4039
FlutterWebRTCPlugin plugin,
4140
String[] permissions,
4241
ResultReceiver resultReceiver) {
42+
// No need to ask for permission on pre-Marshmallow
43+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
44+
return;
4345
// Ask the Context whether we have already been granted the requested
4446
// permissions.
4547
int size = permissions.length;
@@ -48,9 +50,7 @@ private static void requestPermissions(
4850

4951
for (int i = 0; i < size; ++i) {
5052
int grantResult
51-
= ContextCompat.checkSelfPermission(
52-
plugin.getContext(),
53-
permissions[i]);
53+
= plugin.getContext().checkSelfPermission(permissions[i]);
5454

5555
grantResults[i] = grantResult;
5656
if (grantResult != PackageManager.PERMISSION_GRANTED) {
@@ -155,6 +155,9 @@ public void setPlugin(FlutterWebRTCPlugin plugin){
155155
this.plugin = plugin;
156156
}
157157
private void checkSelfPermissions(boolean requestPermissions) {
158+
// No need to ask for permission on pre-Marshmallow
159+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
160+
return;
158161
// Figure out which of the requested permissions are actually denied
159162
// because we do not want to ask about the granted permissions
160163
// (which Android supports).

0 commit comments

Comments
 (0)
0