类需要API级别21(当前最小值为19):android.hardware.camera2.CameraDevice.StateCallback

类需要API级别21(当前最小值为19):android.hardware.camera2.CameraDevice.StateCallback,android,android-camera2,Android,Android Camera2,我只想使用纹理视图。 现在我知道了纹理视图这是什么,但我在youtube上看到了视频,并且做了与视频中相同的事情。 但是我对Api级别有一个问题 所以帮帮我吧。 感染者不知道api级别这是什么,它有多重要 TextureView.SurfaceTextureListener textureListener = new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTe

我只想使用纹理视图。 现在我知道了纹理视图这是什么,但我在youtube上看到了视频,并且做了与视频中相同的事情。 但是我对Api级别有一个问题

所以帮帮我吧。 感染者不知道api级别这是什么,它有多重要

TextureView.SurfaceTextureListener textureListener = new   TextureView.SurfaceTextureListener() {
        @Override
        public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
            Toast.makeText(MainActivity.this, "texture is available", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {

        }

        @Override
        public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
            return false;
        }

        @Override
        public void onSurfaceTextureUpdated(SurfaceTexture surface) {

        }
    };
    private CameraDevice cameraDevice;
    private CameraDevice.StateCallback stateCallback = new CameraDevice.StateCallback() {
        @Override
        public void onOpened( CameraDevice camera) {

        }

        @Override
        public void onDisconnected( CameraDevice camera) {

        }

        @Override
        public void onError( CameraDevice camera, int error) {

        }
    }
从camera2 api添加到api级别21。所以你不能使用低于21的android版本

如果您想要分辨率高于~1080p的突发,则需要camera2(当设备支持快速、全分辨率捕获时,请参阅该功能或任何支持硬件级别的设备)

如果您的目标仅是简单的拍摄照片和视频,那么旧的camera API可以正常工作

您可以查看非官方支持库,并根据需要对其进行修改。它支持两种API,根据设备的API级别进行选择


您的senario中有natario1、RedApparat等第三方库

您必须将gradle文件中的
minSdkVersion
从19更改为21,然后同步您的项目。请理解@Tommy所说的操作将阻止您在Android v4.4(Kitkat)上运行。要将KitKat保持为最低版本,您需要完全不使用Camera2API,或者仅在版本号足够高的情况下使用它们,如果版本号不够高,则删除该功能。