【发布时间】:2019-06-03 03:16:53
【问题描述】:
我的用例是当用户开始录制视频时,我需要录制视频并使用 Firebase 人脸检测处理帧内用户脸部的预览帧。我已尝试按照以下方式进行操作,但某些预览已暂停。
我正在使用googlesamples/android-Camera2Video 代码库,并在其中添加了以下代码。
Camera2VideoFragment 类内部:
private ImageReader mYUVImageReader;
private final ImageReader.OnImageAvailableListener mOnYUVImageAvailableListener
= new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Log.d(Camera2VideoFragment.TAG, "Bipin - onImageAvailable ");
}
}
openCamera 方法内部:
mYUVImageReader = ImageReader
.newInstance(mPreviewSize.getWidth()/16, mPreviewSize.getHeight()/16,ImageFormat.YUV_420_888, 2);
mYUVImageReader.setOnImageAvailableListener(
mOnYUVImageAvailableListener, mBackgroundHandler);
startRecording 方法内部:
Surface imageSurface = mYUVImageReader.getSurface();
surfaces.add(imageSurface);
mPreviewBuilder.addTarget(imageSurface);
我也尝试在 startPreview 中设置imageSurface 但没有运气,面对相同的预览仍然存在问题。请提供您的意见或纠正我关于这种情况的最佳方法是什么?
此处的演示应用代码:https://github.com/bipinvaylu/Camera2Demo/tree/bipin
更新日期:[2019 年 1 月 10 日] 我已将其重命名为 mYUVImageReader,请在此处查找详细信息: 初始化:https://github.com/bipinvaylu/Camera2Demo/blob/bipin/app/src/main/java/com/camerademo/Camera2VideoFragment.java#L477 在此处添加 ImageReaderSurface:https://github.com/bipinvaylu/Camera2Demo/blob/bipin/app/src/main/java/com/camerademo/Camera2VideoFragment.java#L540
我主要关心的是,是否可以通过使用同时向预览表面 (mTextureView.getSurfaceTexture())、记录 (mMediaRecorder.getSurface()) 和连续图像 (mYUVImageReader.getSurface()) 提供输出相机 2 API?
【问题讨论】:
标签: android face-detection android-camera2