import ai.suanzi.rtmpclient.MyService.LocalBinder;
import android.os.IBinder;
+import android.net.ConnectivityManager;
//"rtmp://gpussh.suanzi.ai:1935/myapp/suanzi_ac83f34ead90_cameraid";
private String mMacAddr = "";
//private CameraView mCameraView;
private String mRtmpUrl;
+ private NetworkMonitor networkMonitor;
boolean mBounded;
MyService mServer;
mSufaceView = findViewById(R.id.surfaceView);
mHolder = mSufaceView.getHolder();
mHolder.addCallback(this);
-
-
//intent.setPackage(this.getPackageName()); // init service
//intent.setAction("ai.suanzi.rtmpclient.service");
}
if(mServer.setRtmpUrl(UserInfo.getConfig().toUrl())){
mServer.startPreview(mHolder);
}
-
}
};
+ private void doBindService(){
+ if(!mBounded) {
+ gLogger.debug("doBindService");
+ bindService(mIntent, mConnection, BIND_AUTO_CREATE);
+ }
+ }
+
+ private void doUnbindService() {
+ if(mBounded){
+ gLogger.debug("doUnbindService");
+ unbindService(mConnection);
+ mBounded = false;
+ }
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//startService(intent);
mIntent = new Intent(this, MyService.class);
- bindService(mIntent, mConnection, BIND_AUTO_CREATE);
-
+ if(NetworkMonitor.isNetworkAvailable(this)){
+ gLogger.error("Current network is available");
+ doBindService();
+ } else {
+ gLogger.error("Current network is NOT available");
+ }
mBtnStart.setText("start");
mBtnStart.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
gLogger.error("----------> onClick");
saveConfig();
- unbindService(mConnection);
- bindService(mIntent, mConnection, BIND_AUTO_CREATE);
+ doUnbindService();
+
}
});
+
+ if ( networkMonitor == null) {
+ networkMonitor = new NetworkMonitor(new NetworkMonitor.NetworkListener() {
+ @Override
+ public void onWifiConnected() {
+ gLogger.error("onWifiConnected");
+ doBindService();
+ }
+
+ @Override
+ public void onWifiDisconnected() {
+ gLogger.error("onWifiDisconnected");
+ doUnbindService();
+ }
+
+ @Override
+ public void onWifiEnabled() {
+ gLogger.error("onWifiEnabled");
+ }
+
+ @Override
+ public void onWifiDisabled() {
+ gLogger.error("onWifiDisabled");
+ }
+ });
+ }
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
+ registerReceiver(networkMonitor, filter);
}
@Override
@Override
protected void onDestroy(){
super.onDestroy();
+ unregisterReceiver(networkMonitor);
gLogger.debug("onDestroy --------->");
}
gLogger.debug("onRestart ---------->");
}
-
-
-
// SurfaceHolder.Callback implementation
@Override
public void surfaceCreated(final SurfaceHolder holder){
private void loadConfig() {
UserInfo info = UserInfo.getConfig();
- mTextServer.setText(info.server);
+ gLogger.error("server is:" + info.server);
+ mTextServer.setText(info.server.equals("") ? "rtmp://gpussh.suanzi.ai:1935/myapp" : info.server);
mTextUser.setText(info.user);
mTextCamera.setText(info.cameraId);
//mMacAddr = info.macAddr.equals("") ? this.mMacAddr : info.macAddr;
i.addCategory(Intent.CATEGORY_HOME);
this.startActivity(i);
}
-
-//
-// // class StreamTask AsyncTask
-// private class StreamTask extends AsyncTask<Void, Void, Void>{
-// private byte[] data;
-//
-// StreamTask(byte[] data){
-// this.data = data;
-// }
-//
-// @Override
-// protected Void doInBackground(Void... params) {
-//
-// if (this.data != null){
-// Log.e(TAG, "fps: " + mCamera.getParameters().getPreviewFrameRate());
-// ffmpeg.process(this.data);
-// }
-// return null;
-// }
-// }
-
- /*if (null != mStreamTask){
- switch (mStreamTask.getStatus()){
- case RUNNING:
- Log.e(TAG, "onPreviewFrame Running");
- return;
- case PENDING:
- Log.e(TAG,"OnPreviewFrame Pending");
- mStreamTask.cancel(false);
- break;
- }
- }
- mStreamTask = new StreamTask(data);
- mStreamTask.execute((Void)null);
-*/
-
-// ong endTime = System.currentTimeMillis();
-// mExecutor.execute(new Runnable() {
-// @Override
-// public void run() {
-// //long encodeTime = System.currentTimeMillis();
-// ffmpeg.process(data);
- //Log.e(TAG, "编码第:" + (encodeCount++) + "帧,耗时:" + (System.currentTimeMillis() - encodeTime));
-// }
-// });
- //Log.e(TAG, "采集第:" + (++count) + "帧,距上一帧间隔时间:"
-// + (endTime - previewTime) + " " + Thread.currentThread().getName());
-// previewTime = endTime;*/
-
-
-
}