java.lang.RuntimeException:无法获取摄像头信息

 给力的饼干_235 发布于 2023-01-18 12:00

在我的PhotoCaptureActivity.java的onCreate()中,我有:

OrientationEventListener oeL = new  OrientationEventListener(this) {        
            public void onOrientationChanged(int orientation) {
                 if (orientation == ORIENTATION_UNKNOWN) return;
                 try {
                     android.hardware.Camera.CameraInfo info =
                            new android.hardware.Camera.CameraInfo();                
                     android.hardware.Camera.getCameraInfo(currentCameraId, info);
                     orientation = (orientation + 45) / 90 * 90;
                     int rotation = 0;
                     if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
                         rotation = (info.orientation - orientation + 360) % 360;
                     } else {  // back-facing camera
                         rotation = (info.orientation + orientation) % 360;
                     }
                     if(camera != null) {
                         Camera.Parameters parameters = camera.getParameters();
                         parameters.setRotation(rotation);
                         savingRotation = rotation;
                     }
                 } catch(Exception e) {
                     return;
                 }
            }
         };
         oeL.enable();

此行发生异常: android.hardware.Camera.getCameraInfo(currentCameraId, info);

java.lang.RuntimeException: Fail to get camera info
       at android.hardware.Camera.getCameraInfo(Camera.java)
       at cic.signin.macio.jun.activities.PhotoCaptureActivity$3.onOrientationChanged(PhotoCaptureActivity.java:70)
       at android.view.OrientationEventListener$SensorEventListenerImpl.onSensorChanged(OrientationEventListener.java:143)
       at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:584)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:137)
       at android.app.ActivityThread.main(ActivityThread.java:4424)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:511)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
       at dalvik.system.NativeStart.main(NativeStart.java)

我的问题是:如果在OrientationEventListener的onOrientationChanged()中调用android.hardware.Camera.getCameraInf(currentCameraId,info)过于频繁而导致异常?如何解决这个问题?顺便说一下,这个例外没有发生在4.0和4.1上,只发生在某些设备上.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有