Chromium Code Reviews| 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); |