首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SurfaceView crashing的相机应用程序

使用SurfaceView crashing的相机应用程序
EN

Stack Overflow用户
提问于 2011-11-15 14:52:14
回答 1查看 1.1K关注 0票数 0

在SurfaceCreated中的setPreviewDisplay(持有者),应用程序崩溃了(在任何东西开始之前,有一个对话框必须被强制关闭,然后应用程序退出),我不知道为什么。请给我建议。下面是我的代码。

代码语言:javascript
复制
  public void onCreate(Bundle savedInstanceState) { 
       cameraPreview = new CameraPreview();//CameraPreview has a methos to open the Camera
       cameraObject = CameraPreview.getCameraInstance();
       mHolder = previewSurface.getHolder();//previewSurface is the SurfaceView declared in XML and then I'm doinf findViewById
       mHolder.addCallback(this);

}

   public void surfaceCreated(SurfaceHolder holder) {        

    // The Surface has been created, now tell the camera where to draw the preview.       
   try {           
            cameraObject.setPreviewDisplay(holder);  //CRASHES HERE         
           //cameraObject.startPreview();       
        } catch (IOException e) {   
            Log.d(TAG, "Error setting camera preview: " + e.getMessage());       
        }   
}  

public void surfaceDestroyed(SurfaceHolder holder) {       
    // empty. Take care of releasing the Camera preview in your activity.    
}

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        // If your preview can change or rotate, take care of those events here.       
        // Make sure to stop the preview before resizing or reformatting it.        
        if (mHolder.getSurface() == null){         
            // preview surface does not exist         
                return;        
            }        
        // stop preview before making changes       
        try {            
            cameraObject.stopPreview();      
            } catch (Exception e){         
                   // ignore: tried to stop a non-existent preview     
            }      
            // make any resize, rotate or reformatting changes here     
            // start preview with new settings    
            try {           
                cameraObject.setPreviewDisplay(mHolder);       
                cameraObject.startPreview();        
                } catch (Exception e){      
                       Log.d(TAG, "Error starting camera preview: " + e.getMessage());     
                }   
}

EN

回答 1

Stack Overflow用户

发布于 2011-11-16 13:53:57

在surfaceCreated中,就在setPreviewDisplay之前,它需要Camera.open,然后在camera对象上调用上述方法。在这两个语句之间不能有任何其他语句,否则它会崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8132530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档