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

时间:2019-04-04 03:13:44

标签: android android-camera2

我只想使用纹理视图。 现在,我知道纹理视图是什么,但是我在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) {

        }
    }

1 个答案:

答案 0 :(得分:0)

从API级别21添加的android doc camera2 api开始,因此您不能在21以下的android版本使用它

如果您希望在以下情况下进行连拍,则需要使用camera2(支持快速,全分辨率捕获的设备-请参阅BURST_CAPTURE功能或支持FULL硬件级别的任何设备。)分辨率高于〜1080p。

如果仅定位简单捕获的照片和视频,则旧相机API可以正常工作

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

您的senario中有natario1中的CameraView,RedApparat中的Fotoapparatcamerakit-android等第三方库