Rename the generated package
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / MyService.java
index d448064..0e99b88 100644 (file)
@@ -25,8 +25,7 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
     private long frameCount = 0;
 
     // Preferred picture Size of the camera;
-    private int width = 0;
-    private int height = 0;
+    private Camera.Size mPreferredSize;
 
 
     private MyServiceEventListener mListener;
@@ -42,7 +41,7 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
 
     public Camera getCameraInstance() {
         if (mCamera == null) {
-            CameraHandlerThread mThread = new CameraHandlerThread("camera thread");
+            CameraHandlerThread mThread = new CameraHandlerThread("ThreadCamera");
             synchronized (mThread) {
                 mThread.openCamera();
             }
@@ -91,6 +90,7 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
 
         synchronized void notifyCameraOpened() {
             notify();
+            gLogger.debug("notifyCameraOpened");
         }
 
         void openCamera() {
@@ -151,6 +151,7 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
         if(mCamera != null){
             try {
                 mCamera.stopPreview();
+                mCamera.setPreviewCallback(null);
                 mCamera.release();
                 mCamera = null;
             } catch (Exception e){
@@ -193,7 +194,12 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
 
     public void startPreview (SurfaceHolder holder){
         gLogger.debug("startPreview");
+        if(mCamera == null){
+            gLogger.error("startPreview - error: camera is null");
+            return;
+        }
         try {
+            mCamera.setPreviewCallback(this);
             mCamera.setPreviewDisplay(holder);
             mCamera.startPreview();
         } catch (Exception e){
@@ -214,17 +220,19 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
     }
 
     public boolean setRtmpUrl (String url){
-        //this.rtmpUrl = url;
-        if(mCamera == null){
-            gLogger.error("setRtmpUrl, error mCamera is null");
+        if(mCamera == null) {
+            gLogger.error("setRtmpUrl mCamera is null");
+            return false;
+        } else if (mPreferredSize == null) {
+            gLogger.error("setRtmpUrl mPreferredSize is null");
             return false;
         }
-        gLogger.error("setRtmpUrl - size: " +  width + "x" + height + ". url: " + url);
-        int ret = FfmpegHelper.initEncoder(width, height, url);
+        gLogger.error("setRtmpUrl - size: " +  mPreferredSize.width + "x" + mPreferredSize.height + ". url: " + url);
+        int ret = FfmpegHelper.initEncoder(mPreferredSize.width, mPreferredSize.height, url);
         if(ret != 0){
             gLogger.error("setRtmpUrl, initEncoder error");
         }
-        return ret == 0 ? true : false;
+        return ret == 0;
     }
 
     private void configCamera(Camera camera){
@@ -247,8 +255,7 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
         for(int[] i : paras.getSupportedPreviewFpsRange()){
             gLogger.error("[" + i[0] + "," + i[1] + "]");
         }
-        width = preferredSize.width;
-        height = preferredSize.height;
+        mPreferredSize = preferredSize;
         paras.setPictureSize(preferredSize.width, preferredSize.height); // use 640x480 preferred
         camera.setParameters(paras);
         camera.setDisplayOrientation(0);
@@ -257,6 +264,10 @@ public class MyService extends Service  implements Camera.PreviewCallback, Camer
         camera.setPreviewCallback(this);
     }
 
+    public Camera.Size getBestPictureSize(){
+        return mPreferredSize;
+    }
+
     // Camaer.onError callback
     @Override
     public void onError(int error, Camera camera){