应用程序传递NULL表面,而拍照没有surfaceview



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

应用程序传递NULL表面

,同时执行以下代码:


    public void takePictureNoPreview(Context context){
            try {
                myCamera = Camera.open(0);
            } catch (Exception e) {
                e.printStackTrace();
                console.append("Failed to connect to cameran");
            }
            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的情况下拍摄照片,以便尽快存储并通过电子邮件发送。

我认为你应该实现接口SurfaceHolder。先回调,然后首先给holder添加callback,例如

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

我想它会好的!!

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

你不能这么做。相机有一些隐私问题。我之前在黑板上看到过这个答案但是我没有时间再查一遍了。你不能这么做,因为如果你的应用拍了一张照片他们应该知道那是什么

最新更新