[英]Android camera preview callback buffer not filled: is always full of zeros
當Camera.PreviewCallback#onPreviewFrame
確實被調用時,相機不會填充傳遞的byte[]
緩沖區:它始終充滿零。
我使用不推薦使用的API的原因是,使用較新的API時幀率非常低。 由於我的相機被認為是LEGACY
,因此建議嘗試不推薦使用的API。
我的代碼,確實調用了回調,但是緩沖區為空:
camera = Camera.open();
camera.setParameters(configurator.getParameters());
Size size = configurator.getOutputSize();
camera.addCallbackBuffer(new byte[size.getWidth() * size.getHeight() * ImageFormat.getBitsPerPixel(ImageFormat.YV12) / 8]);
camera.setPreviewCallbackWithBuffer(this);
camera.startPreview();
我在日志中看到的一件奇怪的事情是:當我調用camera.setPreviewCallbackWithBuffer(this);
,將顯示以下調試消息: D/Camera-JNI: (tid:3466)[release camera] - X context=0x0
。
同樣,所有對緩沖區的修改都將被清除:在每次調用回調之前,緩沖區實際上都是用零填充的。
問題是與曝光時間相比光線不足:我將預覽FPS范圍設置為最大,但與房間的照明相比,這導致曝光時間太短。 結果是黑色的圖像,除非我直接將相機對准光源。 將FPS范圍更改為較低的值可以解決我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.