app传递NULL表面,同时拍摄没有surfaceview的图片

时间:2013-06-05 16:47:07

标签: android camera jpeg surfaceview

我正在写一个Android应用程序。我遇到以下问题:

app传递了NULL表面

执行以下代码时:



    public void takePictureNoPreview(Context context){
            try {
                myCamera = Camera.open(0);
            } catch (Exception e) {
                e.printStackTrace();
                console.append("Failed to connect to camera\n");
            }
            if(myCamera!=null){
                SurfaceView dummy=new SurfaceView(context);
                try {
                    myCamera.setPreviewDisplay(dummy.getHolder());
                    myCamera.startPreview(); 
                    myCamera.takePicture(null, null, getJpegCallback());
                } 
                catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }    
                finally
                {
                    myCamera.stopPreview();
                    myCamera.release();
                }
            }  


主要目标是拍摄没有surfaceview的照片,以便尽快存储并通过电子邮件发送。

提前致谢。

2 个答案:

答案 0 :(得分:3)

我认为你应该首先实现SurfaceHolder.Callback接口, 然后首先向持有者添加回调, e.g。

mHolder.addCallback(callback)
myCamera.setPreviewDisplay(mHolder);
myCamera.startPreview(); 

我认为没关系!!

如果您有任何问题,可以参考 1.my https://github.com/RyanLiuNtust/Lecture-of-Android/tree/camera_lecture

答案 1 :(得分:0)

你不能这样做。相机存在一些隐私问题。我之前在其中一个电路板上看到了这个答案,但我没有时间再次回答这个问题。你不能这样做,因为如果你的应用程序拍摄了一些他们应该能够知道它是什么的图片。