我正在使用MediaRecorder和Camera类来预览和捕获视频。我的问题是,我不确定如何确保用户在录制过程中看到的内容与最终录制的视频相匹配。我的第一个想法是通过迭代相机支持的预览大小,直到找到一个最好的大小,也与我设置给MediaRecorder的视频大小的宽高比相匹配:
camProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
aspectRatio = (float)camProfile.videoFrameWidth / camProfile.videoFrameHeight;
...
Camera.Parameters parameters = camera.getParameters();
Size bestSize = getBestSize(parameters.getSupportedPreviewSizes(), aspectRatio);
parameters.setPreviewSize(bestSize.width, bestSize.height);
camera.setParameters(parameters);
LayoutParams params = new LayoutParams((int)(videoView.getHeight() * aspectRatio), videoView.getHeight());
params.addRule(RelativeLayout.CENTER_IN_PARENT);
videoView.setLayoutParams(params);
...
mRecorder.setVideoSize(camProfile.videoFrameWidth, camProfile.videoFrameHeight);
这样做是正确的吗?