gpt4 book ai didi

Android:相机 View - 当我不使用已弃用的方法时应用程序崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:40:43 24 4
gpt4 key购买 nike

在我的应用中,我正在尝试设置相机。我的类扩展了 SurfaceView 并实现了 SurfaceHolder.Callback 方法。

这是我的一些类(class):

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder mHolder;
private Camera.Parameters cameraParameters;
private Camera camera;

public CameraPreview(Context context) {
super(context);
mHolder = this.getHolder();
mHolder.addCallback(this);
// If this is deprecated, why do I still need it?
// It says deprecated, but app crashes when removed.
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();

Camera.Size previewSize = previewSizes.get(0);
parameters.setPreviewSize(previewSize.width, previewSize.height);
camera.setParameters(parameters);

try {
camera.stopPreview();
camera.setPreviewDisplay(mHolder);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
cameraParameters = camera.getParameters();
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
camera = null;
}
}

我的问题涉及构造函数中的“setType”方法。 API 声称该方法已弃用并被忽略。但是,如果我注释掉那一行,当我调用 camera.startPreview() 时整个应用程序就会崩溃。我想弄清楚这是为什么。如果它被忽略,那么我用那个方法做了什么都无关紧要。这意味着此实现存在一些非常错误的地方。

我运行的是 Android 2.2 软件。

如有任何帮助,我们将不胜感激。

最佳答案

Android 2.2 sdk setType 方法没有被弃用,因为我已经用过了。

所以可能会有其他场景的变化。

(1) 检查你导入的包是android.hardware.Camera。(2) 检查 list 文件中为相机添加的所有权限。

关于Android:相机 View - 当我不使用已弃用的方法时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310764/

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