fix some bug
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / MyService.java
index 2d49e9c..d448064 100644 (file)
@@ -71,7 +71,8 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
             }
             if(frontId != -1) camerId = frontId;
             else if(backId != -1) camerId = backId;
-            mCamera = Camera.open(camerId);
+            gLogger.debug("openCameraOriginal - camera id " + camerId);
+            mCamera = Camera.open(1);
         } catch (Exception e) {
             gLogger.error("openCameraOriginal - camera is not available. error: " + e.getMessage());
             if(mListener != null) mListener.onCameraError("openCamera - error: " + e.getMessage());
@@ -148,8 +149,14 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
         gLogger.error( "onDestroy --------->");
         Toast.makeText(this, "MyService Stopped", Toast.LENGTH_LONG).show();
         if(mCamera != null){
-            mCamera.stopPreview();
-            mCamera.release();
+            try {
+                mCamera.stopPreview();
+                mCamera.release();
+                mCamera = null;
+            } catch (Exception e){
+                gLogger.error("onDestroy - error " + e.getMessage());
+                e.printStackTrace();
+            }
         }
     }
 
@@ -197,16 +204,21 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
     }
 
     public void reopenCamera() {
+        gLogger.debug("reopenCamera");
         if(mCamera != null){
             mCamera.stopPreview();
             mCamera.release();
+            mCamera = null;
         }
         openCameraOriginal();
     }
 
     public boolean setRtmpUrl (String url){
         //this.rtmpUrl = url;
-        if(mCamera == null) return false;
+        if(mCamera == null){
+            gLogger.error("setRtmpUrl, error mCamera is null");
+            return false;
+        }
         gLogger.error("setRtmpUrl - size: " +  width + "x" + height + ". url: " + url);
         int ret = FfmpegHelper.initEncoder(width, height, url);
         if(ret != 0){