Skip to content
Snippets Groups Projects
Commit 64f1ac15 authored by Leo Ma's avatar Leo Ma
Browse files

Settle API


Signed-off-by: default avatarLeo Ma <begeekmyfriend@gmail.com>
parent 39e83cd8
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -88,11 +88,11 @@ public class SrsCameraView extends SurfaceView implements SurfaceHolder.Callback
return new int[] { mPreviewWidth, mPreviewHeight };
}
public void enableEncoding() {
private void enableEncoding() {
mIsEncoding = true;
}
public void disableEncoding() {
private void disableEncoding() {
mIsEncoding = false;
}
Loading
Loading
@@ -104,6 +104,8 @@ public class SrsCameraView extends SurfaceView implements SurfaceHolder.Callback
}
}
enableEncoding();
Camera.Parameters params = mCamera.getParameters();
int[] range = adaptFpsRange(SrsEncoder.VFPS, params.getSupportedPreviewFpsRange());
params.setPreviewFpsRange(range[0], range[1]);
Loading
Loading
Loading
Loading
@@ -17,7 +17,6 @@ public class SrsPublisher {
private static AcousticEchoCanceler aec;
private static AutomaticGainControl agc;
private byte[] mPcmBuffer = new byte[4096];
private boolean aloop = false;
private Thread aworker;
private SrsCameraView mCameraView;
Loading
Loading
@@ -66,11 +65,7 @@ public class SrsPublisher {
mCameraView.stopCamera();
}
public void startEncode() {
if (!mEncoder.start()) {
return;
}
public void startAudio() {
mic = mEncoder.chooseAudioRecord();
if (mic == null) {
return;
Loading
Loading
@@ -90,19 +85,62 @@ public class SrsPublisher {
}
}
mCameraView.enableEncoding();
aworker = new Thread(new Runnable() {
@Override
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO);
startAudio();
mic.startRecording();
while (!Thread.interrupted()) {
int size = mic.read(mPcmBuffer, 0, mPcmBuffer.length);
if (size <= 0) {
break;
}
mEncoder.onGetPcmFrame(mPcmBuffer, size);
}
}
});
aloop = true;
aworker.start();
}
public void stopAudio() {
if (aworker != null) {
aworker.interrupt();
try {
aworker.join();
} catch (InterruptedException e) {
aworker.interrupt();
}
aworker = null;
}
if (mic != null) {
mic.setRecordPositionUpdateListener(null);
mic.stop();
mic.release();
mic = null;
}
if (aec != null) {
aec.setEnabled(false);
aec.release();
aec = null;
}
if (agc != null) {
agc.setEnabled(false);
agc.release();
agc = null;
}
}
public void startEncode() {
if (!mEncoder.start()) {
return;
}
startAudio();
}
public void stopEncode() {
stopAudio();
stopCamera();
Loading
Loading
@@ -213,56 +251,10 @@ public class SrsPublisher {
} else {
mEncoder.setCameraFrontFace();
}
mCameraView.enableEncoding();
mCameraView.startCamera();
}
}
private void startAudio() {
if (mic != null) {
mic.startRecording();
while (aloop && !Thread.interrupted()) {
int size = mic.read(mPcmBuffer, 0, mPcmBuffer.length);
if (size <= 0) {
break;
}
mEncoder.onGetPcmFrame(mPcmBuffer, size);
}
}
}
private void stopAudio() {
aloop = false;
if (aworker != null) {
aworker.interrupt();
try {
aworker.join();
} catch (InterruptedException e) {
aworker.interrupt();
}
aworker = null;
}
if (mic != null) {
mic.setRecordPositionUpdateListener(null);
mic.stop();
mic.release();
mic = null;
}
if (aec != null) {
aec.setEnabled(false);
aec.release();
aec = null;
}
if (agc != null) {
agc.setEnabled(false);
agc.release();
agc = null;
}
}
public void setRtmpHandler(RtmpHandler handler) {
mFlvMuxer = new SrsFlvMuxer(handler);
if (mEncoder != null) {
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment