2013-03-05 2 views
1

Привет, ребята, мне нужно записать видео для определенной продолжительности, которая работает нормально. Но мне нужно добавить 30 секунд задержки перед началом фактической записи видео, но в среднем, пока мне нужно показать предварительный просмотр камеры. Мне интересно, как этого добиться. с помощью кода для инициализации объекта камеры:Предварительный просмотр видео для Android и видеозапись

mCamera = Camera.open(); 
surfaceHolder = recorderView.getHolder(); 
surfaceHolder.addCallback(this); 
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

И моя инициализация объекта Recorder, как показано ниже:

File file = new File(path, filename); 
mrec = new MediaRecorder(); 
mCamera.lock(); 
mCamera.unlock(); 
mrec.setCamera(mCamera); 
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
mrec.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); 
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
mrec.setVideoSize(320, 240); 
mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
mrec.setOutputFile(path + filename); 
mrec.prepare(); 

Я использую countdowntimer в течение первых 30 секунд и на его onfinsh реализации я звоню up mrec.start(), чтобы начать фактическую запись, и до тех пор, пока я не получаю предварительный просмотр камеры. Кроме того, перед запуском рекордера требуется одна или две секунды задержки.

ответ

1

эти две линии:

mCamera.unlock(); 
mrec.setCamera(mCamera); 

останавливает предварительный просмотр камеры. Вы должны отложить их (и все настройки после них) до тех пор, пока не пройдет 30 секунд.

Мне тоже не нравится, но так оно и работает.

+0

Спасибо, и все было хорошо. :-) – Dinash

Смежные вопросы