Add audio mute feature

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 8 years ago
parent 1dca4f2792
commit 23aab4bdd8

@ -74,6 +74,7 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
mPublisher.setPreviewResolution(640, 480); mPublisher.setPreviewResolution(640, 480);
mPublisher.setOutputResolution(720, 1280); mPublisher.setOutputResolution(720, 1280);
mPublisher.setVideoHDMode(); mPublisher.setVideoHDMode();
mPublisher.startCamera();
btnPublish.setOnClickListener(new View.OnClickListener() { btnPublish.setOnClickListener(new View.OnClickListener() {
@Override @Override

@ -18,10 +18,12 @@ public class SrsPublisher {
private static AcousticEchoCanceler aec; private static AcousticEchoCanceler aec;
private static AutomaticGainControl agc; private static AutomaticGainControl agc;
private byte[] mPcmBuffer = new byte[4096]; private byte[] mPcmBuffer = new byte[4096];
private byte[] mMuteBuffer = new byte[11];
private Thread aworker; private Thread aworker;
private SrsCameraView mCameraView; private SrsCameraView mCameraView;
private boolean sendVideoOnly = false;
private boolean sendAudioOnly = false; private boolean sendAudioOnly = false;
private int videoFrameCount; private int videoFrameCount;
private long lastTimeMillis; private long lastTimeMillis;
@ -92,11 +94,14 @@ public class SrsPublisher {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO); android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO);
mic.startRecording(); mic.startRecording();
while (!Thread.interrupted()) { while (!Thread.interrupted()) {
int size = mic.read(mPcmBuffer, 0, mPcmBuffer.length); if (sendVideoOnly) {
if (size <= 0) { mEncoder.onGetPcmFrame(mMuteBuffer, mMuteBuffer.length);
break; } else {
int size = mic.read(mPcmBuffer, 0, mPcmBuffer.length);
if (size > 0) {
mEncoder.onGetPcmFrame(mPcmBuffer, size);
}
} }
mEncoder.onGetPcmFrame(mPcmBuffer, size);
} }
} }
}); });
@ -241,6 +246,10 @@ public class SrsPublisher {
mEncoder.setVideoSmoothMode(); mEncoder.setVideoSmoothMode();
} }
public void setSendVideoOnly(boolean flag) {
sendVideoOnly = flag;
}
public void setSendAudioOnly(boolean flag) { public void setSendAudioOnly(boolean flag) {
sendAudioOnly = flag; sendAudioOnly = flag;
} }

Loading…
Cancel
Save