MediaRecorder用法非常简单、直接,我一边翻译官方文档,一边解释具体的知识点。
public class MediaRecorder
extends Object
java.lang.Object
↳ android.media.MediaRecorder
MediaRecorder用来录制音频和视频,通过改变状态来控制操作流程。
下面附一个常用的录制音频的例子
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start(); // Recording is now started
...
recorder.stop();
recorder.reset(); // 通过reset()方法,你可以重复利用mediaRecorder对象,reset()会使mediaRecorder返回setAudioSource()这一步
recorder.release(); // 释放资源后,mediaRecorder就不能重复利用了
程序可能会注册一些info和error事件,用来监测录制过程中,内部的状态更新和运行错误。通过调用setOnInfoListener(OnInfoListener) 和setOnErrorListener(OnErrorListener)来注册这两个事件。
注意:目前MediaRecorder在模拟器上不起作用。
开发指南
关于如何使用MediaRecorder录制视频的更多信息,请阅读Camera开发指南。关于如何录制音频的信息,请阅读 Audio Capture开发指南。
概要
嵌套类 | |
---|---|
class | MediaRecorder.AudioEncoder 定义音频编码器 |
class | MediaRecorder.AudioSource 定义音源 |
interface | MediaRecorder.OnErrorListener 当录制中发生错误时调用回调的接口定义 |
interface | MediaRecorder.OnInfoListener 调用回调用来传达录制的一些信息或者警告的接口定义 |
class | MediaRecorder.OutputFormat 定义输出格式 |
class | MediaRecorder.VideoEncoder 定义视频编码器 |
class | MediaRecorder.VideoSource 定义视频源 |
常量 | |
---|---|
int | MEDIA_ERROR_SERVER_DIED 媒体服务死机 |
int | MEDIA_RECORDER_ERROR_UNKNOWN 未知的mediaRecorder错误 |
int | MEDIA_RECORDER_INFO_MAX_DURATION_REACHED 最大拍摄时间已设置,并且现在已经达到。 |
int | MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED 最大的文件大小已设置,并且现在已经达到 |
int | MEDIA_RECORDER_INFO_UNKNOWN 未知的录制信息 |
Public构造方法 | |
---|---|
MediaRecorder() 默认的构造方法 |