Camera21中Camera.PreviewCallback是否與API 21等效,比映射到SurfaceTexture並拉動位圖要好?我需要能夠將預覽數據作爲YUV從相機中取出?相機2中Camera.PreviewCallback等效API
回答
您可以從Google的Camera2Basic示例代碼開始。
您需要將ImageReader
的表面添加爲目標,以預覽捕獲請求:
//set up a CaptureRequest.Builder with the output Surface
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.addTarget(surface);
mPreviewRequestBuilder.addTarget(mImageReader.getSurface());
之後,您可以檢索在ImageReader.OnImageAvailableListener
圖像:
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image image = null;
try {
image = reader.acquireLatestImage();
if (image != null) {
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
Bitmap bitmap = fromByteBuffer(buffer);
image.close();
}
} catch (Exception e) {
Log.w(LOG_TAG, e.getMessage());
}
}
};
要獲得a Bitmap
來自ByteBuffer
:
Bitmap fromByteBuffer(ByteBuffer buffer) {
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes, 0, bytes.length);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
是的,使用ImageReader類。
使用ImageFormat.YUV_420_888格式和您想要的尺寸創建一個ImageReader(請確保選擇了您使用的相機設備支持的尺寸)。
然後使用ImageReader.getSurface()爲Surface提供CameraDevice.createCaptureSession()以及其他預覽輸出(如果有)。
最後,在您的重複捕獲請求中,將ImageReader提供的表面添加爲目標,然後將其設置爲捕獲會話中的重複請求。
@ Eddy Tal當我像mPreviewRequestBuilder.addTarget(mImageReader.getSurface())添加目標時;它凍結了表面。 – user1154390 2015-12-19 14:20:03
你在logcat中遇到什麼錯誤?你是否將表面添加到createCaptureSession調用中? – 2015-12-20 18:34:57
是爲createCaptureSession中的輸出設置兩個表面。 Logcat不顯示任何錯誤。它直接鎖定,但從前兩天卡住。 – user1154390 2015-12-20 18:55:16
- 1. android最低api等級的相機
- 2. 相機和相機2之間有什麼區別API
- 3. 相機2 Api預覽延伸
- 4. Android相機API
- 5. Android相機API
- 6. 相機2 - 在相機2中調用「openCamera」方法時,應用程序將最小化API
- 7. Symfony 2中的等效字段驗證
- 8. Angular 2中的等效視圖
- 9. ScriptIntrinsicBLAS等效於API 17
- 10. ajaxSetup()等效於提取API
- 11. 如何區分imageReader相機API 2中的NV21和YV12編碼?
- 12. getCurrentPosition()等效於錄音機
- 13. 具有2列相等值
- 14. 相機遠程API:相機+ iPad + PC?
- 15. 使用Camera.PreviewCallback實現時,攝像機onPreviewFrame未調用
- 16. Z3中的define-fun等效API
- 17. Google Tag Manager PHP API中dataLayer.push的等效
- 18. 相機API示例?
- 19. 瞭解相機API
- 20. 相機android API 13
- 21. IOS sdk 4.3和鏡像,模糊,熱敏等相機效果?
- 22. Android平板電腦相機/ dev/video0的等效物是什麼?
- 23. 關於cocos2d等距相機
- 24. 在Android 4.2.2(API等級17)上失敗的Android相機
- 25. GET請求 - 無效的主機 - ASP Web API 2
- 26. 在Android中使用相機api打開相機
- 27. 在android中使用相機Api打開相機
- 28. 相機變焦效果
- 29. Unity相機動畫無效?
- 30. Ionic 2相機錯誤
它凍結了Textureview。 (mPreviewRequestBuilder.addTarget(mImageReader.getSurface());) – user1154390 2015-12-19 12:54:31