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