Android中使用MediaRecorder进行录像详解(视频录制)
在Android中,可以使用MediaRecorder类进行视频录制。MediaRecorder类提供了许多方法和属性,可以于控制视频录制的参数和状态。本文将介绍Android中使用MediaRecorder进行录像的完整攻略,包括定义、属性、方法两个示例说明。
定义
MediaRecorder是Android中的一个类,用于录制音频和视频。它提供了许多方法和属性,可以用于控制录制的参数和状态。使用MediaRecorder类可以轻地实现视频录制功能。
属性
MediaRecorder类提供了许多属性,用于设置录制的参数和状态。下面是一些常的属性:
setAudioSource(int)
:设置音频源。setVideoSource(int)
:设置视频源。setOutputFormat(int)
:设置输出格式。setAudioEncoder(int)
:设置音频编码器-setVideoEncoder(int)
:设置视频编码器。setOutputFile(String)
:设置输出文件路径。
方法
MediaRecorder类提供了许多方法,用于控制录制的参数和状态。下面是一些常用的方法:
prepare()
:准备录制。start()
:开始录制。stop()
:停止录制。reset()
:重置MediaRecorder对象。release()
:释放MediaRecorder对象。
示例一:使用MediaRecorder录制视频
下面是一个示例,用于演示如何使用MediaRecorder录制视频:
private MediaRecorder mediaRecorder;
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private void startRecording() {
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setOutputFile(getOutputMediaFile().toString());
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start();
}
private void stopRecording() {
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
mediaRecorder = null;
}
private File getOutputMediaFile() {
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM), "Camera");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"VID_" + timeStamp + ".mp4");
return mediaFile;
}
这个示例演示了如何使用MediaRecorder录制视频。在这个示例中,我们设置了音频源、视频源、输出格式、音频编码器、视频编码器、输出文件路径和预览显示。在开始录制前,我们需要调用prepare()方法准备MediaRecorder对象。在录制完成后,我们需要调用stop()方法停止录制,并调用reset()方法重置MediaRecorder对象。最后,我们需要调用release()方法释放MediaRecorder对象。
示例二:使用MediaRecorder录制音频
下面是一个示例,用于演示如何使用MediaRecorder录制音频:
private MediaRecorder mediaRecorder;
private void startRecording() {
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(getOutputMediaFile().toString());
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start();
}
private void stopRecording() {
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
mediaRecorder = null;
}
private File getOutputMediaFile() {
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM), "Audio");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"AUD_" + timeStamp + ".3gp");
return mediaFile;
}
这个示例演示了如何使用MediaRecorder录制音频。在这个示例中,我们设置了音频源、输出格式、音频编码器和输出文件路径。在开始录制前,我们需要调用prepare()方法准备MediaRecorder对象。在录制完成后,我们需要调用stop()方法停止录制,并调用reset()方法重置Media对象。最后,我们需要调用release()方法释放MediaRecorder对象。
这些示例可以助用户了解如何在Android中使用MediaRecorder进行录像,并提供了两个示例说明。在实际使用中,用户根据具体情况选择不同的方法和技巧,以满足自己的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:android中使用mediarecorder进行录像详解(视频录制) - Python技术站