我一直在研究一个简单的Android应用程序,旨在将Android Camera2 API管道中的流式相机帧传递给我的算法.我已经使用Android Camera1 API忠实地做了几个应用程序,但即使在检查(Google文档,论坛)以确认正确编码之后,我也无法从onImageAvailable()中的ImageReader捕获任何真实数据.请注意以下相关代码:
设置ImageReaders:
private void setUpCameraOutputs(int width, int height) {
[....code....]
mImageReader = ImageReader.newInstance(smallestJPEG.getWidth(),
smallestJPEG.getHeight(),
ImageFormat.JPEG, /*maxImages*/2);
// mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, null);
mPreviewImageReader = ImageReader.newInstance(smallest.getWidth(),
smallest.getHeight(),
ImageFormat.YUV_420_888, 2);
mPreviewImageReader.setOnImageAvailableListener(mOnPreviewImageAvailableListener,
mBackgroundHandler);
[....code....]
}
Run Code Online (Sandbox Code Playgroud)设置CaptureSession:
private void createCameraPreviewSession() {
try {
//Create Texture from Screen's TextureView
SurfaceTexture texture = mTextureView.getSurfaceTexture();
assert texture != null;
//Configure Default Buffer Size
texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
//Create Output Surface from Texture
Surface surface = new Surface(texture);
// Set up a CaptureRequest.Builder with the output Surface.
mPreviewRequestBuilder
= …Run Code Online (Sandbox Code Playgroud)