
正文
Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Android语音录制可以通过
MediaRecorder
和
AudioRecorder
。
MediaRecorder本来是多媒体录制控件,可以
同时录制视频和语音
,当不指定视频源时就只录制语音(
默认录制语言
);
AudioRecorder只能录制语音
。
二者录制的区别在于,
MediaRecorder固定了语音的编码格式
,具体平台支持类型可以在http://developer.android.com/guide/appendix/media-formats.html这里查看,而且使用时指定输出文件,在录制的同时系统将语音数据写入文件。
AudioRecorder输出的是pcm
,即原始音频数据,使用者需要自己读取这些数据,这样的好处是可以根据需要
边录制边对音频数据处理
,
读取的同时也可以保存到文件进行存储
。
语音的播放可以使用MediaPlayer和AudioTracker ,与上面的对应, MediaPlayer可以播放各种多媒体文件 ,而 AudioTracker只能播放pcm数据,使用者手动将数据连续写入进行播放 。
MediaRecorder的使用
AudioRecorder录制语音
-
int suggestBufferSize = AudioRecord.getMinBufferSize(mSampleRate,
-
mChannelConfig, mAudioFormat);
-
mAudioRecord = new AudioRecord(AudioSource.MIC, mSampleRate,
-
mChannelConfig, mAudioFormat, suggestBufferSize);
-
mAudioRecorder.startRecording();
-
byte[] inByteBuf = new byte[BUF_SIZE]
-
while (runFlag) {
-
int readSize = mAudioRecord.read(inByteBuf, 0, inByteBuf.length);
-
}
-
mAudioRecorder.stop();
-
mAudioRecord.release();
- int suggestBufferSize = AudioRecord.getMinBufferSize(mSampleRate,
- mChannelConfig, mAudioFormat);
- mAudioRecord = new AudioRecord(AudioSource.MIC, mSampleRate,
- mChannelConfig, mAudioFormat, suggestBufferSize);
- mAudioRecorder.startRecording();
- byte[] inByteBuf = new byte[BUF_SIZE]
- while (runFlag) {
- int readSize = mAudioRecord.read(inByteBuf, 0, inByteBuf.length);
- }
- mAudioRecorder.stop();
- mAudioRecord.release();







