SurfaceTexture Android Camera2

时间:2019-04-08 20:39:05

标签: java android

晚安

有人知道一种创建表面纹理的方法,就好像它是可以通过使用getSurfaceTexture()方法的TextureView获得的表面纹理一样

mTextureView.getSurfaceTexture()

我正在尝试使代码在没有预览的情况下使用Api camera2录制(仅使用按钮),但是使用我创建的surfaceTexture而不使用Textureview录制的视频通常效果很好,大约5倍秒,然后视频的其余时间就是该冻结帧。 (我使用的mPreview尺寸是通过google示例的selectOptimalSize()获得的,其中手机屏幕的尺寸用作宽度和高度)

SurfaceTexture texture = new SurfaceTexture(0);
texture.setDefaultBufferSize(mPreviewSize.getWidth(),mPreviewSize.getHeight());
mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
List<Surface> surfaces = new ArrayList<>();


Surface previewSurface = new Surface(texture);
surfaces.add(previewSurface);
mPreviewBuilder.addTarget(previewSurface);


// Set up Surface for the MediaRecorder
Surface recorderSurface = mMediaRecorder.getSurface();
surfaces.add(recorderSurface);
mPreviewBuilder.addTarget(recorderSurface);

0 个答案:

没有答案