X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fai%2Fsuanzi%2Frtmpclient%2FMainActivity.java;h=16322c6e0340a94a51d6749d858741ae470e9d67;hb=refs%2Ftags%2Fv0.3.0;hp=1ad33b403c13f56fac8abf67c9c3b64c945afb0f;hpb=679195d4e27980faf7fd4ef577301b005ab054f1;p=rtmpclient.git diff --git a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java index 1ad33b4..16322c6 100644 --- a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java +++ b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java @@ -43,9 +43,9 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal private NetworkMonitor networkMonitor; private UsbMonitor mUsbMonitor; private ServiceHealthMonitor mServiceHealthMonitor; - private static final int INTERVAL = 2 * 60; // seconds + private static final int INTERVAL = 3 * 60; // seconds - boolean mBounded; + boolean mBounded = false; MyService mServer; Intent mIntent; @@ -98,7 +98,6 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal if(mUsbMonitor.hasUsbCamera()){ doBindService(); } - } }, this); @@ -135,7 +134,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal gLogger.error("onNotHealthy, in " + INTERVAL + " seconds, the publishing may stopped or have error "); doUnbindService(); doBindService(); - + //restartApplication(); } }); mServiceHealthMonitor.setInterval(INTERVAL); // 5 minutes @@ -162,7 +161,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal if(mServer.setRtmpUrl(UserInfo.getConfig().toUrl(mMacAddr))){ mServer.startPreview(mHolder); } - gLogger.debug("onServiceConnected - start health monitor thread, interval " + INTERVAL); + } }; @@ -170,6 +169,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal private void doBindService(){ gLogger.debug("doBindService"); if(!mBounded && canStartService()) { + gLogger.debug("Start service --------->"); bindService(mIntent, mConnection, BIND_AUTO_CREATE); } } @@ -177,6 +177,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal private void doUnbindService() { gLogger.debug("doUnbindService"); if(mBounded){ + gLogger.debug("Stop service <---------"); unbindService(mConnection); mBounded = false; } @@ -193,10 +194,8 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal if(NetworkMonitor.isNetworkAvailable(this) && mUsbMonitor.hasUsbCamera()){ gLogger.error("Current network is available"); doBindService(); - - } else { - gLogger.error("Current network is NOT available"); + gLogger.error("Current network NOT available or no USB Camera connected"); } mBtnStart.setText("start"); @@ -205,16 +204,13 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal public void onClick(View view){ gLogger.error("----------> onClick"); saveConfig(); - - //unbindService(mConnection); - bindService(mIntent, mConnection, BIND_AUTO_CREATE); - //doUnbindService(); - //doBindService(); + doUnbindService(); + doBindService(); } }); if(!mServiceHealthMonitor.isAlive()) { - gLogger.debug("mServiceHealthMonitor start"); + gLogger.debug("mServiceHealthMonitor start, interval " + INTERVAL); mServiceHealthMonitor.start(); } } @@ -246,7 +242,9 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal @Override protected void onDestroy(){ super.onDestroy(); + mUsbMonitor.unregisterReceiver(); unregisterReceiver(networkMonitor); + unbindService(mConnection); gLogger.debug("onDestroy --------->"); } @@ -320,7 +318,7 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal public void onCameraError(String msg){ gLogger.error("onCameraEvent " + msg); if(mUsbMonitor.hasUsbCamera()){ - mServer.reopenCamera(); + //mServer.reopenCamera(); } } @@ -334,4 +332,10 @@ public class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal gLogger.error("onPublishing: " + msg); mServiceHealthMonitor.record(); } + + private void restartApplication() { + final Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName()); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + } }