HUAWEI P20 Lite ошибка камеры2 на снимке - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь сделать снимок с помощью телефона, но у меня появляется следующее сообщение:

E/BufferQueueProducer: [] Can not get hwsched service
I/CameraDevice-JV-0: Camera now idle
W/ImageReader_JNI: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
W/GrallocMapperPassthrough: buffer descriptor with invalid usage bits 0x2080000

Я использую следующий код:

final ImageReader reader = ImageReader.newInstance(widthPicture, heightPicture, ImageFormat.JPEG, 1);
List<Surface> outputSurfaces = new ArrayList<Surface>(2);
outputSurfaces.add(reader.getSurface());
outputSurfaces.add(new Surface(textureView.getSurfaceTexture()));

final CaptureRequest.Builder captureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(reader.getSurface());

captureBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, 100);

file = new File( Environment.getExternalStorageDirectory() + File.separator + "test.jpg");

ImageReader.OnImageAvailableListener readerListener = new ImageReader.OnImageAvailableListener() {
    @Override
    public void onImageAvailable(ImageReader imageReader) {
        Image image = null;
        try {
            image = reader.acquireLatestImage();
            ByteBuffer buffer = image.getPlanes()[0].getBuffer();
            byte[] bytes = new byte[buffer.capacity()];
            buffer.get(bytes);
            save(bytes);
            //image.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Log.d(TAG, "ERREUR 1");
        } catch (IOException e) {
            e.printStackTrace();
            Log.d(TAG, "ERREUR 2");
        }
    }

    private void save(byte[] bytes) throws IOException {
        OutputStream outputStream = null;
        try {
            outputStream = new FileOutputStream(file);
            outputStream.write(bytes);
            outputStream.close();
        }catch(IOException e){
            e.printStackTrace();
            Log.d(TAG, "ERREUR 3");
        }
    }
};

Я не понимаю эту ошибку, и я не знаю, как решить эту проблему. Я хотел бы сделать снимок HDR, но я не могу с этими ошибками

Тот же код отлично работает в S8!

...