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

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c85352e

Browse files
committed
Updating WebRTC lib flutter-webrtc#1
It builds 🎉 Loopback sample working. Poorly
1 parent 27e6d34 commit c85352e

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 onRemove 8000 Stream(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