0
以下是有助于捕捉视频的第th代码,但问题与帧速率有关,因为我已经将帧速率定义为每秒30帧。当记录使用前置摄像头的视频其给出每秒和背部摄像头为800帧的输出也给最多15到18帧安卓视频录制应用程序的Frate Rate - 需要大约每秒30帧..!
private void startRecording() {
if(mrec != null){
mrec.reset();
}
mCamera.unlock();
mrec.setCamera(mCamera);
mrec.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mrec.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mrec.setVideoSize(640, 480);
mrec.setVideoEncodingBitRate(3000000);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mrec.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// MPEG_4_SP
File dir = new File(SdCardPath + Directory);
if (!dir.exists()) {
if (dir.mkdir()) {
Log.v(STORAGE_SERVICE, "Created directory");
} else {
Log.v(STORAGE_SERVICE, "Failed to create Directory");
}
}
FullFilePath = SdCardPath + Directory + RecordFileName;
mrec.setOutputFile(FullFilePath);
mrec.setVideoFrameRate(30);
mrec.setPreviewDisplay(surfaceHolder.getSurface());
try {
mrec.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mrec.start();
}
我同意u'mrec.setVideoFrameRate(30);'不起作用。然后在surfaceCreated()函数中添加下面的代码。 '参数p = mCamera.getParameters(); \t p.setPreviewFrameRate(29); \t p.setPreviewFpsRange(24000,29000); \t p.setPreviewSize(640,480); \t mCamera.setParameters(p);' 这工作正常在android 2.3.3,但应用程序在以上版本崩溃。 !任何想法 ?? –
姜饼版后,访问摄像头的方式是通过不同的API。在你的代码中,你应该检查内置版本是姜饼还是更高,并使用单独的机制访问摄像机。有关某些代码,请参阅http://digitaldumptruck.jotabout.com/?p=797。 –