gpt4 book ai didi

java - camera.setPreviewDisplay(SurfaceHolder) 上的异常

转载 作者:行者123 更新时间:2023-12-01 14:45:27 26 4
gpt4 key购买 nike

这里是 Android 编程新手。

我环顾四周,发现这是一个常见问题,但我并没有真正看到一个简单的解决方案...我正在尝试在 Nexus 7 上运行以下代码(已尝试过 AVD 和物理设备)没有任何运气。似乎是:

camera.setPreviewDisplay(SurfaceHolder);

但我可能是错的。这是当前代码:

public class MainActivity extends Activity implements SurfaceHolder.Callback{

Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cameralayout);


getWindow().setFormat(PixelFormat.UNKNOWN);
surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);

}

public void onClick() {
// TODO Auto-generated method stub
if(!previewing){
camera = Camera.open();
if (camera != null){
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
previewing = true;
} catch (IOException e) {
e.printStackTrace();
}

}
}
}

大家有什么想法吗?感谢您的帮助!

最佳答案

来自android documentation关于Camera.open()

Creates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null.

它只能让您访问后置摄像头。

I am trying to run the following code on a Nexus 7

Camera.open() 返回 null,因为 Nexus 7 没有后置摄像头,只有前置摄像头。

你可以试试这个方法

public Camera getCamera()
{

for(int i = 0; i < Camera.getNumberOfCameras(); i++)
return Camera.open(i);

return null;
}

要申请,

camera = getCamera();

关于java - camera.setPreviewDisplay(SurfaceHolder) 上的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com