+ if(mListener != null) mListener.onCameraError("setPreviewDisplay - " + e.getMessage());
+ }
+ }
+
+ 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){
+ 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){
+ gLogger.error("setRtmpUrl, initEncoder error");
+ }
+ return ret == 0 ? true : false;
+ }
+
+ private void configCamera(Camera camera){
+ Camera.Parameters paras = null;
+ try {
+ paras = camera.getParameters();
+ } catch (RuntimeException e){
+ gLogger.error("configCamera - " + e.getMessage());
+ if(mListener != null) mListener.onCameraError("getParameters - " + e.getMessage());
+ return;
+ }
+ gLogger.error("Supported Picture Sizes:");
+ Camera.Size preferredSize = paras.getSupportedPictureSizes().get(0);
+ for (Camera.Size cc : paras.getSupportedPictureSizes()){
+ if (cc.width == 640) // chose 640 x 480 if exists
+ preferredSize = cc;
+ gLogger.error(cc.width + "x" + cc.height);