gpt4 book ai didi

android - 某些时候相机对象在初始化时为空

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:36 24 4
gpt4 key购买 nike

我正在尝试使用 fragment 实现我自己的相机。一切都进行得很顺利,但最近我在谷歌开发者控制台看到崩溃报告,相机在初始化时为空。这是我如何在我的应用程序中初始化相机的代码。

/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance(int cameraType) {
Camera c = null;
try {
c = Camera.open(cameraType);
} catch (Exception e) {
e.printStackTrace();

}
return c; // returns null if camera is unavailable
}

以上代码是谷歌开发者在他们的博客上推荐的。看看相机可能会返回 null,这是我有时(并非总是)获得相机对象 null 的情况。所以我的问题是,如何正确初始化相机以避免出现空值?

注意:我在 android dev 博客上看到我正在按以下方式在 onPause 上释放相机资源。

@Override
public void onPause() {
// free up camera so that other program can use it
if (camera != null) {
camera.stopPreview();
camera.release();
paused = true;
}

// getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// // set the activity back to //whatever it needs to be when going
// back.
super.onPause();
}

我在 onResume 中以下列方式初始化相机

@Override
public void onResume() {
// resume camera
if (paused) {
paused = false;
try {
initCamera();
} catch (IOException e) {
e.printStackTrace();
}
}
super.onResume();
}

谁能告诉我为什么在极少数情况下我会得到空相机对象?

最佳答案

如果函数 Camera.open(cameraType); 返回 null,那是因为相机已经在使用中,或者它不存在。所以我认为当闪光灯应用程序正在使用相机时,或者如果其他应用程序未正确关闭它,您会收到此错误。

在您完成此 Activity 之前,您需要调用mCamera.release()

关于android - 某些时候相机对象在初始化时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165873/

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