|
|
@ -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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|