Nik*_*lin 22 android video-capture
我想创建一个录像机,到目前为止还没有弄清楚如何设置参数,以成功通过MediaRecorder.prepare()方法.
执行以下方法
public void start() throws IOException{
String state = android.os.Environment.getExternalStorageState();
if(!state.equals(Environment.MEDIA_MOUNTED))
{
throw new IOException("SD card is not mounted. It is " + state + ".");
}
File directory = new File(path).getParentFile();
if(!directory.exists() && !directory.mkdirs())
{
throw new IOException("Path to file could not be created.");
}
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
recorder.setVideoFrameRate(15);
recorder.setVideoSize(176, 144);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
this.state = VideoRecorderState.STATE_RECORDING;
}
Run Code Online (Sandbox Code Playgroud)
它会在线上引发异常 recorder.prepare().
如何设置参数以便能够捕获视频?
BeM*_*ive 13
这是一个有效的片段:
m_recorder = new MediaRecorder();
m_recorder.setPreviewDisplay(m_BeMeSurface);
m_recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
m_recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
m_recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
m_recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
m_recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
m_recorder.setMaxDuration((int) MAX_TIME);
m_recorder.setOnInfoListener(m_BeMeSelf);
m_recorder.setVideoSize(320, 240);
m_recorder.setVideoFrameRate(15);
m_recorder.setOutputFile(m_path);
m_recorder.prepare();
m_recorder.start();
Run Code Online (Sandbox Code Playgroud)
最重要的是表面.你没有它,所以没有它就失败了.
问候
BeMeCollective
小智 5
我正在以下教程中回答这个问题:http: //integratingstuff.wordpress.com/2010/10/18/writing-code-that-captures-videos-on-android/
您的代码在prepare()上失败的原因是您没有设置所有必需的属性.例如,您还需要设置maxDuration.
归档时间: |
|
查看次数: |
41474 次 |
最近记录: |