我试图通过
找到相机分辨率final Parameters p = this.camera.getParameters();
List<Size> previewSizes=p.getSupportedPreviewSizes();
并通过
设置媒体录像机的视频大小this.mediaRecorder.setVideoSize(previewSizes.get(0).width, previewSizes.get(0).height);
我曾经用横向模式录制视频。
MediaRecorder
无法在此高分辨率下录制视频。
当我尝试较低的分辨率时,它正在录制。
我们设置的屏幕显示大小和视频大小是否有问题?
试试这样
getBestPreviewSize()将根据提供的宽度和高度确定可能的最佳分辨率。显然缺少主要的媒体记录器和相机设置细节但你可以很容易地找到它们,你可能已经做过了
...
Camera.size size = getBestPreviewSize(720,480, mCamera.getParameters());
mMediaRecorder.setVideoSize(size.width,size.height);
mMediaRecorder.setVideoFrameRate(15);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
...
private Camera.Size getBestPreviewSize(int width, int height, Camera.Parameters parameters) {
Camera.Size result=null;
for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
if (size.width<=width && size.height<=height) {
if (result==null) {
result=size;
} else {
int resultArea=result.width*result.height;
int newArea=size.width*size.height;
if (newArea>resultArea) {
result=size;
}
}
}
}
return(result);
}