Android 多媒体应用:MediaRecorder 录制音视频 之 音频

来源:互联网 发布:辐射4帅男捏脸数据教程 编辑:程序博客网 时间:2024/05/16 14:35

    • MediaRecord简单介绍
      • 音频录制

MediaRecord简单介绍

手机为我们提供了麦克风硬件,我们可以通过麦克风实现音频的录制。这里Android为我们提供了MedioRecorder来录制音频与视频。下图就是MediaRecorder的状态转换图。
这里写图片描述

音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图
音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图

音频录制

首先建立一个MediaRecorder的对象,然后设置音频来源(一般是麦克风)、设置音频的格式(一般是THREE_GPP)、设置编码格式(一般为AMR_NB)、设置生成文件的地址和文件名(注意有‘/’和后缀名)。代码如下:

 private Button mButtonStart;    private Button mButtonStop;    private MediaRecorder mediaRecorder;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButtonStart= (Button) findViewById(R.id.button_start_recorder);        mButtonStop= (Button) findViewById(R.id.button_end_recorder);        mButtonStart.setOnClickListener(this);        mButtonStop.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.button_start_recorder:                mediaRecorder=new MediaRecorder();                //设置声音的来源               mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);                //设置音频的格式                mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);                //设置编码格式                mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);                // mediaRecorder.setOutputFile( "/storage/sdcard0/aaa.3gp");                //设置生成文件的地址                mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory()+"/bbb.3gp");                try {                    mediaRecorder.prepare(); //准备录音                    mediaRecorder.start();//开始录音                } catch (IOException e) {                    e.printStackTrace();                }                break;            case R.id.button_end_recorder:                mediaRecorder.stop();                mediaRecorder.reset();                mediaRecorder.release();                break;        }    }

注意:记得添加权限

<uses-permission android:name="android.permission.RECORD_AUDIO"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
0 0
原创粉丝点击