Class 需要 API 等级 21(当前最低等级为 19):android.hardware.camera2.CameraDevice.StateCallback

Class requires API level 21 (current min is 19): android.hardware.camera2.CameraDevice.StateCallback

我只想使用纹理视图。 现在我知道纹理视图是什么了,但我在 youtube 上看到了视频,并且和视频中的一样。 但我对 Api 级别有疑问。

所以帮助我。 Infect 不知道 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) {

        }
    }

来自 android doc camera2 api 从 api 级别 21 添加。所以你不能使用它 android 版本低于 21

如果您想要以高于 ~1080p 的分辨率连拍,您将需要 camera2(当设备支持快速、全分辨率拍摄时 - 请参阅 BURST_CAPTURE capability, or any device that supports the FULL 硬件级别。)。

如果您的目标只是简单地拍摄照片和视频,旧相机 API 可以正常工作

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

你的 senario 中有 CameraView from natario1, Fotoapparat from RedApparat, camerakit-android 等第 3 方库