使用MediaRecorder编写Android 录音
使用MediaRecorder编写Android 录音
发布时间:2015-06-05 来源:查字典编辑
摘要:1、使用Mediarecorder录音MediaRecorder类用来进行媒体采样,包括音频和视频。也就是用来记录音频和视频方法的类,记录的...

1、使用Mediarecorder 录音

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(); // 开始录音

...

recorder.stop();

recorder.reset(); // You can reuse the object by going back to setAudioSource() step

recorder.release(); // Now the object cannot be reused

上面是使用MediaRecorder录音的简单流程代码,基本上你使用的代码,就能实现录音的功能。

2、MediaRecorder 相关的类

//Edited by mythou

///mythou/

//定义音频编码

class MediaRecorder.AudioEncoder

//定义声音资源

class MediaRecorder.AudioSource

//回调接口,当录音出现错误的时候调用

interface MediaRecorder.OnErrorListener

//回调接口,当录音出现错误的时候调用

interface MediaRecorder.OnInfoListener

//定义输出格式

class MediaRecorder.OutputFormat

//定义视频编码

class MediaRecorder.VideoEncoder

//定义视频source

class MediaRecorder.VideoSource

3、MediaRecorder常用方法

//获取音频信号源的最高值。

final static int getAudioSourceMax()

//最后调用这个方法采样的时候返回最大振幅的绝对值

int getMaxAmplitude()

//准备recorder 开始捕获和编码数据

void prepare()

//发布与此MediaRecorder对象关联的资源

void release()

//重新启动mediarecorder到空闲状态

void reset()

//设置录制的音频通道数。

void setAudioChannels(int numChannels)

//设置audio的编码格式

void setAudioEncoder(int audio_encoder)

//设置录制的音频编码比特率

void setAudioEncodingBitRate(int bitRate)

//设置录制的音频采样率。

void setAudioSamplingRate(int samplingRate)

//设置用于录制的音源。

void setAudioSource(int audio_source)

//辅助时间的推移视频文件的路径传递。

void setAuxiliaryOutputFile(String path)

void setAuxiliaryOutputFile(FileDescriptor fd)

//在文件描述符传递的辅助时间的推移视频

//设置一个recording的摄像头

void setCamera(Camera c)

//设置视频帧的捕获率

void setCaptureRate(double fps)

//设置记录会话的最大持续时间(毫秒)

void setMaxDuration(int max_duration_ms)

//设置记录会话的最大大小(以字节为单位)

void setMaxFileSize(long max_filesize_bytes)

//注册一个回调被调用发生错误时,同时录制

void setOnErrorListener(MediaRecorder.OnErrorListener l)

//注册要同时记录一个信息事件发生时调用的回调。

void setOnInfoListener(MediaRecorder.OnInfoListener listener)

//设置输出的视频播放的方向提示

void setOrientationHint(int degrees)

//传递要写入的文件的文件描述符

void setOutputFile(FileDescriptor fd)

//设置输出文件的路径

void setOutputFile(String path)

//设置在录制过程中产生的输出文件的格式

void setOutputFormat(int output_format)

//表面设置显示记录媒体(视频)的预览

void setPreviewDisplay(Surface sv)

//从一个记录CamcorderProfile对象的使用设置

void setProfile(CamcorderProfile profile)

//设置视频编码器,用于录制

void setVideoEncoder(int video_encoder)

//设置录制的视频编码比特率

void setVideoEncodingBitRate(int bitRate)

//设置要捕获的视频帧速率

void setVideoFrameRate(int rate)

//设置要捕获的视频的宽度和高度

void setVideoSize(int width, int height)

//开始捕捉和编码数据到setOutputFile(指定的文件)

void setVideoSource(int video_source)

//开始录音

void start()

//停止recording

void stop()

4、播放录音

mPlayer = new MediaPlayer();

mPlayer.setDataSource(mSampleFile.getAbsolutePath());

mPlayer.setOnCompletionListener(this);

mPlayer.setOnErrorListener(this);

mPlayer.prepare();

mPlayer.start();

//.......

mPlayer.stop();

mPlayer.release();

mPlayer = null;

上面是一段简单播放录音的过程,结合上面录音代码,就可以实现录音和回放。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类