拨打视频电话时选择关闭摄像头弹出Phone报错java.lang.RuntimeException: Fail to get camera info 或 startPreview failed

java.lang.RuntimeException: Fail to get camera info

在展讯平台8810遇到过:拨打视频电话时选择关闭摄像头弹出Phone报错 的问题。

对InVideoCallScreen.java 中的 createCamera() 进行修改!!!

private void createCamera() {  
  
 //Add by kylin 2012.06.27
  if(!isShowCarme){
    mCamera = Camera.open(getCamerID());
  }
        if (mCamera != null && !isShowCarme) {
            // If the activity is paused and resumed, camera device has been
            // released and we need to open the camera.
         
         try {
                      Camera.Parameters params = mCamera.getParameters();
                      params.setSensorRotation(getSensorRotation());
                      params.set("sensororientation", 1);
                     params.set("videodatatype", "1");
                      mCamera.setParameters(params);
   
                  Log.d(LOG_TAG, "createCamera(), mCamera: " + mCamera);
                  mCamera.unlock();
   } catch (Exception e) {
    // TODO: handle exception
      e.printStackTrace();
   }
   isShowCarme = true; 
        }
     //end  
 }

 

private void closeCamera() {
        Log.v(LOG_TAG, "closeCamera");
     mHandler.removeMessages(DELAYED_CREATE_CAMERA);
        if (mCamera == null) {
            Log.d(LOG_TAG, "already stopped.");
            return;
        }
        mCamera.lock();
        mCamera.release();
     mCamera = null;
        mPreviewing = false;
        isShowCarme = false;     //Add by kylin 2012.07.10
    }

 

android camera .如果遇到 java.lang.RuntimeException: startPreview failed 。

一般Camera调用open 以及startPreview需要确保不两次调用,如果Camera.open(); 或者camera.startPreview();连续调用了多次,将可能会发生 java.lang.RuntimeException: startPreview failed;一般可以使用boolean 全局变量来记录当前camera的状态。来保证这一点。如下函数所示:

 

private void initCamera() {

        if (!isView) {

            camera = Camera.open(); 

        }

        if (camera != null && !isView) {

            try {

                Camera.Parameters myParameters = camera.getParameters();

                myParameters.setPictureFormat(ImageFormat.JPEG);

                camera.setParameters(myParameters);        

                camera.setPreviewDisplay(holder);                    

                camera.startPreview();

            } catch (IOException e) {

                e.printStackTrace();

            }

            isView = true;

        }

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值