Index: webrtc/sdk/android/api/org/webrtc/RtpReceiver.java |
diff --git a/webrtc/sdk/android/api/org/webrtc/RtpReceiver.java b/webrtc/sdk/android/api/org/webrtc/RtpReceiver.java |
index d4244ed62c1dc13a259bd79b151c22d51540679f..d72d41b60f5f745fc2cb0d3663a1568ed975f1e4 100644 |
--- a/webrtc/sdk/android/api/org/webrtc/RtpReceiver.java |
+++ b/webrtc/sdk/android/api/org/webrtc/RtpReceiver.java |
@@ -21,13 +21,20 @@ public class RtpReceiver { |
final long nativeRtpReceiver; |
private long nativeObserver; |
- private MediaStreamTrack cachedTrack; |
+ private final MediaStreamTrack cachedTrack; |
public RtpReceiver(long nativeRtpReceiver) { |
this.nativeRtpReceiver = nativeRtpReceiver; |
- long track = nativeGetTrack(nativeRtpReceiver); |
// We can assume that an RtpReceiver always has an associated track. |
- cachedTrack = new MediaStreamTrack(track); |
+ long track = nativeGetTrack(nativeRtpReceiver); |
+ String kind = MediaStreamTrack.nativeKind(track); |
+ if (kind.equals("audio")) { |
+ cachedTrack = new AudioTrack(track); |
+ } else if (kind.equals("video")) { |
+ cachedTrack = new VideoTrack(track); |
+ } else { |
+ throw new IllegalStateException("unexpected kind " + kind); |
+ } |
} |
public MediaStreamTrack track() { |