Android 华为P20 Lite错误照相机2正在拍照
我试图用手机拍照,但我收到以下信息:Android 华为P20 Lite错误照相机2正在拍照,android,android-camera2,Android,Android Camera2,我试图用手机拍照,但我收到以下信息: 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/GrallocMapperPassthrou
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");
}
}
};
final ImageReader=ImageReader.newInstance(widthPicture,heightPicture,ImageFormat.JPEG,1);
List outputSurfaces=新的ArrayList(2);
add(reader.getSurface());
添加(新曲面(textureView.getSurfaceTexture());
final CaptureRequest.Builder captureBuilder=cameraDevice.createCaptureRequest(cameraDevice.TEMPLATE\u STILL\u CAPTURE);
addTarget(reader.getSurface());
captureBuilder.set(CaptureRequest.SENSOR_灵敏度,100);
file=新文件(Environment.getExternalStorageDirectory()+file.separator+“test.jpg”);
ImageReader.OnImageAvailableListener readerListener=新建ImageReader.OnImageAvailableListener(){
@凌驾
公共图像可用(图像阅读器图像阅读器){
图像=空;
试一试{
image=reader.acquiredlatestimage();
ByteBuffer buffer=image.getPlanes()[0].getBuffer();
字节[]字节=新字节[buffer.capacity()];
buffer.get(字节);
保存(字节);
//image.close();
}catch(filenotfounde异常){
e、 printStackTrace();
日志d(标签“错误1”);
}捕获(IOE异常){
e、 printStackTrace();
日志d(标签“错误2”);
}
}
私有void save(字节[]字节)引发IOException{
OutputStream OutputStream=null;
试一试{
outputStream=新文件outputStream(文件);
outputStream.write(字节);
outputStream.close();
}捕获(IOE异常){
e、 printStackTrace();
日志d(标签“错误3”);
}
}
};
我不明白这个错误,我不知道如何解决这个问题,我想使hdr图片,但我不能与这个错误
同样的代码在S8中完美地工作 阅读关于在您的清单中添加android:hardwareAccelerated=“true”的内容,这就是为什么某些设备比其他设备更贵的原因阅读关于在您的清单中添加android:hardwareAccelerated=“true”的内容,这就是为什么某些设备比其他设备更贵的原因