使用面部滤镜录制视频
Record video with face filter
从过去两周开始,我一直在努力构建还可以录制视频的实时面部滤镜应用程序,但遗憾的是我还没有成功。目前,我正在使用 ` 来渲染实时面部位置。
我也想在录制时录制那个矩形视图。如果有人做过这种工作,请告诉我。
好吧,我可以使用 android.media.FaceDetector
class 实时检测人脸,但问题在于记录。为了渲染面部位置,我使用 SurfaceView
,其中在 surfaceChanged
方法中,我准备了我的相机资源并将帧保存在视频文件中,但由于同时执行这些多个任务,应用程序缺少并且只有视频录制正在工作。
这是我的代码:
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) {
// We have no surface, return immediately:
if (surfaceHolder.getSurface() == null) {
return;
}
// if (!button.isChecked()) {
mCamera.stopPreview();
configureCamera(width, height);
setDisplayOrientation();
setErrorCallback();
// Create media.FaceDetector
float aspect = (float) previewHeight / (float) previewWidth;
fdet = new android.media.FaceDetector(prevSettingWidth, (int) (prevSettingWidth * aspect), MAX_FACE);
// Everything is configured! Finally start the camera preview again:
startPreview();
// }
if (isRecording)
prepareRecorder(mView.getHolder());
}
谢谢:)
从过去两周开始,我一直在努力构建还可以录制视频的实时面部滤镜应用程序,但遗憾的是我还没有成功。目前,我正在使用 ` 来渲染实时面部位置。 我也想在录制时录制那个矩形视图。如果有人做过这种工作,请告诉我。
好吧,我可以使用 android.media.FaceDetector
class 实时检测人脸,但问题在于记录。为了渲染面部位置,我使用 SurfaceView
,其中在 surfaceChanged
方法中,我准备了我的相机资源并将帧保存在视频文件中,但由于同时执行这些多个任务,应用程序缺少并且只有视频录制正在工作。
这是我的代码:
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) {
// We have no surface, return immediately:
if (surfaceHolder.getSurface() == null) {
return;
}
// if (!button.isChecked()) {
mCamera.stopPreview();
configureCamera(width, height);
setDisplayOrientation();
setErrorCallback();
// Create media.FaceDetector
float aspect = (float) previewHeight / (float) previewWidth;
fdet = new android.media.FaceDetector(prevSettingWidth, (int) (prevSettingWidth * aspect), MAX_FACE);
// Everything is configured! Finally start the camera preview again:
startPreview();
// }
if (isRecording)
prepareRecorder(mView.getHolder());
}
谢谢:)