У меня есть следующий код для записи видео:
public void initRecorder() {
Camera.Parameters parameters = mCamera.getParameters();
Camera.Size previewSize = getOptimalPreviewSize(surfaceWidth, surfaceHeight);
if (previewSize != null) {
parameters.setPreviewSize(previewSize.width, previewSize.height);
}
setCameraParmeters();
if (mMediaRecorder == null) mMediaRecorder = new MediaRecorder();
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setOrientationHint(videoOrientation);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setVideoEncodingBitRate(3072 * 1000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(1280, 720);
mMediaRecorder.setOutputFile(videoFile.getAbsolutePath());
if (!mApp.videoTime) {
mMediaRecorder.setMaxDuration(30000);
} else {
mMediaRecorder.setMaxDuration(Integer.MAX_VALUE);
}
mMediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
//do stuff at end of video
}
}
public void setCameraParmeters() {
Camera.Parameters parameters = mCamera.getParameters();
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
parameters.setRecordingHint(true);
final int[] previewFpsRange = new int[2];
parameters.getPreviewFpsRange(previewFpsRange);
if (previewFpsRange[0] == previewFpsRange[1]) {
final List<int[]> supportedFpsRanges = parameters.getSupportedPreviewFpsRange();
for (int[] range : supportedFpsRanges) {
if (range[0] != range[1]) {
parameters.setPreviewFpsRange(range[0], range[1]);
break;
}
}
}
if(parameters.isAutoExposureLockSupported()) {
parameters.setAutoExposureLock(false);
}
mCamera.setParameters(parameters);
}
Однако, когда я начинаю запись, предварительный просмотр становится намного темнее. Код в setCameraParameters
, найденный в других примерах, кажется, ничего не делает.
Кстати, мое устройство - планшет Dragon Touch V10.
Я пробовал разные решения, но ни одно из них не кажетсяработать. Есть ли способ обойти предварительный просмотр при записи видео?