En mi caso, la razón por la que esto sucedió fue que detuve la cámara de prevew, cambié la resolución de vista previa y luego reinicié la vista previa durante la grabación.Algo que sería así si compactado todas las llamadas a métodos:
camera.startPreview();
camera.unlock();
recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoFrameRate(24);
recorder.setVideoEncodingBitRate(3000000);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
recorder.setOutputFile(output.getAbsolutePath());
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
recorder.start();
camera.stopPreview();
Camera.Parameters cameraParameters = camera.getParameters();
cameraParameters.setPreviewSize(x, y);
camera.setParameters(cameraParameters);
camera.startPreview();
recorder.stop();
recorder.reset();
recorder.release();
recorder = null;
camera.lock();
camera.stopPreview();
En realidad, la razón del tamaño de vista previa estaba siendo cambiado después de la grabación comenzó es complicado y dominio específico, así que guardará los datos. Sin embargo, el punto es el mismo: no puede cambiar el tamaño de la vista previa sin detenerlo, pero no puede detener la vista previa después de que la grabadora de medios haya comenzado. Estoy seguro de que hay otras cosas que podrían causar esto, como cualquier otro número de parámetros de la cámara.
Debe asegurarse de comprobar que la cámara no se vea afectada durante la grabación de un video.
¿podría proporcionarnos algún código de su "actividad de captura de video"? especialmente donde el método stop() se llama – HitOdessit
¿Alguna información adicional sobre esto? Teniendo exactamente el mismo problema aquí. – aaronsnoswell
Por favor ingrese un código. –