为了将MediaRecorder用于视频捕获,必须采用与音频捕获相同的步骤,同时加上一些视频的特定的步骤。除此之外,MediaRecord是一个状态机,因此必须遵从实例化到录制的特定步骤序列。
首先将实例化MediaRecorder,然后一次进行其他的步骤。
MediaRecorder recorder=new MediaRecorder();
1.音频和视频源
在实例化后,可以设置音频和视频源,可以使用setAudioSource方法来设置音频源,并传入一个常量以表示想要使用的源。
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
音频远的可能值定义在MediaRecorder.AudioSource类中的常量:
1)CAMCORDER:如果设备有不同的麦克风用于不同的摄像头(前摄、后摄),那么使用此值将指定适当的麦克风。API 7之后。
2)DEFAULT:这个值指定将使用设备上默认的麦克风。
3)MIC:这个值指定将使用用于录制视频的标准麦克风。
4)VOICE_CALL:之歌值指定音频应该是来自一个正在进行中的电话。虽然可能不是所有的手机,但是目前大部分的手机都不支持这个常量。
5)VOICE_DOWNLINK:这个值指定音频应该是来自一个电话,特别是指传入的音频。虽然可能不是所有的手机,但是目前大部分的手机都不支持这个常量。
6)VOICE_UPLINK: 这个值指定音频应该是来自一个电话,特别是指传出的音频(手机发送的音频)。虽然可能不是所有的手机,但是目前大部分的手机都不支持这个常量。
7)VOICE_RECOGNITION:这个值指定音频应该来自一个设置为用于电话上语音识别功能的麦克风。如果没有指定这种麦克风,那么将使用默认的麦克风。
CAMERA和DEFAULT这两个常量表示同样的事情,即设备上的主摄像头应该用于录制视频。对于设置视频源,可以使用setVideoSource方法:
recorder. setVideoSource(MediaRecorder.AudioSource. DEFAULT);
2.输出格式
在设置音频源和视频源之后,可以使用MediaRecorder的setOutputFormat方法设置输出格式,同时传入要使用的格式。
recorder. setOutputFormat (MediaRecorder. OutputFormat. DEFAULT);
可能的格式定义为在MediaRecorder.OutputFormat类中列出的常量。
1)DEFAULT:指定使用默认的输出格式。默认的输出格式可能会根据设备的不同而有所区别。
2)MPEG_4:指定音频和视频将被捕获到一个MPEG_4文件格式的文件中。这个文件将是一个.MP4文件。MPEG_4文件通常包含H