Index: webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
index 69172c33a1ac6458ecddaab1c4b0ef88ff8ad3b5..9c33b6159a8da75bebcccafc734d24fb9d30a448 100644 |
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java |
@@ -17,6 +17,7 @@ import android.util.Log; |
import org.appspot.apprtc.AppRTCClient.SignalingParameters; |
import org.appspot.apprtc.util.LooperExecutor; |
+import org.webrtc.AudioTrack; |
import org.webrtc.CameraEnumerationAndroid; |
import org.webrtc.DataChannel; |
import org.webrtc.EglBase; |
@@ -124,6 +125,9 @@ public class PeerConnectionClient { |
private boolean renderVideo; |
private VideoTrack localVideoTrack; |
private VideoTrack remoteVideoTrack; |
+ // enableAudio is set to true if audio should be sent. |
+ private boolean enableAudio; |
+ private AudioTrack localAudioTrack; |
/** |
* Peer connection parameters. |
@@ -252,6 +256,8 @@ public class PeerConnectionClient { |
renderVideo = true; |
localVideoTrack = null; |
remoteVideoTrack = null; |
+ enableAudio = true; |
+ localAudioTrack = null; |
statsTimer = new Timer(); |
executor.execute(new Runnable() { |
@@ -492,9 +498,7 @@ public class PeerConnectionClient { |
mediaStream.addTrack(createVideoTrack(videoCapturer)); |
} |
- mediaStream.addTrack(factory.createAudioTrack( |
- AUDIO_TRACK_ID, |
- factory.createAudioSource(audioConstraints))); |
+ mediaStream.addTrack(createAudioTrack()); |
peerConnection.addStream(mediaStream); |
if (peerConnectionParameters.aecDump) { |
@@ -605,6 +609,18 @@ public class PeerConnectionClient { |
} |
} |
+ public void setAudioEnabled(final boolean enable) { |
+ executor.execute(new Runnable() { |
+ @Override |
+ public void run() { |
+ enableAudio = enable; |
+ if (localAudioTrack != null) { |
+ localAudioTrack.setEnabled(enableAudio); |
+ } |
+ } |
+ }); |
+ } |
+ |
public void setVideoEnabled(final boolean enable) { |
executor.execute(new Runnable() { |
@Override |
@@ -749,6 +765,14 @@ public class PeerConnectionClient { |
}); |
} |
+ private AudioTrack createAudioTrack() { |
+ localAudioTrack = factory.createAudioTrack( |
+ AUDIO_TRACK_ID, |
+ factory.createAudioSource(audioConstraints)); |
+ localAudioTrack.setEnabled(enableAudio); |
AlexG
2016/03/22 16:49:20
nit: enableAudio is always true in this call? May
the sun
2016/03/23 08:25:44
Hmm, well, the role of PeerConnectionClient actual
|
+ return localAudioTrack; |
+ } |
+ |
private VideoTrack createVideoTrack(VideoCapturerAndroid capturer) { |
videoSource = factory.createVideoSource(capturer, videoConstraints); |