Update the android AppRTC to use PeerConnection Unified Plan API.

This updates AppRTC to use addTrack instead of addStream, and removes
the use of onAddStream, because we no longer have to wait for this to be
fired to set the remote track's video renderers.

Bug: webrtc:8869
Change-Id: I1ecae684a9bc4b30512e8c5d717e72b52c589831
Reviewed-on: https://webrtc-review.googlesource.com/57840
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22318}
This commit is contained in:
Seth Hampson
2018-03-06 17:24:06 -08:00
committed by Commit Bot
parent c384e14707
commit 9a58cc00e0
6 changed files with 53 additions and 40 deletions

View File

@ -13,6 +13,9 @@ package org.webrtc;
/** Java wrapper for a C++ MediaStreamTrackInterface. */
@JNINamespace("webrtc::jni")
public class MediaStreamTrack {
public static final String AUDIO_TRACK_KIND = "audio";
public static final String VIDEO_TRACK_KIND = "video";
/** Tracks MediaStreamTrackInterface.TrackState */
public enum State {
LIVE,
@ -51,6 +54,21 @@ public class MediaStreamTrack {
}
}
/** Factory method to create an AudioTrack or VideoTrack subclass. */
static MediaStreamTrack createMediaStreamTrack(long nativeTrack) {
if (nativeTrack == 0) {
return null;
}
String trackKind = nativeGetKind(nativeTrack);
if (trackKind.equals(AUDIO_TRACK_KIND)) {
return new AudioTrack(nativeTrack);
} else if (trackKind.equals(VIDEO_TRACK_KIND)) {
return new VideoTrack(nativeTrack);
} else {
return null;
}
}
final long nativeTrack;
public MediaStreamTrack(long nativeTrack) {