Modify network weak exception as event handler

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 9 years ago
parent cf0ec99282
commit 4adb67785b

@ -236,6 +236,28 @@ public class MainActivity extends Activity {
}
});
mPublisher.setNetworkEventHandler(new SrsEncoder.EventHandler() {
@Override
public void onNetworkResume(final String msg) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onNetworkWeak(final String msg) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
});
}
});
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {

@ -44,6 +44,8 @@ public class SrsEncoder {
private MediaCodec.BufferInfo vebi = new MediaCodec.BufferInfo();
private MediaCodec.BufferInfo aebi = new MediaCodec.BufferInfo();
private EventHandler mHandler;
private boolean networkWeakTriggered = false;
private boolean mCameraFaceFront = true;
private boolean useSoftEncoder = false;
@ -56,6 +58,13 @@ public class SrsEncoder {
private int audioFlvTrack;
private int audioMp4Track;
public interface EventHandler {
void onNetworkResume(String msg);
void onNetworkWeak(String msg);
}
// Y, U (Cb) and V (Cr)
// yuv420 yuv yuv yuv yuv
// yuv420p (planar) yyyy*2 uu vv
@ -79,6 +88,10 @@ public class SrsEncoder {
this.mp4Muxer = mp4Muxer;
}
public void setNetworkEventHandler(EventHandler handler) {
mHandler = handler;
}
public boolean start() {
if (flvMuxer == null || mp4Muxer == null) {
return false;
@ -340,9 +353,14 @@ public class SrsEncoder {
new IllegalArgumentException("libyuv failure"));
}
}
if (networkWeakTriggered) {
networkWeakTriggered = false;
mHandler.onNetworkResume("Network resume");
}
} else {
Thread.getDefaultUncaughtExceptionHandler().uncaughtException(Thread.currentThread(),
new IOException("Network is weak"));
mHandler.onNetworkWeak("Network weak");
networkWeakTriggered = true;
}
}

@ -318,6 +318,10 @@ public class SrsPublisher implements SurfaceHolder.Callback, Camera.PreviewCallb
mEncoder.setMp4Muxer(mMp4Muxer);
}
public void setNetworkEventHandler(SrsEncoder.EventHandler handler) {
mEncoder.setNetworkEventHandler(handler);
}
public void setSurfaceView(SurfaceView surfaceView) {
mCameraView = surfaceView;
mCameraView.getHolder().addCallback(this);

Loading…
Cancel
Save